Index: ui/android/java/src/org/chromium/ui/picker/MultiFieldTimePickerDialog.java |
diff --git a/ui/android/java/src/org/chromium/ui/picker/MultiFieldTimePickerDialog.java b/ui/android/java/src/org/chromium/ui/picker/MultiFieldTimePickerDialog.java |
index f8647ec24d2d9e0811b1cea542154f6bd8bbf8fb..43cee0e852e09c0891fb5020e72441fabe713cb1 100644 |
--- a/ui/android/java/src/org/chromium/ui/picker/MultiFieldTimePickerDialog.java |
+++ b/ui/android/java/src/org/chromium/ui/picker/MultiFieldTimePickerDialog.java |
@@ -247,12 +247,12 @@ public class MultiFieldTimePickerDialog |
} |
private void notifyDateSet() { |
- int hour = mHourSpinner.getValue(); |
- int minute = mMinuteSpinner.getValue(); |
- int sec = mSecSpinner.getValue(); |
- int milli = mMilliSpinner.getValue() * mStep + mBaseMilli; |
+ int hour = getPickerValue(mHourSpinner); |
+ int minute = getPickerValue(mMinuteSpinner); |
+ int sec = getPickerValue(mSecSpinner); |
+ int milli = getPickerValue(mMilliSpinner) * mStep + mBaseMilli; |
if (!mIs24hourFormat) { |
- int ampm = mAmPmSpinner.getValue(); |
+ int ampm = getPickerValue(mAmPmSpinner); |
if (hour == 12) { |
hour = 0; |
} |
@@ -261,6 +261,15 @@ public class MultiFieldTimePickerDialog |
mListener.onTimeSet(hour, minute, sec, milli); |
} |
+ /** |
+ * Clear focus before retrieving so that values inserted with |
+ * keyboard are taken into account. |
+ */ |
+ private int getPickerValue(NumberPicker picker) { |
+ picker.clearFocus(); |
+ return picker.getValue(); |
+ } |
+ |
private static class NumberFormatter implements NumberPicker.Formatter { |
private final String mFormat; |