Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 61f72881 authored by Victor Chang's avatar Victor Chang
Browse files

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
parent a42bfa83
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
    }

    /**
+1 −2
Original line number Diff line number Diff line
@@ -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> 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();
+1 −1
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ public class AppInfoPreferenceControllerBaseTest {
        mController.handlePreferenceTreeClick(mPreference);
        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))
                .isEqualTo(mController.getDetailFragmentClass().getName());
    }
+1 −1
Original line number Diff line number Diff line
@@ -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