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
This commit is contained in:
Lucas Silva
2022-01-21 22:54:07 +00:00
parent 031104f18e
commit fab78665d8
3 changed files with 15 additions and 3 deletions

View File

@@ -583,4 +583,7 @@
--> -->
</string-array> </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> </resources>

View File

@@ -92,7 +92,7 @@ public class ActivityEmbeddingRulesController {
clearTop, clearTop,
ActivityEmbeddingUtils.getMinCurrentScreenSplitWidthPx(context), ActivityEmbeddingUtils.getMinCurrentScreenSplitWidthPx(context),
ActivityEmbeddingUtils.getMinSmallestScreenSplitWidthPx(context), ActivityEmbeddingUtils.getMinSmallestScreenSplitWidthPx(context),
ActivityEmbeddingUtils.SPLIT_RATIO, ActivityEmbeddingUtils.getSplitRatio(context),
LayoutDirection.LOCALE)); LayoutDirection.LOCALE));
} }
@@ -198,7 +198,7 @@ public class ActivityEmbeddingRulesController {
SplitRule.FINISH_ADJACENT, SplitRule.FINISH_ADJACENT,
ActivityEmbeddingUtils.getMinCurrentScreenSplitWidthPx(mContext), ActivityEmbeddingUtils.getMinCurrentScreenSplitWidthPx(mContext),
ActivityEmbeddingUtils.getMinSmallestScreenSplitWidthPx(mContext), ActivityEmbeddingUtils.getMinSmallestScreenSplitWidthPx(mContext),
ActivityEmbeddingUtils.SPLIT_RATIO, ActivityEmbeddingUtils.getSplitRatio(mContext),
LayoutDirection.LOCALE); LayoutDirection.LOCALE);
mSplitController.registerRule(placeholderRule); mSplitController.registerRule(placeholderRule);

View File

@@ -24,9 +24,10 @@ import android.util.TypedValue;
import androidx.window.embedding.SplitController; import androidx.window.embedding.SplitController;
import com.android.settings.R;
/** An util class collecting all common methods for the embedding activity features. */ /** An util class collecting all common methods for the embedding activity features. */
public class ActivityEmbeddingUtils { 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. // 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; 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 // 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); 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. */ /** Whether to support embedding activity feature. */
public static boolean isEmbeddingActivityEnabled(Context context) { public static boolean isEmbeddingActivityEnabled(Context context) {
final boolean isFlagEnabled = FeatureFlagUtils.isEnabled(context, final boolean isFlagEnabled = FeatureFlagUtils.isEnabled(context,