Sort widgets list based on intent-filter priority.

- Sort based on priority, also group them in PreferenceCategory. So
category is divided by horizontal lines.

- Also removed a bunch of intent-filter for VOICE_LAUNCH. I don't think
we support them any more. If we see bugs, can easily put them back.

Change-Id: I286a6bdf8b3c2eb716a36c6a061fc54a8010d8f6
Fixes: 74806595
Test: manual
This commit is contained in:
Fan Zhang
2018-06-22 14:30:09 -07:00
parent 948a028690
commit 5a98177563
3 changed files with 77 additions and 57 deletions

View File

@@ -104,7 +104,7 @@ public class CreateShortcutPreferenceControllerTest {
}
@Test
public void queryActivities_shouldOnlyIncludeSystemApp() {
public void queryShortcuts_shouldOnlyIncludeSystemApp() {
final ResolveInfo ri1 = new ResolveInfo();
ri1.activityInfo = new ActivityInfo();
ri1.activityInfo.name = "activity1";
@@ -124,4 +124,30 @@ public class CreateShortcutPreferenceControllerTest {
assertThat(info).hasSize(1);
assertThat(info.get(0)).isEqualTo(ri2);
}
@Test
public void queryShortcuts_shouldSortBasedOnPriority() {
final ResolveInfo ri1 = new ResolveInfo();
ri1.priority = 100;
ri1.activityInfo = new ActivityInfo();
ri1.activityInfo.name = "activity1";
ri1.activityInfo.applicationInfo = new ApplicationInfo();
ri1.activityInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
final ResolveInfo ri2 = new ResolveInfo();
ri1.priority = 50;
ri2.activityInfo = new ActivityInfo();
ri2.activityInfo.name = "activity2";
ri2.activityInfo.applicationInfo = new ApplicationInfo();
ri2.activityInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
mPackageManager.addResolveInfoForIntent(
new Intent(CreateShortcutPreferenceController.SHORTCUT_PROBE),
Arrays.asList(ri1, ri2));
final List<ResolveInfo> info = mController.queryShortcuts();
assertThat(info).hasSize(2);
assertThat(info.get(0)).isEqualTo(ri2);
assertThat(info.get(1)).isEqualTo(ri1);
}
}