Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 57094363 authored by David Gutierrez's avatar David Gutierrez Committed by Android (Google) Code Review
Browse files

Merge "Revert "Disable Settings large-screen optimization"" into udc-dev

parents 21733fa1 77f76267
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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 {
+2 −2
Original line number Diff line number Diff line
@@ -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);
+4 −37
Original line number Diff line number Diff line
@@ -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. */
+2 −1
Original line number Diff line number Diff line
@@ -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;
        }