summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2010-06-23 17:44:30 -0700
committerJoe Onorato <joeo@android.com>2010-06-23 17:44:30 -0700
commitc27bb559805ae5cd06f7ecf575959c60c51a22aa (patch)
tree2505098a2f7cdf145310aa5d32ae04e57eba2fa9
parent4ca092c7f101cbd95833a9ed8936e9e0485585ad (diff)
Need to give the AppWidgetHostView the new info about the provider, in case the initialLayout
changed. Bug: 2772728 Change-Id: I9e230fbe42d01cfc953cdafb86dd0d616d96a3ea
-rw-r--r--core/java/android/appwidget/AppWidgetHost.java4
-rw-r--r--core/java/android/appwidget/AppWidgetHostView.java25
-rw-r--r--tests/appwidgets/AppWidgetProviderTest/res/layout/test_appwidget2.xml26
-rw-r--r--tests/appwidgets/AppWidgetProviderTest/src/com/android/tests/appwidgetprovider/TestAppWidgetProvider.java1
4 files changed, 41 insertions, 15 deletions
diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java
index 88adabd042b3..b2fc13ffba6c 100644
--- a/core/java/android/appwidget/AppWidgetHost.java
+++ b/core/java/android/appwidget/AppWidgetHost.java
@@ -237,7 +237,7 @@ public class AppWidgetHost {
v = mViews.get(appWidgetId);
}
if (v != null) {
- v.updateAppWidget(null, AppWidgetHostView.UPDATE_FLAGS_RESET);
+ v.resetAppWidget(appWidget);
}
}
@@ -247,7 +247,7 @@ public class AppWidgetHost {
v = mViews.get(appWidgetId);
}
if (v != null) {
- v.updateAppWidget(views, 0);
+ v.updateAppWidget(views);
}
}
}
diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java
index 5375193d823f..b33b0970d825 100644
--- a/core/java/android/appwidget/AppWidgetHostView.java
+++ b/core/java/android/appwidget/AppWidgetHostView.java
@@ -46,8 +46,6 @@ public class AppWidgetHostView extends FrameLayout {
static final boolean LOGD = false;
static final boolean CROSSFADE = false;
- static final int UPDATE_FLAGS_RESET = 0x00000001;
-
static final int VIEW_MODE_NOINIT = 0;
static final int VIEW_MODE_CONTENT = 1;
static final int VIEW_MODE_ERROR = 2;
@@ -102,7 +100,7 @@ public class AppWidgetHostView extends FrameLayout {
mAppWidgetId = appWidgetId;
mInfo = info;
}
-
+
public int getAppWidgetId() {
return mAppWidgetId;
}
@@ -148,21 +146,22 @@ public class AppWidgetHostView extends FrameLayout {
}
/**
+ * Update the AppWidgetProviderInfo for this view, and reset it to the
+ * initial layout.
+ */
+ void resetAppWidget(AppWidgetProviderInfo info) {
+ mInfo = info;
+ mViewMode = VIEW_MODE_NOINIT;
+ updateAppWidget(null);
+ }
+
+ /**
* Process a set of {@link RemoteViews} coming in as an update from the
* AppWidget provider. Will animate into these new views as needed
*/
public void updateAppWidget(RemoteViews remoteViews) {
- updateAppWidget(remoteViews, 0);
- }
+ if (LOGD) Log.d(TAG, "updateAppWidget called mOld=" + mOld);
- void updateAppWidget(RemoteViews remoteViews, int flags) {
- if (LOGD) Log.d(TAG, "updateAppWidget called mOld=" + mOld + " flags=0x"
- + Integer.toHexString(flags));
-
- if ((flags & UPDATE_FLAGS_RESET) != 0) {
- mViewMode = VIEW_MODE_NOINIT;
- }
-
boolean recycled = false;
View content = null;
Exception exception = null;
diff --git a/tests/appwidgets/AppWidgetProviderTest/res/layout/test_appwidget2.xml b/tests/appwidgets/AppWidgetProviderTest/res/layout/test_appwidget2.xml
new file mode 100644
index 000000000000..abc6f59531e3
--- /dev/null
+++ b/tests/appwidgets/AppWidgetProviderTest/res/layout/test_appwidget2.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/oh_hai_text"
+ android:layout_width="150dp"
+ android:layout_height="150dp"
+ android:text="@string/appwidget_view_title"
+ android:background="#8fff"
+ android:textColor="#000"
+ android:textStyle="bold"
+/>
+
diff --git a/tests/appwidgets/AppWidgetProviderTest/src/com/android/tests/appwidgetprovider/TestAppWidgetProvider.java b/tests/appwidgets/AppWidgetProviderTest/src/com/android/tests/appwidgetprovider/TestAppWidgetProvider.java
index 418be650ebf7..d9c0110dba60 100644
--- a/tests/appwidgets/AppWidgetProviderTest/src/com/android/tests/appwidgetprovider/TestAppWidgetProvider.java
+++ b/tests/appwidgets/AppWidgetProviderTest/src/com/android/tests/appwidgetprovider/TestAppWidgetProvider.java
@@ -41,6 +41,7 @@ public class TestAppWidgetProvider extends BroadcastReceiver {
Log.d(TAG, "DISABLED");
}
else if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)) {
+ if (true) return;
Log.d(TAG, "UPDATE");
Bundle extras = intent.getExtras();
int[] appWidgetIds = extras.getIntArray(AppWidgetManager.EXTRA_APPWIDGET_IDS);