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

Commit c8b7105b authored by Roman Birg's avatar Roman Birg Committed by Rajesh Yengisetty
Browse files

Trebuchet: fix Protected apps issue with folders



When there's a folder of shortcuts where all of the items have been set
to protected, the first item in the folder sometimes does not get
removed from the workspace allowing access to the protected application.

When the second-to-last item in a folder is being removed, it was being
replaced with the shortcut automatically, and we were checking against
the folder contents, which was off the workspace at this time, but still
had the shortcut. We need to check whether the last shortcut we are
re-adding back to the workspace is actually protected before adding it.

Change-Id: I9c7dbbd8562ae3e71e198747e6cb1c10417d1f46
Signed-off-by: default avatarRoman Birg <roman@cyngn.com>
(cherry picked from commit d0629125)
parent 0bdb2e3a
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -2747,10 +2747,13 @@ public class LauncherModel extends BroadcastReceiver
                            ShortcutInfo finalItem = folder.contents.get(0);
                            finalItem.container = folder.container;
                            LauncherModel.deleteItemFromDatabase(mContext, folder);
                            // only replace this item back on the workspace if it's not protected
                            if (!mHiddenApps.contains(finalItem.intent.getComponent())) {
                                LauncherModel.addOrMoveItemInDatabase(mContext, finalItem, folder.container,
                                        folder.screenId, folder.cellX, folder.cellY);
                            workspaceItems.remove(i);
                                workspaceItems.add(finalItem);
                            }
                            workspaceItems.remove(i);
                            folders.remove(Long.valueOf(item.id));
                        } else if (folder.contents.size() == 0 /*&& !(folder instanceof LiveFolderInfo)*/) {
                            LauncherModel.deleteFolderContentsFromDatabase(mContext, folder);