Loading src/com/android/settings/homepage/SettingsHomepageActivity.java +14 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.Toolbar; import androidx.annotation.VisibleForTesting; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowCompat; Loading Loading @@ -223,10 +224,23 @@ public class SettingsHomepageActivity extends FragmentActivity implements if (shouldLaunchDeepLinkIntentToRight()) { launchDeepLinkIntentToRight(); } // Settings app may be launched on an existing task. Reset SplitPairRule of SubSettings here // to prevent SplitPairRule of an existing task applied on a new started Settings app. if (ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this) && (getIntent().getFlags() & Intent.FLAG_ACTIVITY_CLEAR_TOP) != 0) { initSplitPairRules(); } updateHomepagePaddings(); updateSplitLayout(); } @VisibleForTesting void initSplitPairRules() { new ActivityEmbeddingRulesController(getApplicationContext()).initRules(); } @Override protected void onStart() { ((SettingsApplication) getApplication()).setHomeActivity(this); Loading tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -20,12 +20,14 @@ import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTE import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.ActivityManager; import android.content.Intent; import android.os.Build; import android.view.View; import android.view.Window; Loading @@ -37,6 +39,7 @@ import androidx.fragment.app.Fragment; import com.android.settings.R; import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl; import com.android.settings.homepage.contextualcards.slices.BatteryFixSliceTest; import com.android.settings.testutils.shadow.ShadowActivityEmbeddingUtils; import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin; Loading Loading @@ -195,6 +198,20 @@ public class SettingsHomepageActivityTest { & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS).isEqualTo(0); } /** This test is for large screen devices Activity embedding. */ @Test @Config(shadows = ShadowActivityEmbeddingUtils.class) public void onCreate_flagClearTop_shouldInitRules() { ShadowActivityEmbeddingUtils.setIsEmbeddingActivityEnabled(true); SettingsHomepageActivity activity = spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get()); doReturn(new Intent().setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).when(activity).getIntent(); activity.onCreate(/* savedInstanceState */ null); verify(activity).initSplitPairRules(); } @Implements(SuggestionFeatureProviderImpl.class) public static class ShadowSuggestionFeatureProviderImpl { Loading Loading
src/com/android/settings/homepage/SettingsHomepageActivity.java +14 −0 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.Toolbar; import androidx.annotation.VisibleForTesting; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowCompat; Loading Loading @@ -223,10 +224,23 @@ public class SettingsHomepageActivity extends FragmentActivity implements if (shouldLaunchDeepLinkIntentToRight()) { launchDeepLinkIntentToRight(); } // Settings app may be launched on an existing task. Reset SplitPairRule of SubSettings here // to prevent SplitPairRule of an existing task applied on a new started Settings app. if (ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this) && (getIntent().getFlags() & Intent.FLAG_ACTIVITY_CLEAR_TOP) != 0) { initSplitPairRules(); } updateHomepagePaddings(); updateSplitLayout(); } @VisibleForTesting void initSplitPairRules() { new ActivityEmbeddingRulesController(getApplicationContext()).initRules(); } @Override protected void onStart() { ((SettingsApplication) getApplication()).setHomeActivity(this); Loading
tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java +17 −0 Original line number Diff line number Diff line Loading @@ -20,12 +20,14 @@ import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTE import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.ActivityManager; import android.content.Intent; import android.os.Build; import android.view.View; import android.view.Window; Loading @@ -37,6 +39,7 @@ import androidx.fragment.app.Fragment; import com.android.settings.R; import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl; import com.android.settings.homepage.contextualcards.slices.BatteryFixSliceTest; import com.android.settings.testutils.shadow.ShadowActivityEmbeddingUtils; import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin; Loading Loading @@ -195,6 +198,20 @@ public class SettingsHomepageActivityTest { & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS).isEqualTo(0); } /** This test is for large screen devices Activity embedding. */ @Test @Config(shadows = ShadowActivityEmbeddingUtils.class) public void onCreate_flagClearTop_shouldInitRules() { ShadowActivityEmbeddingUtils.setIsEmbeddingActivityEnabled(true); SettingsHomepageActivity activity = spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get()); doReturn(new Intent().setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).when(activity).getIntent(); activity.onCreate(/* savedInstanceState */ null); verify(activity).initSplitPairRules(); } @Implements(SuggestionFeatureProviderImpl.class) public static class ShadowSuggestionFeatureProviderImpl { Loading