diff options
author | d34d <clark@cyngn.com> | 2015-07-17 10:06:20 -0700 |
---|---|---|
committer | cretin45 <cretin45@gmail.com> | 2016-03-15 14:25:30 -0700 |
commit | 772f61de9ad6a86dcccbab308c7202e770975ce6 (patch) | |
tree | 4dc0f27c7e9d8a9cf461cf4aebedbab23d604df5 /src/com/android/launcher3/Launcher.java | |
parent | 1129f556e5097e777bd2071890cc622db6a14f5e (diff) | |
download | android_packages_apps_Trebuchet-772f61de9ad6a86dcccbab308c7202e770975ce6.tar.gz android_packages_apps_Trebuchet-772f61de9ad6a86dcccbab308c7202e770975ce6.tar.bz2 android_packages_apps_Trebuchet-772f61de9ad6a86dcccbab308c7202e770975ce6.zip |
Show apps as unavailable when on unmounted storage
This patch allows shortcuts to apps that are currently unavailable
due to being on unmounted external storage to remain on the workspace
and in folders. The icons will be disabled and grayed out until
the external storage is mounted.
Issue-id: CYNGNOS-1344
Change-Id: I971483806b27e3a75ef0d5bb89d8dfb86f97511e
Diffstat (limited to 'src/com/android/launcher3/Launcher.java')
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index b135fefd9..739693361 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -3068,6 +3068,10 @@ public class Launcher extends Activity final Intent intent; if (tag instanceof ShortcutInfo) { shortcut = (ShortcutInfo) tag; + if (shortcut.isDisabled == 1) { + Toast.makeText(this, R.string.app_not_available, Toast.LENGTH_SHORT).show(); + return; + } intent = shortcut.intent; int[] pos = new int[2]; v.getLocationOnScreen(pos); @@ -4784,12 +4788,53 @@ public class Launcher extends Activity } } + /** + * A package has become unavailable. + * + * Implementation of the method from LauncherModel.Callbacks. + */ + public void bindComponentsUnavailable(final ArrayList<String> packageNames, + final ArrayList<AppInfo> appInfos) { + if (!packageNames.isEmpty()) { + mWorkspace.updateUnavailableItemsByPackageName(packageNames); + } + HashSet<ComponentName> cns = new HashSet<>(); + for (AppInfo appInfo : appInfos) { + cns.add(appInfo.componentName); + } + // Notify the drag controller + mDragController.onAppsRemoved(packageNames, cns); + mAppsView.removeApps(appInfos); + } + + /** + * A package has become unavailable. + * + * Implementation of the method from LauncherModel.Callbacks. + */ + public void bindComponentsAvailable(final ArrayList<ItemInfo> itemInfos) { + if (!itemInfos.isEmpty()) { + mWorkspace.updateAvailableItems(itemInfos); + } + } + + /** + * A number of packages were updated. + */ + private ArrayList<Object> mWidgetsAndShortcuts; private Runnable mBindPackagesUpdatedRunnable = new Runnable() { public void run() { bindAllPackages(mWidgetsModel); } }; + public void bindPackagesUpdated(final ArrayList<Object> widgetsAndShortcuts) { + if (waitUntilResume(mBindPackagesUpdatedRunnable, true)) { + mWidgetsAndShortcuts = widgetsAndShortcuts; + return; + } + } + @Override public void bindAllPackages(final WidgetsModel model) { if (waitUntilResume(mBindPackagesUpdatedRunnable, true)) { |