Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 34ab6df4 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Fixing legacy shortcuts which only specify packageName in the intent

dont get restored on apk install.

For various model update task, we only use targetComponent (unlike loader
where we all check packageName for legacy shortcuts).
This causes various shortcuts which only specity packageName in the intent
to get skipped during the check. Instead creating a pseudo component for
these shortcuts similar to IconCache

Bug: 62944669
Change-Id: I0aa0a4c15ef3ad88dc6cdd579a76315fb2ff780b
parent 6f031845
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
+12 −1
Original line number Diff line number Diff line
@@ -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) {