diff options
Diffstat (limited to 'core/java/android/appwidget/AppWidgetHostView.java')
| -rw-r--r-- | core/java/android/appwidget/AppWidgetHostView.java | 12 |
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"); } |
