Merge "Only update mutable shortcuts."

This commit is contained in:
TreeHugger Robot
2018-11-16 19:11:26 +00:00
committed by Android (Google) Code Review
2 changed files with 22 additions and 0 deletions

View File

@@ -128,6 +128,9 @@ public class SettingsInitialize extends BroadcastReceiver {
final List<ShortcutInfo> pinnedShortcuts = shortcutManager.getPinnedShortcuts();
final List<ShortcutInfo> updates = new ArrayList<>();
for (ShortcutInfo info : pinnedShortcuts) {
if (info.isImmutable()) {
continue;
}
final Intent shortcutIntent = info.getIntent();
shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
final ShortcutInfo updatedInfo = new ShortcutInfo.Builder(context, info.getId())

View File

@@ -78,4 +78,23 @@ public class SettingsInitializeTest {
assertThat(flags & Intent.FLAG_ACTIVITY_CLEAR_TOP).isEqualTo(
Intent.FLAG_ACTIVITY_CLEAR_TOP);
}
@Test
public void refreshExistingShortcuts_shouldNotUpdateImmutableShortcut() {
final String id = "test_shortcut_id";
final ShortcutInfo info = new ShortcutInfo.Builder(mContext, id)
.setShortLabel("test123")
.setIntent(new Intent(Intent.ACTION_DEFAULT))
.build();
info.addFlags(ShortcutInfo.FLAG_IMMUTABLE);
final List<ShortcutInfo> shortcuts = new ArrayList<>();
shortcuts.add(info);
ShadowShortcutManager.get().setPinnedShortcuts(shortcuts);
mSettingsInitialize.refreshExistingShortcuts(mContext);
final List<ShortcutInfo> updatedShortcuts =
ShadowShortcutManager.get().getLastUpdatedShortcuts();
assertThat(updatedShortcuts).isEmpty();
}
}