Skip to content

Commit 5441957

Browse files
committed
[Snackbar] Updated the snackbar with action not auto-dismiss when a11y is enabled (talkback, switch access, voice access).
PiperOrigin-RevId: 686357273
1 parent b11064c commit 5441957

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

lib/java/com/google/android/material/snackbar/Snackbar.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,16 @@ public class Snackbar extends BaseTransientBottomBar<Snackbar> {
8888
public static class Callback extends BaseCallback<Snackbar> {
8989
/** Indicates that the Snackbar was dismissed via a swipe. */
9090
public static final int DISMISS_EVENT_SWIPE = BaseCallback.DISMISS_EVENT_SWIPE;
91+
9192
/** Indicates that the Snackbar was dismissed via an action click. */
9293
public static final int DISMISS_EVENT_ACTION = BaseCallback.DISMISS_EVENT_ACTION;
94+
9395
/** Indicates that the Snackbar was dismissed via a timeout. */
9496
public static final int DISMISS_EVENT_TIMEOUT = BaseCallback.DISMISS_EVENT_TIMEOUT;
97+
9598
/** Indicates that the Snackbar was dismissed via a call to {@link #dismiss()}. */
9699
public static final int DISMISS_EVENT_MANUAL = BaseCallback.DISMISS_EVENT_MANUAL;
100+
97101
/** Indicates that the Snackbar was dismissed from a new Snackbar being shown. */
98102
public static final int DISMISS_EVENT_CONSECUTIVE = BaseCallback.DISMISS_EVENT_CONSECUTIVE;
99103

@@ -376,10 +380,8 @@ public int getDuration() {
376380
userSetDuration, controlsFlag | FLAG_CONTENT_ICONS | FLAG_CONTENT_TEXT);
377381
}
378382

379-
// If touch exploration is enabled override duration to give people chance to interact.
380-
return hasAction && accessibilityManager.isTouchExplorationEnabled()
381-
? LENGTH_INDEFINITE
382-
: userSetDuration;
383+
// If a11y technologies are enabled override duration to give people chance to interact.
384+
return hasAction && accessibilityManager.isEnabled() ? LENGTH_INDEFINITE : userSetDuration;
383385
}
384386

385387
/**

lib/javatests/com/google/android/material/snackbar/SnackbarTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ public void createActivityAndShadow() {
5656
}
5757

5858
@Test
59-
public void testGetDuration_whenTouchExplorationEnabled_isIndefinite() {
60-
accessibilityManager.setTouchExplorationEnabled(true);
59+
public void testGetDuration_whenA11yEnabled_isIndefinite() {
60+
accessibilityManager.setEnabled(true);
6161

6262
CoordinatorLayout view = new CoordinatorLayout(activity);
6363
snackbar = Snackbar.make(view, "Test text", Snackbar.LENGTH_LONG).setAction("STUFF!",
@@ -70,8 +70,8 @@ public void onClick(View v) {}
7070
}
7171

7272
@Test
73-
public void testGetDuration_whenTouchExplorationDisabled_isProvidedValue() {
74-
accessibilityManager.setTouchExplorationEnabled(false);
73+
public void testGetDuration_whenA11yDisabled_isProvidedValue() {
74+
accessibilityManager.setEnabled(false);
7575

7676
CoordinatorLayout view = new CoordinatorLayout(activity);
7777
snackbar = Snackbar.make(view, "Test text", 300).setAction("STUFF!",

0 commit comments

Comments
 (0)