diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/AppUtils.java b/packages/SettingsLib/src/com/android/settingslib/applications/AppUtils.java index f6d9134c5e2b0..7f7249f0f9087 100644 --- a/packages/SettingsLib/src/com/android/settingslib/applications/AppUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/applications/AppUtils.java @@ -19,9 +19,11 @@ package com.android.settingslib.applications; import android.content.ComponentName; import android.content.Context; import android.content.IntentFilter; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.hardware.usb.IUsbManager; import android.os.RemoteException; +import android.os.SystemProperties; import android.os.UserHandle; import android.util.Log; @@ -68,4 +70,29 @@ public class AppUtils { return prefActList.size() > 0; } + /** + * Returns a boolean indicating whether the given package should be considered an instant app + */ + public static boolean isInstant(ApplicationInfo info) { + if (info.isInstantApp()) { + return true; + } + + // For debugging/testing, we support setting the following property to a comma-separated + // list of search terms (typically, but not necessarily, full package names) to match + // against the package names of the app. + String propVal = SystemProperties.get("settingsdebug.instant.packages"); + if (propVal != null && !propVal.isEmpty() && info.packageName != null) { + String[] searchTerms = propVal.split(","); + if (searchTerms != null) { + for (String term : searchTerms) { + if (info.packageName.contains(term)) { + return true; + } + } + } + } + return false; + } + } diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java index 1f03b51aef9e4..fda3914d1fc08 100644 --- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java @@ -98,6 +98,7 @@ public class ApplicationsState { boolean mResumed; boolean mHaveDisabledApps; + boolean mHaveInstantApps; // Information about all applications. Synchronize on mEntriesMap // to protect access to these. @@ -212,6 +213,7 @@ public class ApplicationsState { } mHaveDisabledApps = false; + mHaveInstantApps = false; for (int i=0; i