summaryrefslogtreecommitdiff
path: root/core/java/android/appwidget/AppWidgetHostView.java
diff options
context:
space:
mode:
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");
}