Loading src/com/android/settings/SettingsApplication.java +3 −2 Original line number Diff line number Diff line Loading @@ -22,8 +22,9 @@ import android.net.Uri; import android.provider.Settings; import android.util.FeatureFlagUtils; import androidx.window.embedding.SplitController; import com.android.settings.activityembedding.ActivityEmbeddingRulesController; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.core.instrumentation.ElapsedTimeUtils; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.spa.SettingsSpaEnvironment; Loading Loading @@ -52,7 +53,7 @@ public class SettingsApplication extends Application { setSpaEnvironment(); if (FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN) && ActivityEmbeddingUtils.isSettingsSplitEnabled(this)) { && SplitController.getInstance(this).isSplitSupported()) { if (WizardManagerHelper.isUserSetupComplete(this)) { new ActivityEmbeddingRulesController(this).initRules(); } else { Loading src/com/android/settings/SettingsInitialize.java +2 −2 Original line number Diff line number Diff line Loading @@ -37,9 +37,9 @@ import android.os.UserManager; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.window.embedding.SplitController; import com.android.settings.Settings.CreateShortcutActivity; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.homepage.DeepLinkHomepageActivity; import com.android.settings.search.SearchStateReceiver; import com.android.settingslib.utils.ThreadUtils; Loading Loading @@ -166,7 +166,7 @@ public class SettingsInitialize extends BroadcastReceiver { DeepLinkHomepageActivity.class); final ComponentName searchStateReceiver = new ComponentName(context, SearchStateReceiver.class); final int enableState = ActivityEmbeddingUtils.isSettingsSplitEnabled(context) final int enableState = SplitController.getInstance(context).isSplitSupported() ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED; pm.setComponentEnabledSetting(deepLinkHome, enableState, PackageManager.DONT_KILL_APP); Loading src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java +4 −37 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.settings.activityembedding; import android.app.Activity; import android.content.Context; import android.os.SystemProperties; import android.util.DisplayMetrics; import android.util.FeatureFlagUtils; import android.util.Log; Loading @@ -40,21 +39,6 @@ public class ActivityEmbeddingUtils { private static final int MIN_SMALLEST_SCREEN_SPLIT_WIDTH_DP = 600; // The minimum width of the activity to show the regular homepage layout. private static final float MIN_REGULAR_HOMEPAGE_LAYOUT_WIDTH_DP = 380f; /** * Indicates whether to enable large screen optimization if the device supports * the Activity Embedding split feature. * <p> * Note that the large screen optimization won't be enabled if the device doesn't support the * Activity Embedding feature regardless of this property value. * * @see androidx.window.embedding.SplitController#getSplitSupportStatus * @see androidx.window.embedding.SplitController.SplitSupportStatus#SPLIT_AVAILABLE * @see androidx.window.embedding.SplitController.SplitSupportStatus#SPLIT_UNAVAILABLE */ private static final boolean SHOULD_ENABLE_LARGE_SCREEN_OPTIMIZATION = SystemProperties.getBoolean("persist.settings.large_screen_opt.enabled", true); private static final String TAG = "ActivityEmbeddingUtils"; /** Get the smallest width dp of the window when the split should be used. */ Loading @@ -78,35 +62,18 @@ public class ActivityEmbeddingUtils { return context.getResources().getFloat(R.dimen.config_activity_embed_split_ratio); } /** * Returns {@code true} to indicate that Settings app support the Activity Embedding feature on * this device. Returns {@code false}, otherwise. */ public static boolean isSettingsSplitEnabled(Context context) { return SHOULD_ENABLE_LARGE_SCREEN_OPTIMIZATION && SplitController.getInstance(context).getSplitSupportStatus() == SplitController.SplitSupportStatus.SPLIT_AVAILABLE; } /** * Checks whether to support embedding activity feature with following conditions: * <ul> * <li>Whether {@link #isSettingsSplitEnabled(Context)}</li> * <li>Whether {@link FeatureFlagUtils#SETTINGS_SUPPORT_LARGE_SCREEN} is enabled</li> * <li>Whether User setup is completed</li> * </ul> */ /** Whether to support embedding activity feature. */ public static boolean isEmbeddingActivityEnabled(Context context) { boolean isFlagEnabled = FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN); boolean isSettingsSplitSupported = isSettingsSplitEnabled(context); boolean isSplitSupported = SplitController.getInstance(context).isSplitSupported(); boolean isUserSetupComplete = WizardManagerHelper.isUserSetupComplete(context); Log.d(TAG, "isFlagEnabled = " + isFlagEnabled); Log.d(TAG, "isSettingsSplitSupported = " + isSettingsSplitSupported); Log.d(TAG, "isSplitSupported = " + isSplitSupported); Log.d(TAG, "isUserSetupComplete = " + isUserSetupComplete); return isFlagEnabled && isSettingsSplitSupported && isUserSetupComplete; return isFlagEnabled && isSplitSupported && isUserSetupComplete; } /** Whether to show the regular or simplified homepage layout. */ Loading src/com/android/settings/homepage/SettingsHomepageActivity.java +2 −1 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.window.embedding.ActivityEmbeddingController; import androidx.window.embedding.SplitController; import androidx.window.embedding.SplitRule; import com.android.settings.R; Loading Loading @@ -428,7 +429,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements private boolean shouldLaunchDeepLinkIntentToRight() { if (!FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN) || !ActivityEmbeddingUtils.isSettingsSplitEnabled(this)) { || !SplitController.getInstance(this).isSplitSupported()) { return false; } Loading Loading
src/com/android/settings/SettingsApplication.java +3 −2 Original line number Diff line number Diff line Loading @@ -22,8 +22,9 @@ import android.net.Uri; import android.provider.Settings; import android.util.FeatureFlagUtils; import androidx.window.embedding.SplitController; import com.android.settings.activityembedding.ActivityEmbeddingRulesController; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.core.instrumentation.ElapsedTimeUtils; import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.spa.SettingsSpaEnvironment; Loading Loading @@ -52,7 +53,7 @@ public class SettingsApplication extends Application { setSpaEnvironment(); if (FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN) && ActivityEmbeddingUtils.isSettingsSplitEnabled(this)) { && SplitController.getInstance(this).isSplitSupported()) { if (WizardManagerHelper.isUserSetupComplete(this)) { new ActivityEmbeddingRulesController(this).initRules(); } else { Loading
src/com/android/settings/SettingsInitialize.java +2 −2 Original line number Diff line number Diff line Loading @@ -37,9 +37,9 @@ import android.os.UserManager; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.window.embedding.SplitController; import com.android.settings.Settings.CreateShortcutActivity; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.homepage.DeepLinkHomepageActivity; import com.android.settings.search.SearchStateReceiver; import com.android.settingslib.utils.ThreadUtils; Loading Loading @@ -166,7 +166,7 @@ public class SettingsInitialize extends BroadcastReceiver { DeepLinkHomepageActivity.class); final ComponentName searchStateReceiver = new ComponentName(context, SearchStateReceiver.class); final int enableState = ActivityEmbeddingUtils.isSettingsSplitEnabled(context) final int enableState = SplitController.getInstance(context).isSplitSupported() ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED; pm.setComponentEnabledSetting(deepLinkHome, enableState, PackageManager.DONT_KILL_APP); Loading
src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java +4 −37 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.settings.activityembedding; import android.app.Activity; import android.content.Context; import android.os.SystemProperties; import android.util.DisplayMetrics; import android.util.FeatureFlagUtils; import android.util.Log; Loading @@ -40,21 +39,6 @@ public class ActivityEmbeddingUtils { private static final int MIN_SMALLEST_SCREEN_SPLIT_WIDTH_DP = 600; // The minimum width of the activity to show the regular homepage layout. private static final float MIN_REGULAR_HOMEPAGE_LAYOUT_WIDTH_DP = 380f; /** * Indicates whether to enable large screen optimization if the device supports * the Activity Embedding split feature. * <p> * Note that the large screen optimization won't be enabled if the device doesn't support the * Activity Embedding feature regardless of this property value. * * @see androidx.window.embedding.SplitController#getSplitSupportStatus * @see androidx.window.embedding.SplitController.SplitSupportStatus#SPLIT_AVAILABLE * @see androidx.window.embedding.SplitController.SplitSupportStatus#SPLIT_UNAVAILABLE */ private static final boolean SHOULD_ENABLE_LARGE_SCREEN_OPTIMIZATION = SystemProperties.getBoolean("persist.settings.large_screen_opt.enabled", true); private static final String TAG = "ActivityEmbeddingUtils"; /** Get the smallest width dp of the window when the split should be used. */ Loading @@ -78,35 +62,18 @@ public class ActivityEmbeddingUtils { return context.getResources().getFloat(R.dimen.config_activity_embed_split_ratio); } /** * Returns {@code true} to indicate that Settings app support the Activity Embedding feature on * this device. Returns {@code false}, otherwise. */ public static boolean isSettingsSplitEnabled(Context context) { return SHOULD_ENABLE_LARGE_SCREEN_OPTIMIZATION && SplitController.getInstance(context).getSplitSupportStatus() == SplitController.SplitSupportStatus.SPLIT_AVAILABLE; } /** * Checks whether to support embedding activity feature with following conditions: * <ul> * <li>Whether {@link #isSettingsSplitEnabled(Context)}</li> * <li>Whether {@link FeatureFlagUtils#SETTINGS_SUPPORT_LARGE_SCREEN} is enabled</li> * <li>Whether User setup is completed</li> * </ul> */ /** Whether to support embedding activity feature. */ public static boolean isEmbeddingActivityEnabled(Context context) { boolean isFlagEnabled = FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN); boolean isSettingsSplitSupported = isSettingsSplitEnabled(context); boolean isSplitSupported = SplitController.getInstance(context).isSplitSupported(); boolean isUserSetupComplete = WizardManagerHelper.isUserSetupComplete(context); Log.d(TAG, "isFlagEnabled = " + isFlagEnabled); Log.d(TAG, "isSettingsSplitSupported = " + isSettingsSplitSupported); Log.d(TAG, "isSplitSupported = " + isSplitSupported); Log.d(TAG, "isUserSetupComplete = " + isUserSetupComplete); return isFlagEnabled && isSettingsSplitSupported && isUserSetupComplete; return isFlagEnabled && isSplitSupported && isUserSetupComplete; } /** Whether to show the regular or simplified homepage layout. */ Loading
src/com/android/settings/homepage/SettingsHomepageActivity.java +2 −1 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.window.embedding.ActivityEmbeddingController; import androidx.window.embedding.SplitController; import androidx.window.embedding.SplitRule; import com.android.settings.R; Loading Loading @@ -428,7 +429,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements private boolean shouldLaunchDeepLinkIntentToRight() { if (!FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN) || !ActivityEmbeddingUtils.isSettingsSplitEnabled(this)) { || !SplitController.getInstance(this).isSplitSupported()) { return false; } Loading