OSDN Git Service

Add "Instant apps" filter to app listing
[android-x86/packages-apps-Settings.git] / src / com / android / settings / applications / ManageApplications.java
index 97f36c3..2ca5fee 100644 (file)
@@ -136,12 +136,13 @@ public class ManageApplications extends InstrumentedPreferenceFragment
     public static final int FILTER_APPS_ALL = 2;
     public static final int FILTER_APPS_ENABLED = 3;
     public static final int FILTER_APPS_DISABLED = 4;
-    public static final int FILTER_APPS_BLOCKED = 5;
-    public static final int FILTER_APPS_PERSONAL = 6;
-    public static final int FILTER_APPS_WORK = 7;
-    public static final int FILTER_APPS_USAGE_ACCESS = 8;
-    public static final int FILTER_APPS_WITH_OVERLAY = 9;
-    public static final int FILTER_APPS_WRITE_SETTINGS = 10;
+    public static final int FILTER_APPS_INSTANT = 5;
+    public static final int FILTER_APPS_BLOCKED = 6;
+    public static final int FILTER_APPS_PERSONAL = 7;
+    public static final int FILTER_APPS_WORK = 8;
+    public static final int FILTER_APPS_USAGE_ACCESS = 9;
+    public static final int FILTER_APPS_WITH_OVERLAY = 10;
+    public static final int FILTER_APPS_WRITE_SETTINGS = 11;
     public static final int FILTER_APPS_INSTALL_SOURCES = 12;
 
     // Storage types. Used to determine what the extra item in the list of preferences is.
@@ -155,6 +156,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
             R.string.filter_all_apps,      // All apps
             R.string.filter_enabled_apps,  // Enabled
             R.string.filter_apps_disabled, // Disabled
+            R.string.filter_instant_apps,  // Instant apps
             R.string.filter_notif_blocked_apps,   // Blocked Notifications
             R.string.filter_personal_apps, // Personal
             R.string.filter_work_apps,     // Work
@@ -174,6 +176,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
             ApplicationsState.FILTER_EVERYTHING,  // All apps
             ApplicationsState.FILTER_ALL_ENABLED, // Enabled
             ApplicationsState.FILTER_DISABLED,    // Disabled
+            ApplicationsState.FILTER_INSTANT,      // Instant
             AppStateNotificationBridge.FILTER_APP_NOTIFICATION_BLOCKED,   // Blocked Notifications
             ApplicationsState.FILTER_PERSONAL,    // Personal
             ApplicationsState.FILTER_WORK,        // Work
@@ -381,6 +384,8 @@ public class ManageApplications extends InstrumentedPreferenceFragment
             AppFilter filter = new VolumeFilter(mVolumeUuid);
             if (mStorageType == STORAGE_TYPE_MUSIC) {
                 filter = new CompoundFilter(ApplicationsState.FILTER_AUDIO, filter);
+            } else {
+                filter = new CompoundFilter(ApplicationsState.FILTER_OTHER_APPS, filter);
             }
             mApplications.setOverrideFilter(filter);
         }
@@ -547,6 +552,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
                 break;
             case LIST_TYPE_MANAGE_SOURCES:
                 startAppInfoFragment(ExternalSourcesDetails.class, R.string.install_other_apps);
+                break;
             case LIST_TYPE_GAMES:
                 startAppInfoFragment(AppStorageSettings.class, R.string.game_storage_settings);
                 break;
@@ -688,6 +694,10 @@ public class ManageApplications extends InstrumentedPreferenceFragment
         mFilterAdapter.setFilterEnabled(FILTER_APPS_DISABLED, hasDisabledApps);
     }
 
+    public void setHasInstant(boolean haveInstantApps) {
+        mFilterAdapter.setFilterEnabled(FILTER_APPS_INSTANT, haveInstantApps);
+    }
+
     static class FilterSpinnerAdapter extends ArrayAdapter<CharSequence> {
 
         private final ManageApplications mManageApplications;
@@ -1039,6 +1049,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
             }
 
             mManageApplications.setHasDisabled(mState.haveDisabledApps());
+            mManageApplications.setHasInstant(mState.haveInstantApps());
         }
 
         private void rebuildSections() {
@@ -1139,7 +1150,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
         public void onPackageSizeChanged(String packageName) {
             for (int i = 0; i < mActive.size(); i++) {
                 AppViewHolder holder = (AppViewHolder) mActive.get(i).getTag();
-                if (holder == null) {
+                if (holder == null || holder.entry == null) {
                     continue;
                 }
                 ApplicationInfo info = holder.entry.info;