Skip to content

Commit fd2e9bc

Browse files
paulfthomashunterstich
authored andcommitted
[DatePicker] Prevent keyboard from automatically showing with TalkBack
PiperOrigin-RevId: 729239261
1 parent d560705 commit fd2e9bc

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

lib/java/com/google/android/material/datepicker/DateSelector.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import android.view.LayoutInflater;
2424
import android.view.View;
2525
import android.view.ViewGroup;
26+
import android.view.accessibility.AccessibilityManager;
2627
import android.widget.AdapterView;
2728
import android.widget.EditText;
2829
import androidx.annotation.NonNull;
@@ -154,4 +155,10 @@ static void showKeyboardWithAutoHideBehavior(@NonNull EditText... editTexts) {
154155
viewToFocus, /* useWindowInsetsController= */ false),
155156
100);
156157
}
158+
159+
static boolean isTouchExplorationEnabled(@NonNull Context context) {
160+
AccessibilityManager accessibilityManager =
161+
(AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE);
162+
return accessibilityManager != null && accessibilityManager.isTouchExplorationEnabled();
163+
}
157164
}

lib/java/com/google/android/material/datepicker/RangeDateSelector.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,10 @@ void onInvalidDate() {
281281
}
282282
});
283283

284-
DateSelector.showKeyboardWithAutoHideBehavior(startEditText, endEditText);
284+
// only show keyboard if touch exploration is disabled
285+
if (!DateSelector.isTouchExplorationEnabled(root.getContext())) {
286+
DateSelector.showKeyboardWithAutoHideBehavior(startEditText, endEditText);
287+
}
285288

286289
return root;
287290
}

lib/java/com/google/android/material/datepicker/SingleDateSelector.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,10 @@ void onInvalidDate() {
158158
}
159159
});
160160

161-
DateSelector.showKeyboardWithAutoHideBehavior(dateEditText);
161+
// only show keyboard if touch exploration is disabled
162+
if (!DateSelector.isTouchExplorationEnabled(root.getContext())) {
163+
DateSelector.showKeyboardWithAutoHideBehavior(dateEditText);
164+
}
162165

163166
return root;
164167
}

0 commit comments

Comments
 (0)