diff options
author | Patrick Dubroy <dubroy@google.com> | 2011-02-28 15:16:42 -0800 |
---|---|---|
committer | Patrick Dubroy <dubroy@google.com> | 2011-02-28 15:49:59 -0800 |
commit | cd953711fcbb6c8c6579fb7127e3c86103c0d409 (patch) | |
tree | 6f249706f2dc886b90611a68c3d6b6df2ea295d6 /src/com/android | |
parent | 60b753b4cfa709efa55e05cdcd62a993330f3684 (diff) | |
download | android_packages_apps_Trebuchet-cd953711fcbb6c8c6579fb7127e3c86103c0d409.tar.gz android_packages_apps_Trebuchet-cd953711fcbb6c8c6579fb7127e3c86103c0d409.tar.bz2 android_packages_apps_Trebuchet-cd953711fcbb6c8c6579fb7127e3c86103c0d409.zip |
Fix 3385675: Uninstall option available for system app
- when a system app is selected in all apps, don't show uninstall button
- if it's an updated system app, show "Uninstall update"
- Also, remove unused code for non-existent flag for games
Change-Id: I46753ee8d213b2ba1613b71ac1fe73d79786129c
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/launcher2/AllApps2D.java | 14 | ||||
-rw-r--r-- | src/com/android/launcher2/AllAppsPagedView.java | 24 | ||||
-rw-r--r-- | src/com/android/launcher2/ApplicationInfo.java | 19 | ||||
-rw-r--r-- | src/com/android/launcher2/BubbleTextView.java | 3 |
4 files changed, 27 insertions, 33 deletions
diff --git a/src/com/android/launcher2/AllApps2D.java b/src/com/android/launcher2/AllApps2D.java index a9423be1f..1cbb99994 100644 --- a/src/com/android/launcher2/AllApps2D.java +++ b/src/com/android/launcher2/AllApps2D.java @@ -313,19 +313,9 @@ public class AllApps2D mVisibleAppsList.clear(); if (appType == AppType.ALL) { mVisibleAppsList.addAll(mAllAppsList); - } else { - int searchFlags = 0; - - if (appType == AppType.APP) { - searchFlags = ApplicationInfo.APP_FLAG; - } else if (appType == AppType.GAME) { - searchFlags = ApplicationInfo.GAME_FLAG; - } else if (appType == AppType.DOWNLOADED) { - searchFlags = ApplicationInfo.DOWNLOADED_FLAG; - } - + } else if (appType == AppType.DOWNLOADED) { for (ApplicationInfo info : mAllAppsList) { - if ((info.flags & searchFlags) != 0) { + if ((info.flags & ApplicationInfo.DOWNLOADED_FLAG) != 0) { mVisibleAppsList.add(info); } } diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java index bfe6ec171..4158b4ad2 100644 --- a/src/com/android/launcher2/AllAppsPagedView.java +++ b/src/com/android/launcher2/AllAppsPagedView.java @@ -203,11 +203,21 @@ public class AllAppsPagedView extends PagedViewWithDraggableItems implements All } } - private void setupDragMode() { + private void setupDragMode(ApplicationInfo info) { mLauncher.getWorkspace().shrink(Workspace.ShrinkState.BOTTOM_VISIBLE); - DeleteZone allAppsDeleteZone = (DeleteZone) - mLauncher.findViewById(R.id.all_apps_delete_zone); - allAppsDeleteZone.setDragAndDropEnabled(true); + + // Only show the uninstall button if the app is uninstallable. + if ((info.flags & ApplicationInfo.DOWNLOADED_FLAG) != 0) { + DeleteZone allAppsDeleteZone = (DeleteZone) + mLauncher.findViewById(R.id.all_apps_delete_zone); + allAppsDeleteZone.setDragAndDropEnabled(true); + + if ((info.flags & ApplicationInfo.UPDATED_SYSTEM_APP_FLAG) != 0) { + allAppsDeleteZone.setText(R.string.delete_zone_label_all_apps_system_app); + } else { + allAppsDeleteZone.setText(R.string.delete_zone_label_all_apps); + } + } ApplicationInfoDropTarget allAppsInfoButton = (ApplicationInfoDropTarget) mLauncher.findViewById(R.id.all_apps_info_target); @@ -240,12 +250,12 @@ public class AllAppsPagedView extends PagedViewWithDraggableItems implements All if (!v.isInTouchMode()) return false; if (!super.beginDragging(v)) return false; - // Start drag mode after the item is selected - setupDragMode(); - ApplicationInfo app = (ApplicationInfo) v.getTag(); app = new ApplicationInfo(app); + // Start drag mode after the item is selected + setupDragMode(app); + // get icon (top compound drawable, index is 1) final TextView tv = (TextView) v; final Drawable icon = tv.getCompoundDrawables()[1]; diff --git a/src/com/android/launcher2/ApplicationInfo.java b/src/com/android/launcher2/ApplicationInfo.java index 3adea373e..1d948b738 100644 --- a/src/com/android/launcher2/ApplicationInfo.java +++ b/src/com/android/launcher2/ApplicationInfo.java @@ -59,9 +59,9 @@ class ApplicationInfo extends ItemInfo { ComponentName componentName; - static final int APP_FLAG = 1; - static final int GAME_FLAG = 2; - static final int DOWNLOADED_FLAG = 4; + static final int DOWNLOADED_FLAG = 1; + static final int UPDATED_SYSTEM_APP_FLAG = 2; + int flags = 0; ApplicationInfo() { @@ -83,17 +83,12 @@ class ApplicationInfo extends ItemInfo { int appFlags = pm.getApplicationInfo(packageName, 0).flags; if ((appFlags & android.content.pm.ApplicationInfo.FLAG_SYSTEM) == 0) { flags |= DOWNLOADED_FLAG; - } - if ((appFlags & android.content.pm.ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) { - flags |= DOWNLOADED_FLAG; - } - firstInstallTime = pm.getPackageInfo(packageName, 0).firstInstallTime; - // TODO: Figure out how to determine what is a game - // If it's not a game, it's an app - if ((flags & GAME_FLAG) == 0) { - flags |= APP_FLAG; + if ((appFlags & android.content.pm.ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) { + flags |= UPDATED_SYSTEM_APP_FLAG; + } } + firstInstallTime = pm.getPackageInfo(packageName, 0).firstInstallTime; } catch (NameNotFoundException e) { Log.d(TAG, "PackageManager.getApplicationInfo failed for " + packageName); } diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java index 203883eb5..f708e2fda 100644 --- a/src/com/android/launcher2/BubbleTextView.java +++ b/src/com/android/launcher2/BubbleTextView.java @@ -171,9 +171,8 @@ public class BubbleTextView extends TextView implements VisibilityChangedBroadca } /** - * Draw the View v into the given Canvas. + * Draw this BubbleTextView into the given Canvas. * - * @param v the view to draw * @param destCanvas the canvas to draw on * @param padding the horizontal and vertical padding to use when drawing */ |