Loading packages/SystemUI/res/layout/docked_stack_divider.xml +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ <com.android.systemui.stackdivider.DividerHandleView style="@style/DockedDividerHandle" android:id="@+id/docked_divider_handle" android:contentDescription="@string/accessibility_divider" android:background="@null"/> </com.android.systemui.stackdivider.DividerView> packages/SystemUI/res/values/ids.xml +6 −0 Original line number Diff line number Diff line Loading @@ -56,5 +56,11 @@ <item type="id" name="image_icon_tag" /> <item type="id" name="contains_transformed_view" /> <item type="id" name="is_clicked_heads_up_tag" /> <!-- Accessibility actions for the docked stack divider --> <item type="id" name="action_move_left" /> <item type="id" name="action_move_right" /> <item type="id" name="action_move_up" /> <item type="id" name="action_move_down" /> </resources> packages/SystemUI/res/values/strings.xml +14 −0 Original line number Diff line number Diff line Loading @@ -1430,4 +1430,18 @@ <item>Don\'t show this icon</item> </string-array> <!-- Accessibility label for the divider that separates the windows in split-screen mode [CHAR LIMIT=NONE] --> <string name="accessibility_divider">Split-screen divider</string> <!-- Accessibility action for moving down the docked stack divider [CHAR LIMIT=NONE] --> <string name="accessibility_action_divider_move_down">Move down</string> <!-- Accessibility action for moving down the docked stack divider [CHAR LIMIT=NONE] --> <string name="accessibility_action_divider_move_up">Move up</string> <!-- Accessibility action for moving down the docked stack divider [CHAR LIMIT=NONE] --> <string name="accessibility_action_divider_move_left">Move left</string> <!-- Accessibility action for moving down the docked stack divider [CHAR LIMIT=NONE] --> <string name="accessibility_action_divider_move_right">Move right</string> </resources> packages/SystemUI/src/com/android/systemui/stackdivider/DividerHandleView.java +2 −2 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.util.Property; import android.widget.ImageButton; import android.view.View; import com.android.systemui.Interpolators; import com.android.systemui.R; Loading @@ -34,7 +34,7 @@ import com.android.systemui.R; /** * View for the handle in the docked stack divider. */ public class DividerHandleView extends ImageButton { public class DividerHandleView extends View { private final static Property<DividerHandleView, Integer> WIDTH_PROPERTY = new Property<DividerHandleView, Integer>(Integer.class, "width") { Loading packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java +40 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.content.res.Configuration; import android.graphics.Rect; import android.graphics.Region.Op; import android.hardware.display.DisplayManager; import android.os.Bundle; import android.util.AttributeSet; import android.view.Display; import android.view.DisplayInfo; Loading @@ -40,6 +41,8 @@ import android.view.ViewTreeObserver.InternalInsetsInfo; import android.view.ViewTreeObserver.OnComputeInternalInsetsListener; import android.view.WindowInsets; import android.view.WindowManager; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; import android.view.animation.Interpolator; import android.view.animation.PathInterpolator; import android.widget.FrameLayout; Loading Loading @@ -132,6 +135,42 @@ public class DividerView extends FrameLayout implements OnTouchListener, private boolean mGrowRecents; private Animator mCurrentAnimator; private final AccessibilityDelegate mHandleDelegate = new AccessibilityDelegate() { @Override public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(host, info); if (isHorizontalDivision()) { info.addAction(new AccessibilityAction(R.id.action_move_up, mContext.getString(R.string.accessibility_action_divider_move_up))); info.addAction(new AccessibilityAction(R.id.action_move_down, mContext.getString(R.string.accessibility_action_divider_move_down))); } else { info.addAction(new AccessibilityAction(R.id.action_move_left, mContext.getString(R.string.accessibility_action_divider_move_left))); info.addAction(new AccessibilityAction(R.id.action_move_right, mContext.getString(R.string.accessibility_action_divider_move_right))); } } @Override public boolean performAccessibilityAction(View host, int action, Bundle args) { if (action == R.id.action_move_up || action == R.id.action_move_down || action == R.id.action_move_left || action == R.id.action_move_right) { int position = getCurrentPosition(); SnapTarget currentTarget = mSnapAlgorithm.calculateSnapTarget( position, 0 /* velocity */); SnapTarget nextTarget = action == R.id.action_move_up || action == R.id.action_move_left ? mSnapAlgorithm.getPreviousTarget(currentTarget) : mSnapAlgorithm.getNextTarget(currentTarget); startDragging(true /* animate */, false /* touching */); stopDragging(getCurrentPosition(), nextTarget, 250, Interpolators.FAST_OUT_SLOW_IN); return true; } return super.performAccessibilityAction(host, action, args); } }; public DividerView(Context context) { super(context); } Loading Loading @@ -171,6 +210,7 @@ public class DividerView extends FrameLayout implements OnTouchListener, mHandle.setPointerIcon(PointerIcon.getSystemIcon(getContext(), landscape ? STYLE_HORIZONTAL_DOUBLE_ARROW : STYLE_VERTICAL_DOUBLE_ARROW)); getViewTreeObserver().addOnComputeInternalInsetsListener(this); mHandle.setAccessibilityDelegate(mHandleDelegate); } @Override Loading Loading
packages/SystemUI/res/layout/docked_stack_divider.xml +1 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ <com.android.systemui.stackdivider.DividerHandleView style="@style/DockedDividerHandle" android:id="@+id/docked_divider_handle" android:contentDescription="@string/accessibility_divider" android:background="@null"/> </com.android.systemui.stackdivider.DividerView>
packages/SystemUI/res/values/ids.xml +6 −0 Original line number Diff line number Diff line Loading @@ -56,5 +56,11 @@ <item type="id" name="image_icon_tag" /> <item type="id" name="contains_transformed_view" /> <item type="id" name="is_clicked_heads_up_tag" /> <!-- Accessibility actions for the docked stack divider --> <item type="id" name="action_move_left" /> <item type="id" name="action_move_right" /> <item type="id" name="action_move_up" /> <item type="id" name="action_move_down" /> </resources>
packages/SystemUI/res/values/strings.xml +14 −0 Original line number Diff line number Diff line Loading @@ -1430,4 +1430,18 @@ <item>Don\'t show this icon</item> </string-array> <!-- Accessibility label for the divider that separates the windows in split-screen mode [CHAR LIMIT=NONE] --> <string name="accessibility_divider">Split-screen divider</string> <!-- Accessibility action for moving down the docked stack divider [CHAR LIMIT=NONE] --> <string name="accessibility_action_divider_move_down">Move down</string> <!-- Accessibility action for moving down the docked stack divider [CHAR LIMIT=NONE] --> <string name="accessibility_action_divider_move_up">Move up</string> <!-- Accessibility action for moving down the docked stack divider [CHAR LIMIT=NONE] --> <string name="accessibility_action_divider_move_left">Move left</string> <!-- Accessibility action for moving down the docked stack divider [CHAR LIMIT=NONE] --> <string name="accessibility_action_divider_move_right">Move right</string> </resources>
packages/SystemUI/src/com/android/systemui/stackdivider/DividerHandleView.java +2 −2 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.util.Property; import android.widget.ImageButton; import android.view.View; import com.android.systemui.Interpolators; import com.android.systemui.R; Loading @@ -34,7 +34,7 @@ import com.android.systemui.R; /** * View for the handle in the docked stack divider. */ public class DividerHandleView extends ImageButton { public class DividerHandleView extends View { private final static Property<DividerHandleView, Integer> WIDTH_PROPERTY = new Property<DividerHandleView, Integer>(Integer.class, "width") { Loading
packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java +40 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.content.res.Configuration; import android.graphics.Rect; import android.graphics.Region.Op; import android.hardware.display.DisplayManager; import android.os.Bundle; import android.util.AttributeSet; import android.view.Display; import android.view.DisplayInfo; Loading @@ -40,6 +41,8 @@ import android.view.ViewTreeObserver.InternalInsetsInfo; import android.view.ViewTreeObserver.OnComputeInternalInsetsListener; import android.view.WindowInsets; import android.view.WindowManager; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; import android.view.animation.Interpolator; import android.view.animation.PathInterpolator; import android.widget.FrameLayout; Loading Loading @@ -132,6 +135,42 @@ public class DividerView extends FrameLayout implements OnTouchListener, private boolean mGrowRecents; private Animator mCurrentAnimator; private final AccessibilityDelegate mHandleDelegate = new AccessibilityDelegate() { @Override public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(host, info); if (isHorizontalDivision()) { info.addAction(new AccessibilityAction(R.id.action_move_up, mContext.getString(R.string.accessibility_action_divider_move_up))); info.addAction(new AccessibilityAction(R.id.action_move_down, mContext.getString(R.string.accessibility_action_divider_move_down))); } else { info.addAction(new AccessibilityAction(R.id.action_move_left, mContext.getString(R.string.accessibility_action_divider_move_left))); info.addAction(new AccessibilityAction(R.id.action_move_right, mContext.getString(R.string.accessibility_action_divider_move_right))); } } @Override public boolean performAccessibilityAction(View host, int action, Bundle args) { if (action == R.id.action_move_up || action == R.id.action_move_down || action == R.id.action_move_left || action == R.id.action_move_right) { int position = getCurrentPosition(); SnapTarget currentTarget = mSnapAlgorithm.calculateSnapTarget( position, 0 /* velocity */); SnapTarget nextTarget = action == R.id.action_move_up || action == R.id.action_move_left ? mSnapAlgorithm.getPreviousTarget(currentTarget) : mSnapAlgorithm.getNextTarget(currentTarget); startDragging(true /* animate */, false /* touching */); stopDragging(getCurrentPosition(), nextTarget, 250, Interpolators.FAST_OUT_SLOW_IN); return true; } return super.performAccessibilityAction(host, action, args); } }; public DividerView(Context context) { super(context); } Loading Loading @@ -171,6 +210,7 @@ public class DividerView extends FrameLayout implements OnTouchListener, mHandle.setPointerIcon(PointerIcon.getSystemIcon(getContext(), landscape ? STYLE_HORIZONTAL_DOUBLE_ARROW : STYLE_VERTICAL_DOUBLE_ARROW)); getViewTreeObserver().addOnComputeInternalInsetsListener(this); mHandle.setAccessibilityDelegate(mHandleDelegate); } @Override Loading