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

Commit 50941fb8 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Adding support for updating the pinned shortcuts without updating

the ID map

Bug: 30654182
Change-Id: I30082bd87466a29b7bafe1e8cbf1446e1d1e4f3e
parent 49a1ab90
Loading
Loading
Loading
Loading
+17 −8
Original line number Diff line number Diff line
@@ -1179,7 +1179,12 @@ public class LauncherModel extends BroadcastReceiver
    @Override
    public void onShortcutsChanged(String packageName, List<ShortcutInfoCompat> shortcuts,
            UserHandleCompat user) {
        enqueueItemUpdatedTask(new ShortcutsChangedTask(packageName, shortcuts, user));
        enqueueItemUpdatedTask(new ShortcutsChangedTask(packageName, shortcuts, user, true));
    }

    public void updatePinnedShortcuts(String packageName, List<ShortcutInfoCompat> shortcuts,
            UserHandleCompat user) {
        enqueueItemUpdatedTask(new ShortcutsChangedTask(packageName, shortcuts, user, false));
    }

    /**
@@ -3317,15 +3322,17 @@ public class LauncherModel extends BroadcastReceiver
    }

    private class ShortcutsChangedTask implements Runnable {
        private String mPackageName;
        private List<ShortcutInfoCompat> mShortcuts;
        private UserHandleCompat mUser;
        private final String mPackageName;
        private final List<ShortcutInfoCompat> mShortcuts;
        private final UserHandleCompat mUser;
        private final boolean mUpdateIdMap;

        public ShortcutsChangedTask(String packageName, List<ShortcutInfoCompat> shortcuts,
                UserHandleCompat user) {
                UserHandleCompat user, boolean updateIdMap) {
            mPackageName = packageName;
            mShortcuts = shortcuts;
            mUser = user;
            mUpdateIdMap = updateIdMap;
        }

        @Override
@@ -3366,11 +3373,13 @@ public class LauncherModel extends BroadcastReceiver
            }
            bindUpdatedShortcuts(updatedShortcutInfos, mUser);

            // Update the deep shortcut map, in case the list of ids has changed for an activity.
            if (mUpdateIdMap) {
                // Update the deep shortcut map if the list of ids has changed for an activity.
                updateDeepShortcutMap(mPackageName, mUser, mShortcuts);
                bindDeepShortcuts();
            }
        }
    }

    /**
     * Task to handle changing of lock state of the user