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

Commit 72d638e6 authored by Jason Chiu's avatar Jason Chiu Committed by Android (Google) Code Review
Browse files

Merge "Finish HomepageActivity when it's not the root of a task and not singleTask." into main

parents cf0501e4 5a305645
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -183,6 +183,12 @@ public class SettingsHomepageActivity extends FragmentActivity implements
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (!isTaskRoot() && !isSingleTask()) {
            Log.i(TAG, "Not task root nor single task, finish");
            finish();
            return;
        }

        mIsEmbeddingActivityEnabled = ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this);
        if (mIsEmbeddingActivityEnabled) {
            final UserManager um = getSystemService(UserManager.class);
@@ -308,6 +314,12 @@ public class SettingsHomepageActivity extends FragmentActivity implements
        updateHomepageUI();
    }

    private boolean isSingleTask() {
        ActivityInfo info = getIntent().resolveActivityInfo(getPackageManager(),
                PackageManager.MATCH_DEFAULT_ONLY);
        return info.launchMode == ActivityInfo.LAUNCH_SINGLE_TASK;
    }

    private void updateSplitLayout() {
        if (!mIsEmbeddingActivityEnabled) {
            return;
+23 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -210,6 +211,28 @@ public class SettingsHomepageActivityTest {
                & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS).isEqualTo(0);
    }

    @Test
    public void onCreate_notTaskRoot_shouldFinishActivity() {
        SettingsHomepageActivity activity =
                spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
        doReturn(false).when(activity).isTaskRoot();

        activity.onCreate(/* savedInstanceState */ null);

        verify(activity).finish();
    }

    @Test
    public void onCreate_singleTaskActivity_shouldNotFinishActivity() {
        SettingsHomepageActivity activity =
                spy(Robolectric.buildActivity(DeepLinkHomepageActivity.class).get());
        doReturn(false).when(activity).isTaskRoot();

        activity.onCreate(/* savedInstanceState */ null);

        verify(activity, never()).finish();
    }

    /** This test is for large screen devices Activity embedding. */
    @Test
    @Config(shadows = ShadowActivityEmbeddingUtils.class)