From 10864b0fcbe5e4565bebf0690fc0c58153b4bea7 Mon Sep 17 00:00:00 2001 From: Tianran Li Date: Wed, 22 Mar 2017 20:38:19 +0900 Subject: [PATCH] TimePickerDialog OTG keyboard entry discarded A user can manually enter time value using a keyboard. NumberPicker then evaluates its value when focus is changed. Currently when the dialog is closed by pressing OK, the value from the focused NumberPicker is not taken into consideration. To ensure retrieval of the correct value when closing the dialog, the focus must be removed from the NumberPicker as is done in DatePickerDialog. Bug: 65664546 Test: Manual 1. Connect physical keyboard via OTG connector 2. Enter Settings and set time manually 3. Select keyboard entry 4. Change time and tap OK The entered time should be applied Change-Id: I8a77cb3aaa54acb228ec1ce0e9385e2eb5e88e9b --- core/java/android/app/TimePickerDialog.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/java/android/app/TimePickerDialog.java b/core/java/android/app/TimePickerDialog.java index 0f006b6618b37..8686944baeaaa 100644 --- a/core/java/android/app/TimePickerDialog.java +++ b/core/java/android/app/TimePickerDialog.java @@ -152,6 +152,9 @@ public class TimePickerDialog extends AlertDialog implements OnClickListener, public void onClick(View view) { if (mTimePicker.validateInput()) { TimePickerDialog.this.onClick(TimePickerDialog.this, BUTTON_POSITIVE); + // Clearing focus forces the dialog to commit any pending + // changes, e.g. typed text in a NumberPicker. + mTimePicker.clearFocus(); dismiss(); } }