From da3de6ddfe6d83941f9ddde0354e6781bca24e75 Mon Sep 17 00:00:00 2001 From: Rubin Xu Date: Wed, 27 Apr 2016 20:33:53 +0100 Subject: [PATCH] Fix incorrect icon greying on pre-N system The flag we check for package suspension is reused by a hidden constant prior to N, so the flag should only be checked on N or later system. Bug: 28390176 Change-Id: Ia28f62991cc2cd1b5d2cc27a5f11f7edca0ba02b (cherry picked from commit 3ee9080fb47ecb3ecb003519faf24394b8c4761e) --- .../android/launcher3/util/PackageManagerHelper.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/com/android/launcher3/util/PackageManagerHelper.java b/src/com/android/launcher3/util/PackageManagerHelper.java index d0345727fb..08e8e869d5 100644 --- a/src/com/android/launcher3/util/PackageManagerHelper.java +++ b/src/com/android/launcher3/util/PackageManagerHelper.java @@ -19,6 +19,8 @@ package com.android.launcher3.util; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; +import com.android.launcher3.Utilities; + /** * Utility methods using package manager */ @@ -57,6 +59,13 @@ public class PackageManagerHelper { } public static boolean isAppSuspended(ApplicationInfo info) { - return (info.flags & FLAG_SUSPENDED) != 0; + // The value of FLAG_SUSPENDED was reused by a hidden constant + // ApplicationInfo.FLAG_PRIVILEGED prior to N, so only check for suspended flag on N + // or later. + if (Utilities.isNycOrAbove()) { + return (info.flags & FLAG_SUSPENDED) != 0; + } else { + return false; + } } }