PreviewInflaterpublic class PreviewInflater extends Object Utility class to inflate previews for phone and camera affordance. |
Fields Summary |
---|
private static final String | TAG | private static final String | META_DATA_KEYGUARD_LAYOUT | private android.content.Context | mContext | private com.android.internal.widget.LockPatternUtils | mLockPatternUtils |
Methods Summary |
---|
private com.android.systemui.statusbar.policy.PreviewInflater$WidgetInfo | getWidgetInfo(android.content.Intent intent)
WidgetInfo info = new WidgetInfo();
PackageManager packageManager = mContext.getPackageManager();
final List<ResolveInfo> appList = packageManager.queryIntentActivitiesAsUser(
intent, PackageManager.MATCH_DEFAULT_ONLY, mLockPatternUtils.getCurrentUser());
if (appList.size() == 0) {
return null;
}
ResolveInfo resolved = packageManager.resolveActivityAsUser(intent,
PackageManager.MATCH_DEFAULT_ONLY | PackageManager.GET_META_DATA,
mLockPatternUtils.getCurrentUser());
if (wouldLaunchResolverActivity(resolved, appList)) {
return null;
}
if (resolved == null || resolved.activityInfo == null) {
return null;
}
if (resolved.activityInfo.metaData == null || resolved.activityInfo.metaData.isEmpty()) {
return null;
}
int layoutId = resolved.activityInfo.metaData.getInt(META_DATA_KEYGUARD_LAYOUT);
if (layoutId == 0) {
return null;
}
info.contextPackage = resolved.activityInfo.packageName;
info.layoutId = layoutId;
return info;
| public android.view.View | inflatePreview(android.content.Intent intent)
WidgetInfo info = getWidgetInfo(intent);
if (info == null) {
return null;
}
View v = inflateWidgetView(info);
if (v == null) {
return null;
}
KeyguardPreviewContainer container = new KeyguardPreviewContainer(mContext, null);
container.addView(v);
return container;
| private android.view.View | inflateWidgetView(com.android.systemui.statusbar.policy.PreviewInflater$WidgetInfo widgetInfo)
View widgetView = null;
try {
Context appContext = mContext.createPackageContext(
widgetInfo.contextPackage, Context.CONTEXT_RESTRICTED);
LayoutInflater appInflater = (LayoutInflater)
appContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
appInflater = appInflater.cloneInContext(appContext);
widgetView = appInflater.inflate(widgetInfo.layoutId, null, false);
} catch (PackageManager.NameNotFoundException|RuntimeException e) {
Log.w(TAG, "Error creating widget view", e);
}
return widgetView;
| public static boolean | wouldLaunchResolverActivity(android.content.Context ctx, android.content.Intent intent, int currentUserId)
PackageManager packageManager = ctx.getPackageManager();
final List<ResolveInfo> appList = packageManager.queryIntentActivitiesAsUser(
intent, PackageManager.MATCH_DEFAULT_ONLY, currentUserId);
if (appList.size() == 0) {
return false;
}
ResolveInfo resolved = packageManager.resolveActivityAsUser(intent,
PackageManager.MATCH_DEFAULT_ONLY | PackageManager.GET_META_DATA, currentUserId);
return wouldLaunchResolverActivity(resolved, appList);
| private static boolean | wouldLaunchResolverActivity(android.content.pm.ResolveInfo resolved, java.util.List appList)
// If the list contains the above resolved activity, then it can't be
// ResolverActivity itself.
for (int i = 0; i < appList.size(); i++) {
ResolveInfo tmp = appList.get(i);
if (tmp.activityInfo.name.equals(resolved.activityInfo.name)
&& tmp.activityInfo.packageName.equals(resolved.activityInfo.packageName)) {
return false;
}
}
return true;
|
|