Update the snap targets in minimized mode to reflect the correct targets

am: 6317df6e1e

Change-Id: I082df8125b71e7e27d1a8cf953cf43d18909cd2f
This commit is contained in:
Matthew Ng
2018-05-09 11:18:08 -07:00
committed by android-build-merger
2 changed files with 21 additions and 6 deletions

View File

@@ -370,6 +370,14 @@ public class DividerSnapAlgorithm {
return snapTarget;
}
/**
* @return whether or not there are more than 1 split targets that do not include the two
* dismiss targets, used in deciding to display the middle target for accessibility
*/
public boolean showMiddleSplitTargetForAccessibility() {
return (mTargets.size() - 2) > 1;
}
public boolean isFirstSplitTargetAvailable() {
return mFirstSplitTarget != mMiddleTarget;
}

View File

@@ -180,16 +180,20 @@ public class DividerView extends FrameLayout implements OnTouchListener,
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(host, info);
final DividerSnapAlgorithm snapAlgorithm = getSnapAlgorithm();
if (isHorizontalDivision()) {
info.addAction(new AccessibilityAction(R.id.action_move_tl_full,
mContext.getString(R.string.accessibility_action_divider_top_full)));
if (mSnapAlgorithm.isFirstSplitTargetAvailable()) {
if (snapAlgorithm.isFirstSplitTargetAvailable()) {
info.addAction(new AccessibilityAction(R.id.action_move_tl_70,
mContext.getString(R.string.accessibility_action_divider_top_70)));
}
info.addAction(new AccessibilityAction(R.id.action_move_tl_50,
if (snapAlgorithm.showMiddleSplitTargetForAccessibility()) {
// Only show the middle target if there are more than 1 split target
info.addAction(new AccessibilityAction(R.id.action_move_tl_50,
mContext.getString(R.string.accessibility_action_divider_top_50)));
if (mSnapAlgorithm.isLastSplitTargetAvailable()) {
}
if (snapAlgorithm.isLastSplitTargetAvailable()) {
info.addAction(new AccessibilityAction(R.id.action_move_tl_30,
mContext.getString(R.string.accessibility_action_divider_top_30)));
}
@@ -198,13 +202,16 @@ public class DividerView extends FrameLayout implements OnTouchListener,
} else {
info.addAction(new AccessibilityAction(R.id.action_move_tl_full,
mContext.getString(R.string.accessibility_action_divider_left_full)));
if (mSnapAlgorithm.isFirstSplitTargetAvailable()) {
if (snapAlgorithm.isFirstSplitTargetAvailable()) {
info.addAction(new AccessibilityAction(R.id.action_move_tl_70,
mContext.getString(R.string.accessibility_action_divider_left_70)));
}
info.addAction(new AccessibilityAction(R.id.action_move_tl_50,
if (snapAlgorithm.showMiddleSplitTargetForAccessibility()) {
// Only show the middle target if there are more than 1 split target
info.addAction(new AccessibilityAction(R.id.action_move_tl_50,
mContext.getString(R.string.accessibility_action_divider_left_50)));
if (mSnapAlgorithm.isLastSplitTargetAvailable()) {
}
if (snapAlgorithm.isLastSplitTargetAvailable()) {
info.addAction(new AccessibilityAction(R.id.action_move_tl_30,
mContext.getString(R.string.accessibility_action_divider_left_30)));
}