Fix filter bug for non-internal app filtering.
By default, the filter would show all non-categorized apps. This, however, regressed the external storage apps view which does not have categorization (yet). By adding back in a legacy option to use the old purely UUID filtering, we can fix the regression. Change-Id: I72d8d3bc08fbdff53374eb1e973bce9f8d7e2e79 Fixes: 63542896 Test: Settings unit test
This commit is contained in:
@@ -214,8 +214,9 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Storage types. Used to determine what the extra item in the list of preferences is.
|
// Storage types. Used to determine what the extra item in the list of preferences is.
|
||||||
public static final int STORAGE_TYPE_DEFAULT = 0;
|
public static final int STORAGE_TYPE_DEFAULT = 0; // Show all apps that are not categorized.
|
||||||
public static final int STORAGE_TYPE_MUSIC = 1;
|
public static final int STORAGE_TYPE_MUSIC = 1;
|
||||||
|
public static final int STORAGE_TYPE_LEGACY = 2; // Show apps even if they can be categorized.
|
||||||
|
|
||||||
// sort order
|
// sort order
|
||||||
private int mSortOrder = R.id.sort_order_alpha;
|
private int mSortOrder = R.id.sort_order_alpha;
|
||||||
@@ -433,7 +434,7 @@ public class ManageApplications extends InstrumentedPreferenceFragment
|
|||||||
if (listType == LIST_TYPE_STORAGE) {
|
if (listType == LIST_TYPE_STORAGE) {
|
||||||
if (storageType == STORAGE_TYPE_MUSIC) {
|
if (storageType == STORAGE_TYPE_MUSIC) {
|
||||||
filter = new CompoundFilter(ApplicationsState.FILTER_AUDIO, filter);
|
filter = new CompoundFilter(ApplicationsState.FILTER_AUDIO, filter);
|
||||||
} else {
|
} else if (storageType == STORAGE_TYPE_DEFAULT) {
|
||||||
filter = new CompoundFilter(ApplicationsState.FILTER_OTHER_APPS, filter);
|
filter = new CompoundFilter(ApplicationsState.FILTER_OTHER_APPS, filter);
|
||||||
}
|
}
|
||||||
return filter;
|
return filter;
|
||||||
|
@@ -473,6 +473,9 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
|
|||||||
StorageUseActivity.class.getName());
|
StorageUseActivity.class.getName());
|
||||||
args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
|
args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
|
||||||
args.putString(ManageApplications.EXTRA_VOLUME_NAME, mVolume.getDescription());
|
args.putString(ManageApplications.EXTRA_VOLUME_NAME, mVolume.getDescription());
|
||||||
|
args.putInt(
|
||||||
|
ManageApplications.EXTRA_STORAGE_TYPE,
|
||||||
|
ManageApplications.STORAGE_TYPE_LEGACY);
|
||||||
intent = Utils.onBuildStartFragmentIntent(getActivity(),
|
intent = Utils.onBuildStartFragmentIntent(getActivity(),
|
||||||
ManageApplications.class.getName(), args, null, R.string.apps_storage, null,
|
ManageApplications.class.getName(), args, null, R.string.apps_storage, null,
|
||||||
false, getMetricsCategory());
|
false, getMetricsCategory());
|
||||||
|
@@ -116,4 +116,20 @@ public class ManageApplicationsUnitTest {
|
|||||||
|
|
||||||
assertThat(composedFilter.filterApp(appEntry)).isTrue();
|
assertThat(composedFilter.filterApp(appEntry)).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getCompositeFilter_worksForLegacyPrivateSettings() throws Exception {
|
||||||
|
ApplicationsState.AppFilter filter =
|
||||||
|
ManageApplications.getCompositeFilter(
|
||||||
|
ManageApplications.LIST_TYPE_STORAGE,
|
||||||
|
ManageApplications.STORAGE_TYPE_LEGACY,
|
||||||
|
"uuid");
|
||||||
|
final ApplicationInfo info = new ApplicationInfo();
|
||||||
|
info.volumeUuid = "uuid";
|
||||||
|
info.category = ApplicationInfo.CATEGORY_GAME;
|
||||||
|
final ApplicationsState.AppEntry appEntry = mock(ApplicationsState.AppEntry.class);
|
||||||
|
appEntry.info = info;
|
||||||
|
|
||||||
|
assertThat(filter.filterApp(appEntry)).isTrue();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user