From 481c1fb796ea00d725b079a98cd6958247794a83 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Mon, 7 Jul 2014 15:28:02 -0700 Subject: Fixing icon disappearing when apps are moved to sdcard For intents, external application unavailable/available, the extra argument 'replacing' is not sent for jelly beans and lower devices. Using appropriate default value issue: 15852084 Change-Id: I865aa22a16700629fffe440a4b92a634a0ba8ae7 --- src/com/android/launcher3/compat/LauncherAppsCompatV16.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/com/android/launcher3/compat/LauncherAppsCompatV16.java') diff --git a/src/com/android/launcher3/compat/LauncherAppsCompatV16.java b/src/com/android/launcher3/compat/LauncherAppsCompatV16.java index f30c28b82..de9f3a032 100644 --- a/src/com/android/launcher3/compat/LauncherAppsCompatV16.java +++ b/src/com/android/launcher3/compat/LauncherAppsCompatV16.java @@ -174,13 +174,18 @@ public class LauncherAppsCompatV16 extends LauncherAppsCompat { } } } else if (Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE.equals(action)) { - final boolean replacing = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false); + // EXTRA_REPLACING is available Kitkat onwards. For lower devices, it is broadcasted + // when moving a package or mounting/un-mounting external storage. Assume that + // it is a replacing operation. + final boolean replacing = intent.getBooleanExtra(Intent.EXTRA_REPLACING, + Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT); String[] packages = intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST); for (OnAppsChangedCallbackCompat callback : getCallbacks()) { callback.onPackagesAvailable(packages, user, replacing); } } else if (Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE.equals(action)) { - final boolean replacing = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false); + final boolean replacing = intent.getBooleanExtra(Intent.EXTRA_REPLACING, + Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT); String[] packages = intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST); for (OnAppsChangedCallbackCompat callback : getCallbacks()) { callback.onPackagesUnavailable(packages, user, replacing); -- cgit v1.2.3