Merge "Fixing legacy shortcuts which only specify packageName in the intent dont get restored on apk install." into ub-launcher3-dorval-polish

This commit is contained in:
TreeHugger Robot 2017-07-06 15:27:30 +00:00 committed by Android (Google) Code Review
commit 155384dad8
2 changed files with 13 additions and 2 deletions

View File

@ -68,7 +68,7 @@ public class IconCache {
private static final int INITIAL_ICON_CACHE_CAPACITY = 50;
// Empty class name is used for storing package default entry.
private static final String EMPTY_CLASS_NAME = ".";
public static final String EMPTY_CLASS_NAME = ".";
private static final boolean DEBUG = false;
private static final boolean DEBUG_IGNORE_CACHE = false;

View File

@ -137,7 +137,18 @@ public class ItemInfo {
}
public ComponentName getTargetComponent() {
return getIntent() == null ? null : getIntent().getComponent();
Intent intent = getIntent();
if (intent == null) {
return null;
}
ComponentName cn = intent.getComponent();
if (itemType == LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT && cn == null) {
// Legacy shortcuts may not have a componentName but just a packageName. In that case
// create a dummy componentName instead of adding additional check everywhere.
String pkg = intent.getPackage();
return pkg == null ? null : new ComponentName(pkg, IconCache.EMPTY_CLASS_NAME);
}
return cn;
}
public void writeToValues(ContentWriter writer) {