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 1c9b6092ee)
This commit is contained in:
Jesse Evans
2017-03-30 17:09:12 -07:00
parent ebbfce0bf1
commit 804854cdfe

View File

@@ -33,6 +33,7 @@ import android.os.UserManager;
import android.preference.PreferenceFrameLayout; import android.preference.PreferenceFrameLayout;
import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.ArraySet;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
@@ -86,10 +87,12 @@ import com.android.settingslib.applications.ApplicationsState.VolumeFilter;
import com.android.settingslib.applications.StorageStatsSource; import com.android.settingslib.applications.StorageStatsSource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Set;
/** /**
* Activity to pick an application that will be used to display installation information and * 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_MANAGE_SOURCES = 8;
public static final int LIST_TYPE_GAMES = 9; 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 mRootView;
private View mSpinnerHeader; private View mSpinnerHeader;
@@ -701,8 +710,10 @@ public class ManageApplications extends InstrumentedPreferenceFragment
} }
public void setHasInstant(boolean haveInstantApps) { public void setHasInstant(boolean haveInstantApps) {
if (LIST_TYPES_WITH_INSTANT.contains(mListType)) {
mFilterAdapter.setFilterEnabled(FILTER_APPS_INSTANT, haveInstantApps); mFilterAdapter.setFilterEnabled(FILTER_APPS_INSTANT, haveInstantApps);
} }
}
static class FilterSpinnerAdapter extends ArrayAdapter<CharSequence> { static class FilterSpinnerAdapter extends ArrayAdapter<CharSequence> {
@@ -956,9 +967,14 @@ public class ManageApplications extends InstrumentedPreferenceFragment
filterObj = mOverrideFilter; filterObj = mOverrideFilter;
} }
if (!mManageApplications.mShowSystem) { if (!mManageApplications.mShowSystem) {
if (LIST_TYPES_WITH_INSTANT.contains(mManageApplications.mListType)) {
filterObj = new CompoundFilter(filterObj,
ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER_AND_INSTANT);
} else {
filterObj = new CompoundFilter(filterObj, filterObj = new CompoundFilter(filterObj,
ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER); ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER);
} }
}
switch (mLastSortMode) { switch (mLastSortMode) {
case R.id.sort_order_size: case R.id.sort_order_size:
switch (mWhichSize) { switch (mWhichSize) {