summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Joe Onorato <joeo@android.com> 2010-06-23 17:50:42 -0700
committer Android Git Automerger <android-git-automerger@android.com> 2010-06-23 17:50:42 -0700
commita18dbdf420fabebb83e7403d000384a8d98daffa (patch)
tree7fda3ff2821c00990c0339a15232f8b5e4b05d24
parent038ecb097a4ee4997938d5c3a21c1c450c3beedc (diff)
parent801b63d3b865054b3015e2cf315ca7c9386d1212 (diff)
am 801b63d3: am 51e895f0: Merge "Need to give the AppWidgetHostView the new info about the provider, in case the initialLayout changed." into gingerbread
Merge commit '801b63d3b865054b3015e2cf315ca7c9386d1212' * commit '801b63d3b865054b3015e2cf315ca7c9386d1212': Need to give the AppWidgetHostView the new info about the provider, in case the initialLayout
-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 a1e7e4af2345..3c19ea3d444b 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);