Do not send onTimeChanged updates if nothing actually changed.
Bug: 29314380 Test: android.widget.cts.TimePickerTest#testSetOnTimeChangedListener now passes. Change-Id: I4df96cd306967027ea76e2c256b50ca687eae9ba
This commit is contained in:
@@ -813,8 +813,12 @@ class TimePickerClockDelegate extends TimePicker.AbstractTimePickerDelegate {
|
||||
private final OnValueSelectedListener mOnValueSelectedListener = new OnValueSelectedListener() {
|
||||
@Override
|
||||
public void onValueSelected(int pickerType, int newValue, boolean autoAdvance) {
|
||||
boolean valueChanged = false;
|
||||
switch (pickerType) {
|
||||
case RadialTimePickerView.HOURS:
|
||||
if (getHour() != newValue) {
|
||||
valueChanged = true;
|
||||
}
|
||||
final boolean isTransition = mAllowAutoAdvance && autoAdvance;
|
||||
setHourInternal(newValue, FROM_RADIAL_PICKER, !isTransition);
|
||||
if (isTransition) {
|
||||
@@ -825,11 +829,14 @@ class TimePickerClockDelegate extends TimePicker.AbstractTimePickerDelegate {
|
||||
}
|
||||
break;
|
||||
case RadialTimePickerView.MINUTES:
|
||||
if (getMinute() != newValue) {
|
||||
valueChanged = true;
|
||||
}
|
||||
setMinuteInternal(newValue, FROM_RADIAL_PICKER);
|
||||
break;
|
||||
}
|
||||
|
||||
if (mOnTimeChangedListener != null) {
|
||||
if (mOnTimeChangedListener != null && valueChanged) {
|
||||
mOnTimeChangedListener.onTimeChanged(mDelegator, getHour(), getMinute());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user