diff options
Diffstat (limited to 'src/com/android/launcher3/ApplicationInfo.java')
-rw-r--r-- | src/com/android/launcher3/ApplicationInfo.java | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/com/android/launcher3/ApplicationInfo.java b/src/com/android/launcher3/ApplicationInfo.java index 53801d60c..1bc147a20 100644 --- a/src/com/android/launcher3/ApplicationInfo.java +++ b/src/com/android/launcher3/ApplicationInfo.java @@ -20,6 +20,7 @@ import android.content.ComponentName; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; +import android.content.pm.PackageInfo; import android.content.pm.ResolveInfo; import android.graphics.Bitmap; import android.util.Log; @@ -72,15 +73,9 @@ class ApplicationInfo extends ItemInfo { Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); try { - 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 |= UPDATED_SYSTEM_APP_FLAG; - } - } - firstInstallTime = pm.getPackageInfo(packageName, 0).firstInstallTime; + PackageInfo pi = pm.getPackageInfo(packageName, 0); + flags = initFlags(pi); + firstInstallTime = initFirstInstallTime(pi); } catch (NameNotFoundException e) { Log.d(TAG, "PackageManager.getApplicationInfo failed for " + packageName); } @@ -88,6 +83,23 @@ class ApplicationInfo extends ItemInfo { iconCache.getTitleAndIcon(this, info, labelCache); } + public static int initFlags(PackageInfo pi) { + int appFlags = pi.applicationInfo.flags; + int flags = 0; + if ((appFlags & android.content.pm.ApplicationInfo.FLAG_SYSTEM) == 0) { + flags |= DOWNLOADED_FLAG; + + if ((appFlags & android.content.pm.ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) { + flags |= UPDATED_SYSTEM_APP_FLAG; + } + } + return flags; + } + + public static long initFirstInstallTime(PackageInfo pi) { + return pi.firstInstallTime; + } + public ApplicationInfo(ApplicationInfo info) { super(info); componentName = info.componentName; |