AI 146582: am: CL 146481 am: CL 146394 Add ExampleAppWidgetConfigure to manifest and correct update issues.
This adds widget configuration to manifest so we don't crash when trying to insert. We also correctly push a second update once prefix title has been saved; previously we showed a stale title until next widget update. Also return the title prefix correctly for a given appWidgetId.
Original author: jsharkey
Merged from: //branches/cupcake/...
Original author: android-build
Automated import of CL 146582
diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index fcb7e79..d353d31 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -1655,6 +1655,12 @@
</intent-filter>
</receiver>
+ <activity android:name=".appwidget.ExampleAppWidgetConfigure">
+ <intent-filter>
+ <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
+ </intent-filter>
+ </activity>
+
<receiver android:name=".appwidget.ExampleBroadcastReceiver" android:enabled="false">
<intent-filter>
<action android:name="android.intent.ACTION_TIMEZONE_CHANGED" />
diff --git a/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleAppWidgetConfigure.java b/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleAppWidgetConfigure.java
index d7ef9d6..5f8874c 100644
--- a/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleAppWidgetConfigure.java
+++ b/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleAppWidgetConfigure.java
@@ -84,10 +84,17 @@
View.OnClickListener mOnClickListener = new View.OnClickListener() {
public void onClick(View v) {
+ final Context context = ExampleAppWidgetConfigure.this;
+
// When the button is clicked, save the string in our prefs and return that they
// clicked OK.
- saveTitlePref(ExampleAppWidgetConfigure.this, mAppWidgetId,
- mAppWidgetPrefix.getText().toString());
+ String titlePrefix = mAppWidgetPrefix.getText().toString();
+ saveTitlePref(context, mAppWidgetId, titlePrefix);
+
+ // Push widget update to surface with newly set prefix
+ AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
+ ExampleAppWidgetProvider.updateAppWidget(context, appWidgetManager,
+ mAppWidgetId, titlePrefix);
// Make sure we pass back the original appWidgetId
Intent resultValue = new Intent();
@@ -108,7 +115,7 @@
// If there is no preference saved, get the default from a resource
static String loadTitlePref(Context context, int appWidgetId) {
SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, 0);
- String prefix = prefs.getString(PREF_PREFIX_KEY, null);
+ String prefix = prefs.getString(PREF_PREFIX_KEY + appWidgetId, null);
if (prefix != null) {
return prefix;
} else {