Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2f16bc8a authored by Aurimas Liutikas's avatar Aurimas Liutikas
Browse files

Do not send onTimeChanged updates if nothing actually changed.

Bug: 29314380
Test: android.widget.cts.TimePickerTest#testSetOnTimeChangedListener now passes.
Change-Id: I4df96cd306967027ea76e2c256b50ca687eae9ba
parent c515d6b7
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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());
            }
        }