Loading src/com/android/settings/homepage/SettingsHomepageActivity.java +12 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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; Loading tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) Loading Loading
src/com/android/settings/homepage/SettingsHomepageActivity.java +12 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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; Loading
tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) Loading