Loading core/res/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -6973,6 +6973,9 @@ <!-- Whether to enable left-right split in portrait on this device --> <bool name="config_leftRightSplitInPortrait">false</bool> <!-- Whether to allow split screen ratios to flexibly calculate based on available space --> <bool name="config_flexibleSplitRatios">false</bool> <!-- Whether scroll haptic feedback is enabled for rotary encoder scrolls on {@link MotionEvent#AXIS_SCROLL} generated by {@link InputDevice#SOURCE_ROTARY_ENCODER} devices. --> Loading core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -408,6 +408,7 @@ <java-symbol type="bool" name="config_supportsSplitScreenMultiWindow" /> <java-symbol type="bool" name="config_supportsMultiDisplay" /> <java-symbol type="bool" name="config_leftRightSplitInPortrait" /> <java-symbol type="bool" name="config_flexibleSplitRatios" /> <java-symbol type="integer" name="config_supportsNonResizableMultiWindow" /> <java-symbol type="integer" name="config_respectsActivityMinWidthHeightMultiWindow" /> <java-symbol type="dimen" name="config_minPercentageMultiWindowSupportHeight" /> Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/split/DividerSnapAlgorithm.java +7 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,8 @@ public class DividerSnapAlgorithm { private final int mMinimalSizeResizableTask; private final int mTaskHeightInMinimizedMode; private final float mFixedRatio; /** Allows split ratios to calculated dynamically instead of using {@link #mFixedRatio}. */ private final boolean mAllowFlexibleSplitRatios; private boolean mIsHorizontalDivision; /** The first target which is still splitting the screen */ Loading Loading @@ -144,6 +146,8 @@ public class DividerSnapAlgorithm { com.android.internal.R.fraction.docked_stack_divider_fixed_ratio, 1, 1); mMinimalSizeResizableTask = res.getDimensionPixelSize( com.android.internal.R.dimen.default_minimal_size_resizable_task); mAllowFlexibleSplitRatios = res.getBoolean( com.android.internal.R.bool.config_flexibleSplitRatios); mTaskHeightInMinimizedMode = isHomeResizable ? res.getDimensionPixelSize( com.android.internal.R.dimen.task_height_of_minimized_mode) : 0; calculateTargets(isHorizontalDivision, dockSide); Loading Loading @@ -349,6 +353,9 @@ public class DividerSnapAlgorithm { ? mDisplayHeight - mInsets.bottom : mDisplayWidth - mInsets.right; int size = (int) (mFixedRatio * (end - start)) - mDividerSize / 2; if (mAllowFlexibleSplitRatios) { size = Math.max(size, mMinimalSizeResizableTask); } int topPosition = start + size; int bottomPosition = end - size - mDividerSize; addNonDismissingTargets(isHorizontalDivision, topPosition, bottomPosition, dividerMax); Loading Loading
core/res/res/values/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -6973,6 +6973,9 @@ <!-- Whether to enable left-right split in portrait on this device --> <bool name="config_leftRightSplitInPortrait">false</bool> <!-- Whether to allow split screen ratios to flexibly calculate based on available space --> <bool name="config_flexibleSplitRatios">false</bool> <!-- Whether scroll haptic feedback is enabled for rotary encoder scrolls on {@link MotionEvent#AXIS_SCROLL} generated by {@link InputDevice#SOURCE_ROTARY_ENCODER} devices. --> Loading
core/res/res/values/symbols.xml +1 −0 Original line number Diff line number Diff line Loading @@ -408,6 +408,7 @@ <java-symbol type="bool" name="config_supportsSplitScreenMultiWindow" /> <java-symbol type="bool" name="config_supportsMultiDisplay" /> <java-symbol type="bool" name="config_leftRightSplitInPortrait" /> <java-symbol type="bool" name="config_flexibleSplitRatios" /> <java-symbol type="integer" name="config_supportsNonResizableMultiWindow" /> <java-symbol type="integer" name="config_respectsActivityMinWidthHeightMultiWindow" /> <java-symbol type="dimen" name="config_minPercentageMultiWindowSupportHeight" /> Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/split/DividerSnapAlgorithm.java +7 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,8 @@ public class DividerSnapAlgorithm { private final int mMinimalSizeResizableTask; private final int mTaskHeightInMinimizedMode; private final float mFixedRatio; /** Allows split ratios to calculated dynamically instead of using {@link #mFixedRatio}. */ private final boolean mAllowFlexibleSplitRatios; private boolean mIsHorizontalDivision; /** The first target which is still splitting the screen */ Loading Loading @@ -144,6 +146,8 @@ public class DividerSnapAlgorithm { com.android.internal.R.fraction.docked_stack_divider_fixed_ratio, 1, 1); mMinimalSizeResizableTask = res.getDimensionPixelSize( com.android.internal.R.dimen.default_minimal_size_resizable_task); mAllowFlexibleSplitRatios = res.getBoolean( com.android.internal.R.bool.config_flexibleSplitRatios); mTaskHeightInMinimizedMode = isHomeResizable ? res.getDimensionPixelSize( com.android.internal.R.dimen.task_height_of_minimized_mode) : 0; calculateTargets(isHorizontalDivision, dockSide); Loading Loading @@ -349,6 +353,9 @@ public class DividerSnapAlgorithm { ? mDisplayHeight - mInsets.bottom : mDisplayWidth - mInsets.right; int size = (int) (mFixedRatio * (end - start)) - mDividerSize / 2; if (mAllowFlexibleSplitRatios) { size = Math.max(size, mMinimalSizeResizableTask); } int topPosition = start + size; int bottomPosition = end - size - mDividerSize; addNonDismissingTargets(isHorizontalDivision, topPosition, bottomPosition, dividerMax); Loading