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
This commit is contained in:
Victor Chang
2018-02-23 17:54:44 +00:00
parent a42bfa83df
commit 61f7288166
4 changed files with 4 additions and 5 deletions

View File

@@ -164,7 +164,7 @@ public class SubSettingLauncher {
} }
private void launchForResult(Fragment listener, Intent intent, int requestCode) { private void launchForResult(Fragment listener, Intent intent, int requestCode) {
listener.getActivity().startActivityForResult(intent, requestCode); listener.startActivityForResult(intent, requestCode);
} }
/** /**

View File

@@ -337,7 +337,6 @@ public final class AppInfoDashboardFragmentTest {
public void startAppInfoFragment_includesNewAndOldArgs() { public void startAppInfoFragment_includesNewAndOldArgs() {
final SettingsPreferenceFragment caller = mock(SettingsPreferenceFragment.class); final SettingsPreferenceFragment caller = mock(SettingsPreferenceFragment.class);
final SettingsActivity sa = mock (SettingsActivity.class); final SettingsActivity sa = mock (SettingsActivity.class);
when(caller.getActivity()).thenReturn(sa);
when(caller.getContext()).thenReturn(sa); when(caller.getContext()).thenReturn(sa);
final AppEntry appEntry = mock(AppEntry.class); final AppEntry appEntry = mock(AppEntry.class);
appEntry.info = mock(ApplicationInfo.class); appEntry.info = mock(ApplicationInfo.class);
@@ -350,7 +349,7 @@ public final class AppInfoDashboardFragmentTest {
final ArgumentCaptor<Intent> intent = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> 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) assertThat(intent.getValue().getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
.containsKey("test")) .containsKey("test"))
.isTrue(); .isTrue();

View File

@@ -93,7 +93,7 @@ public class AppInfoPreferenceControllerBaseTest {
mController.handlePreferenceTreeClick(mPreference); mController.handlePreferenceTreeClick(mPreference);
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class); final ArgumentCaptor<Intent> 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)) assertThat(intentCaptor.getValue().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
.isEqualTo(mController.getDetailFragmentClass().getName()); .isEqualTo(mController.getDetailFragmentClass().getName());
} }

View File

@@ -121,7 +121,7 @@ public class SubSettingLauncherTest {
.setResultListener(mFragment, requestCode) .setResultListener(mFragment, requestCode)
.launch(); .launch();
verify(mActivity).startActivityForResult(any(Intent.class), eq(requestCode)); verify(mFragment).startActivityForResult(any(Intent.class), eq(requestCode));
} }
@Test @Test