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

Commit 5fc96844 authored by Yi-Ling Chuang's avatar Yi-Ling Chuang
Browse files

Correct how the injection mechanism starts activities

Settings Injection used to start activities with
startActivityForResult() and its extension, where there was not result
really being handled. Hence, this CL corrects the way it starts
activities by removing the "ForResult" part.

Fixes: 197704126
Test: robotest and launch Android Auto to see it being launched in
another task.

Change-Id: I259b2555cf62f8966afdf664b337af5f216b3843
parent a3b89868
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -422,19 +422,19 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider {
        mMetricsFeatureProvider.logStartedIntent(intent, sourceMetricCategory);

        if (tile.userHandle == null || tile.isPrimaryProfileOnly()) {
            activity.startActivityForResult(intent, 0);
            activity.startActivity(intent);
        } else if (tile.userHandle.size() == 1) {
            activity.startActivityForResultAsUser(intent, 0, tile.userHandle.get(0));
            activity.startActivityAsUser(intent, tile.userHandle.get(0));
        } else {
            final UserHandle userHandle = intent.getParcelableExtra(EXTRA_USER);
            if (userHandle != null && tile.userHandle.contains(userHandle)) {
                activity.startActivityForResultAsUser(intent, 0, userHandle);
                activity.startActivityAsUser(intent, userHandle);
                return;
            }

            final List<UserHandle> resolvableUsers = getResolvableUsers(intent, tile);
            if (resolvableUsers.size() == 1) {
                activity.startActivityForResultAsUser(intent, 0, resolvableUsers.get(0));
                activity.startActivityAsUser(intent, resolvableUsers.get(0));
                return;
            }

+8 −8
Original line number Diff line number Diff line
@@ -239,7 +239,7 @@ public class DashboardFeatureProviderImplTest {
                any(Intent.class),
                eq(MetricsEvent.SETTINGS_GESTURES));
        verify(mActivity)
                .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class));
                .startActivityAsUser(any(Intent.class), any(UserHandle.class));
    }

    @Test
@@ -257,7 +257,7 @@ public class DashboardFeatureProviderImplTest {
                any(Intent.class),
                anyInt());
        verify(mActivity)
                .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class));
                .startActivityAsUser(any(Intent.class), any(UserHandle.class));
    }

    @Test
@@ -568,7 +568,7 @@ public class DashboardFeatureProviderImplTest {
        mImpl.openTileIntent(mActivity, tile);

        verify(mActivity, never())
                .startActivityForResult(any(Intent.class), eq(0));
                .startActivity(any(Intent.class));
        verify(mActivity).getSupportFragmentManager();
    }

@@ -585,7 +585,7 @@ public class DashboardFeatureProviderImplTest {
        mImpl.openTileIntent(mActivity, tile);

        verify(mActivity, never())
                .startActivityForResult(any(Intent.class), eq(0));
                .startActivity(any(Intent.class));
        verify(mActivity).getSupportFragmentManager();
    }

@@ -602,7 +602,7 @@ public class DashboardFeatureProviderImplTest {
        mImpl.openTileIntent(mActivity, tile);

        verify(mActivity)
                .startActivityForResult(any(Intent.class), eq(0));
                .startActivity(any(Intent.class));
        verify(mActivity, never()).getSupportFragmentManager();
    }

@@ -623,7 +623,7 @@ public class DashboardFeatureProviderImplTest {

        final ArgumentCaptor<UserHandle> argument = ArgumentCaptor.forClass(UserHandle.class);
        verify(mActivity)
                .startActivityForResultAsUser(any(Intent.class), anyInt(), argument.capture());
                .startActivityAsUser(any(Intent.class), argument.capture());
        assertThat(argument.getValue().getIdentifier()).isEqualTo(userId);
        verify(mActivity, never()).getSupportFragmentManager();
    }
@@ -642,7 +642,7 @@ public class DashboardFeatureProviderImplTest {
        mImpl.openTileIntent(mActivity, tile);

        verify(mActivity, never())
                .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class));
                .startActivityAsUser(any(Intent.class), any(UserHandle.class));
        verify(mActivity).getSupportFragmentManager();
    }

@@ -665,7 +665,7 @@ public class DashboardFeatureProviderImplTest {

        final ArgumentCaptor<UserHandle> argument = ArgumentCaptor.forClass(UserHandle.class);
        verify(mActivity)
                .startActivityForResultAsUser(any(Intent.class), anyInt(), argument.capture());
                .startActivityAsUser(any(Intent.class), argument.capture());
        assertThat(argument.getValue().getIdentifier()).isEqualTo(0);
        verify(mActivity, never()).getSupportFragmentManager();
    }