Removes instant apps from certain screens
Removes instant apps from the Special Access screens, as well as
notifications.
Test: make RunSettingsRoboTests
Bug: 36515324
Change-Id: I5b2f0ee3219acd89e2cbdcefed4d9608450395c0
(cherry picked from commit 1c9b6092eeb4a6eea7ba0d1db5fbe01c73adff37)
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index fde145f..229e294 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -33,6 +33,7 @@
import android.preference.PreferenceFrameLayout;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
+import android.util.ArraySet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -86,10 +87,12 @@
import com.android.settingslib.applications.StorageStatsSource;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
+import java.util.Set;
/**
* Activity to pick an application that will be used to display installation information and
@@ -253,6 +256,12 @@
public static final int LIST_TYPE_MANAGE_SOURCES = 8;
public static final int LIST_TYPE_GAMES = 9;
+
+ // List types that should show instant apps.
+ public static final Set<Integer> LIST_TYPES_WITH_INSTANT = new ArraySet<>(Arrays.asList(
+ LIST_TYPE_MAIN,
+ LIST_TYPE_STORAGE));
+
private View mRootView;
private View mSpinnerHeader;
@@ -701,7 +710,9 @@
}
public void setHasInstant(boolean haveInstantApps) {
- mFilterAdapter.setFilterEnabled(FILTER_APPS_INSTANT, haveInstantApps);
+ if (LIST_TYPES_WITH_INSTANT.contains(mListType)) {
+ mFilterAdapter.setFilterEnabled(FILTER_APPS_INSTANT, haveInstantApps);
+ }
}
static class FilterSpinnerAdapter extends ArrayAdapter<CharSequence> {
@@ -956,8 +967,13 @@
filterObj = mOverrideFilter;
}
if (!mManageApplications.mShowSystem) {
- filterObj = new CompoundFilter(filterObj,
- ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER);
+ if (LIST_TYPES_WITH_INSTANT.contains(mManageApplications.mListType)) {
+ filterObj = new CompoundFilter(filterObj,
+ ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER_AND_INSTANT);
+ } else {
+ filterObj = new CompoundFilter(filterObj,
+ ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER);
+ }
}
switch (mLastSortMode) {
case R.id.sort_order_size: