Skip to content

Commit 2a671ac

Browse files
committed
MiltiWaveView accessibility improvement.
Now hover events behave s motion events in touch exploration mode. The use no longer needs to find the handle and tap + hold to engage. It is enough to move on top of it. Now the handle is engaged, i.e. can be dragged, when the user passes on top of it for both accessibility enabled and disabled. bug:5253968 Change-Id: If70b44cb6db8a38432216b46ecddefb3e2bc3825
1 parent 68901a3 commit 2a671ac

File tree

48 files changed

+38
-102
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+38
-102
lines changed

core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java

Lines changed: 38 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
import android.util.TypedValue;
3636
import android.view.MotionEvent;
3737
import android.view.View;
38-
import android.view.ViewConfiguration;
3938
import android.view.accessibility.AccessibilityEvent;
4039
import android.view.accessibility.AccessibilityManager;
4140

@@ -109,9 +108,6 @@ public interface OnTriggerListener {
109108
private boolean mDragging;
110109
private int mNewTargetResources;
111110

112-
private boolean mWaveHovered = false;
113-
private long mLastHoverExitTimeMillis = 0;
114-
115111
private AnimatorListener mResetListener = new AnimatorListenerAdapter() {
116112
public void onAnimationEnd(Animator animator) {
117113
switchToState(STATE_IDLE, mWaveCenterX, mWaveCenterY);
@@ -660,66 +656,21 @@ private void moveHandleTo(float x, float y, boolean animate) {
660656
}
661657

662658
private void handleDown(MotionEvent event) {
663-
final float x = event.getX();
664-
final float y = event.getY();
665-
final float dx = x - mWaveCenterX;
666-
final float dy = y - mWaveCenterY;
667-
if (dist2(dx,dy) <= getScaledTapRadiusSquared()) {
668-
if (DEBUG) Log.v(TAG, "** Handle HIT");
669-
switchToState(STATE_FIRST_TOUCH, x, y);
670-
moveHandleTo(x, y, false);
671-
mDragging = true;
672-
} else {
659+
if (!trySwitchToFirstTouchState(event)) {
673660
mDragging = false;
674661
stopTargetAnimation();
675662
ping();
676663
}
677664
}
678665

679-
@Override
680-
public boolean onHoverEvent(MotionEvent event) {
681-
if (AccessibilityManager.getInstance(mContext).isTouchExplorationEnabled()) {
682-
final int action = event.getAction();
683-
switch (action) {
684-
case MotionEvent.ACTION_HOVER_ENTER:
685-
case MotionEvent.ACTION_HOVER_MOVE:
686-
final float dx = event.getX() - mWaveCenterX;
687-
final float dy = event.getY() - mWaveCenterY;
688-
if (dist2(dx,dy) <= getScaledTapRadiusSquared()) {
689-
if (!mWaveHovered) {
690-
mWaveHovered = true;
691-
final long timeSinceLastHoverExitMillis =
692-
event.getEventTime() - mLastHoverExitTimeMillis;
693-
final long recurringEventsInterval =
694-
ViewConfiguration.getSendRecurringAccessibilityEventsInterval();
695-
if (timeSinceLastHoverExitMillis > recurringEventsInterval) {
696-
String text =
697-
mContext.getString(R.string.content_description_sliding_handle);
698-
announceText(text);
699-
}
700-
}
701-
} else {
702-
mWaveHovered = false;
703-
}
704-
break;
705-
case MotionEvent.ACTION_HOVER_EXIT:
706-
mLastHoverExitTimeMillis = event.getEventTime();
707-
mWaveHovered = false;
708-
break;
709-
default:
710-
mWaveHovered = false;
711-
}
712-
}
713-
return super.onHoverEvent(event);
714-
}
715-
716666
private void handleUp(MotionEvent event) {
717667
if (DEBUG && mDragging) Log.v(TAG, "** Handle RELEASE");
718668
switchToState(STATE_FINISH, event.getX(), event.getY());
719669
}
720670

721671
private void handleMove(MotionEvent event) {
722672
if (!mDragging) {
673+
trySwitchToFirstTouchState(event);
723674
return;
724675
}
725676

@@ -792,6 +743,27 @@ private void handleMove(MotionEvent event) {
792743
mActiveTarget = activeTarget;
793744
}
794745

746+
@Override
747+
public boolean onHoverEvent(MotionEvent event) {
748+
if (AccessibilityManager.getInstance(mContext).isTouchExplorationEnabled()) {
749+
final int action = event.getAction();
750+
switch (action) {
751+
case MotionEvent.ACTION_HOVER_ENTER:
752+
event.setAction(MotionEvent.ACTION_DOWN);
753+
break;
754+
case MotionEvent.ACTION_HOVER_MOVE:
755+
event.setAction(MotionEvent.ACTION_MOVE);
756+
break;
757+
case MotionEvent.ACTION_HOVER_EXIT:
758+
event.setAction(MotionEvent.ACTION_UP);
759+
break;
760+
}
761+
onTouchEvent(event);
762+
event.setAction(action);
763+
}
764+
return super.onHoverEvent(event);
765+
}
766+
795767
/**
796768
* Sets the current grabbed state, and dispatches a grabbed state change
797769
* event to our listener.
@@ -808,6 +780,21 @@ private void setGrabbedState(int newState) {
808780
}
809781
}
810782

783+
private boolean trySwitchToFirstTouchState(MotionEvent event) {
784+
final float x = event.getX();
785+
final float y = event.getY();
786+
final float dx = x - mWaveCenterX;
787+
final float dy = y - mWaveCenterY;
788+
if (dist2(dx,dy) <= getScaledTapRadiusSquared()) {
789+
if (DEBUG) Log.v(TAG, "** Handle HIT");
790+
switchToState(STATE_FIRST_TOUCH, x, y);
791+
moveHandleTo(x, y, false);
792+
mDragging = true;
793+
return true;
794+
}
795+
return false;
796+
}
797+
811798
private void performInitialLayout(float centerX, float centerY) {
812799
if (mOuterRadius == 0.0f) {
813800
mOuterRadius = 0.5f*(float) Math.sqrt(dist2(centerX, centerY));

core/res/res/values-af/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1467,7 +1467,6 @@
14671467
<string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Modus verander"</string>
14681468
<string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string>
14691469
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Invoersleutel"</string>
1470-
<string name="content_description_sliding_handle" msgid="7311938669217173870">"Glyhandvatsel. Tik en hou."</string>
14711470
<string name="description_direction_up" msgid="1983114130441878529">"Op na <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
14721471
<string name="description_direction_down" msgid="4294993639091088240">"Af vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
14731472
<string name="description_direction_left" msgid="6814008463839915747">"Links vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>

core/res/res/values-am/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1467,7 +1467,6 @@
14671467
<string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"ሞድ ለውጥ"</string>
14681468
<string name="keyboardview_keycode_shift" msgid="2270748814315147690">"ቀይር"</string>
14691469
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"አስገባ"</string>
1470-
<string name="content_description_sliding_handle" msgid="7311938669217173870">"Sliding handle. Tap and hold."</string>
14711470
<string name="description_direction_up" msgid="1983114130441878529">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደላይ።"</string>
14721471
<string name="description_direction_down" msgid="4294993639091088240">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደታች።"</string>
14731472
<string name="description_direction_left" msgid="6814008463839915747">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደግራ።"</string>

core/res/res/values-ar/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,6 @@
11411141
<string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"تغيير الوضع"</string>
11421142
<string name="keyboardview_keycode_shift" msgid="2270748814315147690">"العالي"</string>
11431143
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
1144-
<string name="content_description_sliding_handle" msgid="7311938669217173870">"مقبض التمرير. انقر وامسك."</string>
11451144
<string name="description_direction_up" msgid="1983114130441878529">"أعلى إلى <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
11461145
<string name="description_direction_down" msgid="4294993639091088240">"أسفل إلى <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
11471146
<string name="description_direction_left" msgid="6814008463839915747">"يسارًا إلى <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>

core/res/res/values-bg/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1158,7 +1158,6 @@
11581158
<string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Промяна на режима"</string>
11591159
<string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string>
11601160
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
1161-
<string name="content_description_sliding_handle" msgid="7311938669217173870">"Плъзгаща се дръжка. Докоснете и задръжте."</string>
11621161
<!-- no translation found for description_direction_up (1983114130441878529) -->
11631162
<skip />
11641163
<!-- no translation found for description_direction_down (4294993639091088240) -->

core/res/res/values-ca/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1139,7 +1139,6 @@
11391139
<string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Canvi de mode"</string>
11401140
<string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Maj"</string>
11411141
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Retorn"</string>
1142-
<string name="content_description_sliding_handle" msgid="7311938669217173870">"Llisca el dit. Mantén premut."</string>
11431142
<string name="description_direction_up" msgid="1983114130441878529">"Cap amunt per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
11441143
<string name="description_direction_down" msgid="4294993639091088240">"Cap avall per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
11451144
<string name="description_direction_left" msgid="6814008463839915747">"Cap a l\'esquerra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>

core/res/res/values-cs/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,6 @@
11411141
<string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Změna režimu"</string>
11421142
<string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string>
11431143
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
1144-
<string name="content_description_sliding_handle" msgid="7311938669217173870">"Posuvník. Klepněte a podržte."</string>
11451144
<string name="description_direction_up" msgid="1983114130441878529">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> – nahoru."</string>
11461145
<string name="description_direction_down" msgid="4294993639091088240">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> – dolů."</string>
11471146
<string name="description_direction_left" msgid="6814008463839915747">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> – vlevo."</string>

core/res/res/values-da/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,6 @@
11411141
<string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Ændring af tilstand"</string>
11421142
<string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string>
11431143
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Angiv"</string>
1144-
<string name="content_description_sliding_handle" msgid="7311938669217173870">"Glidende håndtag. Tryk og hold nede."</string>
11451144
<string name="description_direction_up" msgid="1983114130441878529">"Op for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
11461145
<string name="description_direction_down" msgid="4294993639091088240">"Ned for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
11471146
<string name="description_direction_left" msgid="6814008463839915747">"Til venstre for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>

core/res/res/values-de/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,6 @@
11411141
<string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Modusänderung"</string>
11421142
<string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Umschalttaste"</string>
11431143
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Eingabetaste"</string>
1144-
<string name="content_description_sliding_handle" msgid="7311938669217173870">"Schieberegler: Tippen und halten"</string>
11451144
<string name="description_direction_up" msgid="1983114130441878529">"Für <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach oben"</string>
11461145
<string name="description_direction_down" msgid="4294993639091088240">"Für <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach unten"</string>
11471146
<string name="description_direction_left" msgid="6814008463839915747">"Für <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach links"</string>

core/res/res/values-el/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,6 @@
11411141
<string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Αλλαγή τρόπου"</string>
11421142
<string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string>
11431143
<string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Enter"</string>
1144-
<string name="content_description_sliding_handle" msgid="7311938669217173870">"Στοιχείο χειρισμού με δυνατότητα ολίσθησης. Πατήστε παρατεταμένα."</string>
11451144
<string name="description_direction_up" msgid="1983114130441878529">"Κύλιση πάνω <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
11461145
<string name="description_direction_down" msgid="4294993639091088240">"Κύλιση κάτω για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
11471146
<string name="description_direction_left" msgid="6814008463839915747">"Κύλιση αριστερά για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>

0 commit comments

Comments
 (0)