summaryrefslogtreecommitdiff
path: root/core/java/android/appwidget/AppWidgetHostView.java
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2012-09-07 17:37:26 -0700
committerAdam Cohen <adamcohen@google.com>2012-09-11 10:53:57 -0700
commit0aa2d42e87e4a1ed5b83f356690e465d6a3587cc (patch)
treece6f9c5fddd8d6664a8b369b04c7b271a86392a6 /core/java/android/appwidget/AppWidgetHostView.java
parentce3ef0abaa17b12dc0626b06421d58bf06974ae2 (diff)
Adding notion of keyguard widgets
-> Persisting certain appwidget options -> Adding ability to specify appwidget options on bind so as to avoid AppWidgetProvider update call with no options. Change-Id: I5631039f19f1822b8e123b559b6353c880c0192e
Diffstat (limited to 'core/java/android/appwidget/AppWidgetHostView.java')
-rw-r--r--core/java/android/appwidget/AppWidgetHostView.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java
index 603ceb7626f5..c86826ff19ed 100644
--- a/core/java/android/appwidget/AppWidgetHostView.java
+++ b/core/java/android/appwidget/AppWidgetHostView.java
@@ -513,7 +513,17 @@ public class AppWidgetHostView extends FrameLayout {
theirContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater = inflater.cloneInContext(theirContext);
inflater.setFilter(sInflaterFilter);
- defaultView = inflater.inflate(mInfo.initialLayout, this, false);
+ AppWidgetManager manager = AppWidgetManager.getInstance(mContext);
+ Bundle options = manager.getAppWidgetOptions(mAppWidgetId);
+
+ int layoutId = mInfo.initialLayout;
+ if (options.containsKey(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY)) {
+ int category = options.getInt(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY);
+ if (category == AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD) {
+ layoutId = mInfo.initialKeyguardLayout;
+ }
+ }
+ defaultView = inflater.inflate(layoutId, this, false);
} else {
Log.w(TAG, "can't inflate defaultView because mInfo is missing");
}