OSDN Git Service

Removes instant apps from certain screens
authorJesse Evans <jsje@google.com>
Fri, 31 Mar 2017 00:09:12 +0000 (17:09 -0700)
committerJesse Evans <jsje@google.com>
Tue, 4 Apr 2017 15:34:57 +0000 (08:34 -0700)
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)

src/com/android/settings/applications/ManageApplications.java

index fde145f..229e294 100644 (file)
@@ -33,6 +33,7 @@ import android.os.UserManager;
 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.ApplicationsState.VolumeFilter;
 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 class ManageApplications extends InstrumentedPreferenceFragment
     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 class ManageApplications extends InstrumentedPreferenceFragment
     }
 
     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 @@ public class ManageApplications extends InstrumentedPreferenceFragment
                 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: