From 61f72881660a3237415e87931d264acb2c4e2282 Mon Sep 17 00:00:00 2001 From: Victor Chang Date: Fri, 23 Feb 2018 17:54:44 +0000 Subject: [PATCH] Fix not delivering result to fragment using SubSettingLauncher - Call Fragment.startActivityForResult instead of Activity's one Test: make RunSettingsRoboTests Test: App info page is closed instantly after uninstalling the package Change-Id: If29c097c988101f89dcd9d0a5c1c68deed04eaa9 --- src/com/android/settings/core/SubSettingLauncher.java | 2 +- .../applications/appinfo/AppInfoDashboardFragmentTest.java | 3 +-- .../appinfo/AppInfoPreferenceControllerBaseTest.java | 2 +- .../src/com/android/settings/core/SubSettingLauncherTest.java | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/core/SubSettingLauncher.java b/src/com/android/settings/core/SubSettingLauncher.java index 1ffe7f53e6e..91bd4525d7c 100644 --- a/src/com/android/settings/core/SubSettingLauncher.java +++ b/src/com/android/settings/core/SubSettingLauncher.java @@ -164,7 +164,7 @@ public class SubSettingLauncher { } private void launchForResult(Fragment listener, Intent intent, int requestCode) { - listener.getActivity().startActivityForResult(intent, requestCode); + listener.startActivityForResult(intent, requestCode); } /** diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java index 1abbed575a0..0c9250d7d5a 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java @@ -337,7 +337,6 @@ public final class AppInfoDashboardFragmentTest { public void startAppInfoFragment_includesNewAndOldArgs() { final SettingsPreferenceFragment caller = mock(SettingsPreferenceFragment.class); final SettingsActivity sa = mock (SettingsActivity.class); - when(caller.getActivity()).thenReturn(sa); when(caller.getContext()).thenReturn(sa); final AppEntry appEntry = mock(AppEntry.class); appEntry.info = mock(ApplicationInfo.class); @@ -350,7 +349,7 @@ public final class AppInfoDashboardFragmentTest { final ArgumentCaptor intent = ArgumentCaptor.forClass(Intent.class); - verify(sa).startActivityForResult(intent.capture(), any(Integer.class)); + verify(caller).startActivityForResult(intent.capture(), any(Integer.class)); assertThat(intent.getValue().getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS) .containsKey("test")) .isTrue(); diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java index 0715724ac29..aadcb3e2f07 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java @@ -93,7 +93,7 @@ public class AppInfoPreferenceControllerBaseTest { mController.handlePreferenceTreeClick(mPreference); final ArgumentCaptor intentCaptor = ArgumentCaptor.forClass(Intent.class); - verify(mActivity).startActivityForResult(intentCaptor.capture(), eq(SUB_INFO_FRAGMENT)); + verify(mFragment).startActivityForResult(intentCaptor.capture(), eq(SUB_INFO_FRAGMENT)); assertThat(intentCaptor.getValue().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)) .isEqualTo(mController.getDetailFragmentClass().getName()); } diff --git a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java index 4a1b2d8e7e6..3143381d681 100644 --- a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java +++ b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java @@ -121,7 +121,7 @@ public class SubSettingLauncherTest { .setResultListener(mFragment, requestCode) .launch(); - verify(mActivity).startActivityForResult(any(Intent.class), eq(requestCode)); + verify(mFragment).startActivityForResult(any(Intent.class), eq(requestCode)); } @Test