summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoman Birg <roman@cyngn.com>2015-04-16 11:24:53 -0700
committerniks255 <niks255@mail.ru>2017-01-07 04:40:53 +0600
commitf83506a4215e3d70ba76d00c61a3325db21fc76c (patch)
tree757359c11ccfd7f9febe6e3d2ab1a54dfaf2f601
parent6c912bb24d68b6a30f629271ad90d5ba622139c3 (diff)
downloadandroid_packages_apps_Trebuchet-f83506a4215e3d70ba76d00c61a3325db21fc76c.tar.gz
android_packages_apps_Trebuchet-f83506a4215e3d70ba76d00c61a3325db21fc76c.tar.bz2
android_packages_apps_Trebuchet-f83506a4215e3d70ba76d00c61a3325db21fc76c.zip
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
-rw-r--r--src/com/android/launcher3/LauncherModel.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 6e3d406c5..e05c53330 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -2481,10 +2481,13 @@ public class LauncherModel extends BroadcastReceiver {
ShortcutInfo finalItem = folder.contents.get(0);
finalItem.container = folder.container;
LauncherModel.deleteItemFromDatabase(mContext, folder);
- LauncherModel.addOrMoveItemInDatabase(mContext, finalItem, folder.container,
- folder.screenId, folder.cellX, folder.cellY);
+ // 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.add(finalItem);
+ }
workspaceItems.remove(i);
- workspaceItems.add(finalItem);
folders.remove(Long.valueOf(item.id));
} else if (folder.contents.size() == 0 /*&& !(folder instanceof LiveFolderInfo)*/) {
LauncherModel.deleteFolderContentsFromDatabase(mContext, folder);