Revert "Disable Settings large-screen optimization"

Revert submission 22926596-disable_large_screen_opt

Reason for revert: b/280606740

Reverted changes: /q/submissionid:22926596-disable_large_screen_opt

Change-Id: Ib918705206dc6b8bcbce21f83494d1108c6b8393
This commit is contained in:
Priyanka Advani
2023-05-03 16:05:25 +00:00
committed by Android (Google) Code Review
parent 1815ba7828
commit 77f76267d2
4 changed files with 11 additions and 42 deletions

View File

@@ -22,8 +22,9 @@ import android.net.Uri;
import android.provider.Settings; import android.provider.Settings;
import android.util.FeatureFlagUtils; import android.util.FeatureFlagUtils;
import androidx.window.embedding.SplitController;
import com.android.settings.activityembedding.ActivityEmbeddingRulesController; import com.android.settings.activityembedding.ActivityEmbeddingRulesController;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.core.instrumentation.ElapsedTimeUtils; import com.android.settings.core.instrumentation.ElapsedTimeUtils;
import com.android.settings.homepage.SettingsHomepageActivity; import com.android.settings.homepage.SettingsHomepageActivity;
import com.android.settings.spa.SettingsSpaEnvironment; import com.android.settings.spa.SettingsSpaEnvironment;
@@ -52,7 +53,7 @@ public class SettingsApplication extends Application {
setSpaEnvironment(); setSpaEnvironment();
if (FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN) if (FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN)
&& ActivityEmbeddingUtils.isSettingsSplitEnabled(this)) { && SplitController.getInstance(this).isSplitSupported()) {
if (WizardManagerHelper.isUserSetupComplete(this)) { if (WizardManagerHelper.isUserSetupComplete(this)) {
new ActivityEmbeddingRulesController(this).initRules(); new ActivityEmbeddingRulesController(this).initRules();
} else { } else {

View File

@@ -37,9 +37,9 @@ import android.os.UserManager;
import android.util.Log; import android.util.Log;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import androidx.window.embedding.SplitController;
import com.android.settings.Settings.CreateShortcutActivity; import com.android.settings.Settings.CreateShortcutActivity;
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
import com.android.settings.homepage.DeepLinkHomepageActivity; import com.android.settings.homepage.DeepLinkHomepageActivity;
import com.android.settings.search.SearchStateReceiver; import com.android.settings.search.SearchStateReceiver;
import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.utils.ThreadUtils;
@@ -166,7 +166,7 @@ public class SettingsInitialize extends BroadcastReceiver {
DeepLinkHomepageActivity.class); DeepLinkHomepageActivity.class);
final ComponentName searchStateReceiver = new ComponentName(context, final ComponentName searchStateReceiver = new ComponentName(context,
SearchStateReceiver.class); SearchStateReceiver.class);
final int enableState = ActivityEmbeddingUtils.isSettingsSplitEnabled(context) final int enableState = SplitController.getInstance(context).isSplitSupported()
? PackageManager.COMPONENT_ENABLED_STATE_ENABLED ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
: PackageManager.COMPONENT_ENABLED_STATE_DISABLED; : PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
pm.setComponentEnabledSetting(deepLinkHome, enableState, PackageManager.DONT_KILL_APP); pm.setComponentEnabledSetting(deepLinkHome, enableState, PackageManager.DONT_KILL_APP);

View File

@@ -18,7 +18,6 @@ package com.android.settings.activityembedding;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.os.SystemProperties;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.FeatureFlagUtils; import android.util.FeatureFlagUtils;
import android.util.Log; import android.util.Log;
@@ -40,21 +39,6 @@ public class ActivityEmbeddingUtils {
private static final int MIN_SMALLEST_SCREEN_SPLIT_WIDTH_DP = 600; private static final int MIN_SMALLEST_SCREEN_SPLIT_WIDTH_DP = 600;
// The minimum width of the activity to show the regular homepage layout. // The minimum width of the activity to show the regular homepage layout.
private static final float MIN_REGULAR_HOMEPAGE_LAYOUT_WIDTH_DP = 380f; 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"; private static final String TAG = "ActivityEmbeddingUtils";
/** Get the smallest width dp of the window when the split should be used. */ /** Get the smallest width dp of the window when the split should be used. */
@@ -78,35 +62,18 @@ public class ActivityEmbeddingUtils {
return context.getResources().getFloat(R.dimen.config_activity_embed_split_ratio); return context.getResources().getFloat(R.dimen.config_activity_embed_split_ratio);
} }
/** /** Whether to support embedding activity feature. */
* 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>
*/
public static boolean isEmbeddingActivityEnabled(Context context) { public static boolean isEmbeddingActivityEnabled(Context context) {
boolean isFlagEnabled = FeatureFlagUtils.isEnabled(context, boolean isFlagEnabled = FeatureFlagUtils.isEnabled(context,
FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN); FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN);
boolean isSettingsSplitSupported = isSettingsSplitEnabled(context); boolean isSplitSupported = SplitController.getInstance(context).isSplitSupported();
boolean isUserSetupComplete = WizardManagerHelper.isUserSetupComplete(context); boolean isUserSetupComplete = WizardManagerHelper.isUserSetupComplete(context);
Log.d(TAG, "isFlagEnabled = " + isFlagEnabled); Log.d(TAG, "isFlagEnabled = " + isFlagEnabled);
Log.d(TAG, "isSettingsSplitSupported = " + isSettingsSplitSupported); Log.d(TAG, "isSplitSupported = " + isSplitSupported);
Log.d(TAG, "isUserSetupComplete = " + isUserSetupComplete); Log.d(TAG, "isUserSetupComplete = " + isUserSetupComplete);
return isFlagEnabled && isSettingsSplitSupported && isUserSetupComplete; return isFlagEnabled && isSplitSupported && isUserSetupComplete;
} }
/** Whether to show the regular or simplified homepage layout. */ /** Whether to show the regular or simplified homepage layout. */

View File

@@ -58,6 +58,7 @@ import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
import androidx.window.embedding.ActivityEmbeddingController; import androidx.window.embedding.ActivityEmbeddingController;
import androidx.window.embedding.SplitController;
import androidx.window.embedding.SplitRule; import androidx.window.embedding.SplitRule;
import com.android.settings.R; import com.android.settings.R;
@@ -428,7 +429,7 @@ public class SettingsHomepageActivity extends FragmentActivity implements
private boolean shouldLaunchDeepLinkIntentToRight() { private boolean shouldLaunchDeepLinkIntentToRight() {
if (!FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN) if (!FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_SUPPORT_LARGE_SCREEN)
|| !ActivityEmbeddingUtils.isSettingsSplitEnabled(this)) { || !SplitController.getInstance(this).isSplitSupported()) {
return false; return false;
} }