summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/LauncherAppWidgetInfo.java
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2012-05-15 13:43:57 -0700
committerWinson Chung <winsonc@google.com>2012-05-15 13:46:19 -0700
commit211bac3cd89b26bda4ff52df984731d11156dc38 (patch)
tree3a1586b2335b70200dce88ec2b6c28d1a03094e8 /src/com/android/launcher2/LauncherAppWidgetInfo.java
parent0e56cc9fd6814af5813e73ba7a71bf1d51d4208a (diff)
downloadandroid_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.java20
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) + ")";