Merge "Revert "Disable Settings large-screen optimization"" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
570943637c
@@ -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;
|
||||
@@ -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 {
|
||||
|
@@ -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;
|
||||
@@ -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);
|
||||
|
@@ -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;
|
||||
@@ -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. */
|
||||
@@ -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. */
|
||||
|
@@ -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;
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user