Loading src/com/android/settings/SettingsActivity.java +8 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings; import static com.android.settings.applications.appinfo.AppButtonsPreferenceController.KEY_REMOVE_TASK_WHEN_FINISHING; import android.app.ActionBar; import android.app.ActivityManager; import android.content.BroadcastReceiver; Loading Loading @@ -542,8 +544,13 @@ public class SettingsActivity extends SettingsBaseActivity */ public void finishPreferencePanel(int resultCode, Intent resultData) { setResult(resultCode, resultData); if (resultData != null && resultData.getBooleanExtra(KEY_REMOVE_TASK_WHEN_FINISHING, false)) { finishAndRemoveTask(); } else { finish(); } } /** * Switch to a specific Fragment with taking care of validation, Title and BackStack Loading src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java +8 −6 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp PreferenceControllerMixin, LifecycleObserver, OnResume, OnDestroy, ApplicationsState.Callbacks { public static final String APP_CHG = "chg"; public static final String KEY_REMOVE_TASK_WHEN_FINISHING = "remove_task_when_finishing"; private static final String TAG = "AppButtonsPrefCtl"; private static final String KEY_ACTION_BUTTONS = "action_buttons"; Loading Loading @@ -196,7 +197,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp mActivity, UserManager.DISALLOW_APPS_CONTROL, mUserId); if (!refreshUi()) { setIntentAndFinish(true); setIntentAndFinish(true, false); } } } Loading Loading @@ -278,9 +279,9 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp AsyncTask.execute(new DisableChangerRunnable(mPm, mAppEntry.info.packageName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER)); } refreshAndFinishIfPossible(); refreshAndFinishIfPossible(true); } else if (requestCode == mRequestRemoveDeviceAdmin) { refreshAndFinishIfPossible(); refreshAndFinishIfPossible(false); } } Loading Loading @@ -466,19 +467,20 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp /** * Finish this fragment and return data if possible */ private void setIntentAndFinish(boolean appChanged) { private void setIntentAndFinish(boolean appChanged, boolean removeTaskWhenFinishing) { if (LOCAL_LOGV) { Log.i(TAG, "appChanged=" + appChanged); } Intent intent = new Intent(); intent.putExtra(APP_CHG, appChanged); intent.putExtra(KEY_REMOVE_TASK_WHEN_FINISHING, removeTaskWhenFinishing); mActivity.finishPreferencePanel(Activity.RESULT_OK, intent); mFinishing = true; } private void refreshAndFinishIfPossible() { private void refreshAndFinishIfPossible(boolean removeTaskWhenFinishing) { if (!refreshUi()) { setIntentAndFinish(true); setIntentAndFinish(true, removeTaskWhenFinishing); } else { startListeningToPackageRemove(); } Loading tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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} Loading Loading
src/com/android/settings/SettingsActivity.java +8 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.settings; import static com.android.settings.applications.appinfo.AppButtonsPreferenceController.KEY_REMOVE_TASK_WHEN_FINISHING; import android.app.ActionBar; import android.app.ActivityManager; import android.content.BroadcastReceiver; Loading Loading @@ -542,8 +544,13 @@ public class SettingsActivity extends SettingsBaseActivity */ public void finishPreferencePanel(int resultCode, Intent resultData) { setResult(resultCode, resultData); if (resultData != null && resultData.getBooleanExtra(KEY_REMOVE_TASK_WHEN_FINISHING, false)) { finishAndRemoveTask(); } else { finish(); } } /** * Switch to a specific Fragment with taking care of validation, Title and BackStack Loading
src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java +8 −6 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp PreferenceControllerMixin, LifecycleObserver, OnResume, OnDestroy, ApplicationsState.Callbacks { public static final String APP_CHG = "chg"; public static final String KEY_REMOVE_TASK_WHEN_FINISHING = "remove_task_when_finishing"; private static final String TAG = "AppButtonsPrefCtl"; private static final String KEY_ACTION_BUTTONS = "action_buttons"; Loading Loading @@ -196,7 +197,7 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp mActivity, UserManager.DISALLOW_APPS_CONTROL, mUserId); if (!refreshUi()) { setIntentAndFinish(true); setIntentAndFinish(true, false); } } } Loading Loading @@ -278,9 +279,9 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp AsyncTask.execute(new DisableChangerRunnable(mPm, mAppEntry.info.packageName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER)); } refreshAndFinishIfPossible(); refreshAndFinishIfPossible(true); } else if (requestCode == mRequestRemoveDeviceAdmin) { refreshAndFinishIfPossible(); refreshAndFinishIfPossible(false); } } Loading Loading @@ -466,19 +467,20 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp /** * Finish this fragment and return data if possible */ private void setIntentAndFinish(boolean appChanged) { private void setIntentAndFinish(boolean appChanged, boolean removeTaskWhenFinishing) { if (LOCAL_LOGV) { Log.i(TAG, "appChanged=" + appChanged); } Intent intent = new Intent(); intent.putExtra(APP_CHG, appChanged); intent.putExtra(KEY_REMOVE_TASK_WHEN_FINISHING, removeTaskWhenFinishing); mActivity.finishPreferencePanel(Activity.RESULT_OK, intent); mFinishing = true; } private void refreshAndFinishIfPossible() { private void refreshAndFinishIfPossible(boolean removeTaskWhenFinishing) { if (!refreshUi()) { setIntentAndFinish(true); setIntentAndFinish(true, removeTaskWhenFinishing); } else { startListeningToPackageRemove(); } Loading
tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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} Loading