diff options
author | Winson Chung <winsonc@google.com> | 2012-05-15 13:43:57 -0700 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2012-05-15 13:46:19 -0700 |
commit | 211bac3cd89b26bda4ff52df984731d11156dc38 (patch) | |
tree | 3a1586b2335b70200dce88ec2b6c28d1a03094e8 /src/com/android/launcher2/LauncherAppWidgetInfo.java | |
parent | 0e56cc9fd6814af5813e73ba7a71bf1d51d4208a (diff) | |
download | android_packages_apps_Trebuchet-211bac3cd89b26bda4ff52df984731d11156dc38.tar.gz android_packages_apps_Trebuchet-211bac3cd89b26bda4ff52df984731d11156dc38.tar.bz2 android_packages_apps_Trebuchet-211bac3cd89b26bda4ff52df984731d11156dc38.zip |
Prevent multiple size changed callbacks to widgets whenever we reload the workspace.
Change-Id: I54d7f54ba9ead36201cfaad36fbb234a4c119b20
Diffstat (limited to 'src/com/android/launcher2/LauncherAppWidgetInfo.java')
-rw-r--r-- | src/com/android/launcher2/LauncherAppWidgetInfo.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/com/android/launcher2/LauncherAppWidgetInfo.java b/src/com/android/launcher2/LauncherAppWidgetInfo.java index e5b947391..f001b2b64 100644 --- a/src/com/android/launcher2/LauncherAppWidgetInfo.java +++ b/src/com/android/launcher2/LauncherAppWidgetInfo.java @@ -42,6 +42,8 @@ class LauncherAppWidgetInfo extends ItemInfo { int minWidth = -1; int minHeight = -1; + private boolean mHasNotifiedInitialWidgetSizeChanged; + /** * View that holds this widget after it's been created. This view isn't created * until Launcher knows it's needed. @@ -65,6 +67,24 @@ class LauncherAppWidgetInfo extends ItemInfo { values.put(LauncherSettings.Favorites.APPWIDGET_ID, appWidgetId); } + /** + * When we bind the widget, we should notify the widget that the size has changed if we have not + * done so already (only really for default workspace widgets). + */ + void onBindAppWidget(Launcher launcher) { + if (!mHasNotifiedInitialWidgetSizeChanged) { + notifyWidgetSizeChanged(launcher); + } + } + + /** + * Trigger an update callback to the widget to notify it that its size has changed. + */ + void notifyWidgetSizeChanged(Launcher launcher) { + AppWidgetResizeFrame.updateWidgetSizeRanges(hostView, launcher, spanX, spanY); + mHasNotifiedInitialWidgetSizeChanged = true; + } + @Override public String toString() { return "AppWidget(id=" + Integer.toString(appWidgetId) + ")"; |