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

Commit fab78665 authored by Lucas Silva's avatar Lucas Silva
Browse files

Make the Settings split ratio configurable.

This new config will be overlayed in titan devices to update the split
ratio to 30/70

Bug: 215707431
Test: locally on device
Change-Id: I7bd193d7516939f5c4d434cd3333456c20e53a91
parent 031104f1
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -583,4 +583,7 @@
        -->
    </string-array>

    <!-- The ratio to use when using the two-pane settings layout -->
    <item name="config_activity_embed_split_ratio" format="float" type="dimen">0.5</item>

</resources>
+2 −2
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ public class ActivityEmbeddingRulesController {
                clearTop,
                ActivityEmbeddingUtils.getMinCurrentScreenSplitWidthPx(context),
                ActivityEmbeddingUtils.getMinSmallestScreenSplitWidthPx(context),
                ActivityEmbeddingUtils.SPLIT_RATIO,
                ActivityEmbeddingUtils.getSplitRatio(context),
                LayoutDirection.LOCALE));
    }

@@ -198,7 +198,7 @@ public class ActivityEmbeddingRulesController {
                SplitRule.FINISH_ADJACENT,
                ActivityEmbeddingUtils.getMinCurrentScreenSplitWidthPx(mContext),
                ActivityEmbeddingUtils.getMinSmallestScreenSplitWidthPx(mContext),
                ActivityEmbeddingUtils.SPLIT_RATIO,
                ActivityEmbeddingUtils.getSplitRatio(mContext),
                LayoutDirection.LOCALE);

        mSplitController.registerRule(placeholderRule);
+10 −1
Original line number Diff line number Diff line
@@ -24,9 +24,10 @@ import android.util.TypedValue;

import androidx.window.embedding.SplitController;

import com.android.settings.R;

/** An util class collecting all common methods for the embedding activity features. */
public class ActivityEmbeddingUtils {
    public static final float SPLIT_RATIO = 0.5f;
    // The smallest value of current width of the window when the split should be used.
    private static final float MIN_CURRENT_SCREEN_SPLIT_WIDTH_DP = 720f;
    // The smallest value of the smallest-width (sw) of the window in any rotation when
@@ -51,6 +52,14 @@ public class ActivityEmbeddingUtils {
                TypedValue.COMPLEX_UNIT_DIP, MIN_SMALLEST_SCREEN_SPLIT_WIDTH_DP, dm);
    }

    /**
     * Get the ratio to use when splitting windows. This should be a float which describes
     * the percentage of the screen which the first window should occupy.
     */
    public static float getSplitRatio(Context context) {
        return context.getResources().getFloat(R.dimen.config_activity_embed_split_ratio);
    }

    /** Whether to support embedding activity feature. */
    public static boolean isEmbeddingActivityEnabled(Context context) {
        final boolean isFlagEnabled = FeatureFlagUtils.isEnabled(context,