Remove Settings from recents after app uninstall

SettingsActivity now calls finishAndRemoveTask
instead of only finish() to prevent blank
recent task from showing in overview.

Test: Visually inspected bug doesn't exist. Wrote
Roboelectric tests

Fixes: 129733119

Change-Id: I5b73c1b611e6eb52bb6665c215276efdc85c19b2
This commit is contained in:
Vinit Nayak
2019-07-01 13:24:39 -07:00
parent 6bb07bf056
commit f7d423d106
3 changed files with 42 additions and 7 deletions

View File

@@ -16,6 +16,8 @@
package com.android.settings.applications.appinfo;
import static com.android.settings.applications.appinfo.AppButtonsPreferenceController.KEY_REMOVE_TASK_WHEN_FINISHING;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
@@ -450,6 +452,30 @@ public class AppButtonsPreferenceControllerTest {
AppButtonsPreferenceController.DISABLED_FOR_USER);
}
@Test
public void handleActivityResult_onAppUninstall_removeTask() {
mController.handleActivityResult(REQUEST_UNINSTALL, 0, new Intent());
ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
verify(mSettingsActivity).finishPreferencePanel(anyInt(), argumentCaptor.capture());
final Intent i = argumentCaptor.getValue();
assertThat(i).isNotNull();
assertThat(i.getBooleanExtra(KEY_REMOVE_TASK_WHEN_FINISHING, false)).isTrue();
}
@Test
public void handleActivityResult_onAppNotUninstall_persistTask() {
mController.handleActivityResult(REQUEST_UNINSTALL + 1, 0, new Intent());
ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
verify(mSettingsActivity).finishPreferencePanel(anyInt(), argumentCaptor.capture());
final Intent i = argumentCaptor.getValue();
assertThat(i).isNotNull();
assertThat(i.getBooleanExtra(KEY_REMOVE_TASK_WHEN_FINISHING, false)).isFalse();
}
/**
* The test fragment which implements
* {@link ButtonActionDialogFragment.AppButtonsDialogListener}