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

Commit fa551051 authored by Fabrice Di Meglio's avatar Fabrice Di Meglio Committed by Android (Google) Code Review
Browse files

Merge "Fix new TimePicker accessibility"

parents e143e58c 014b8cfc
Loading
Loading
Loading
Loading
+25 −4
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
import android.text.format.DateFormat;
import android.text.format.DateUtils;
import android.util.AttributeSet;
import android.util.Log;
import android.util.TypedValue;
@@ -44,6 +45,7 @@ import com.android.internal.R;
import java.text.DateFormatSymbols;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Locale;

/**
 * A view for selecting the time of day, in either 24 hour or AM/PM mode.
@@ -120,6 +122,8 @@ class TimePickerDelegate extends TimePicker.AbstractTimePickerDelegate implement
    private String mMinutePickerDescription;
    private String mSelectMinutes;

    private Calendar mTempCalendar;

    public TimePickerDelegate(TimePicker delegator, Context context, AttributeSet attrs,
                              int defStyleAttr, int defStyleRes) {
        super(delegator, context);
@@ -505,24 +509,41 @@ class TimePickerDelegate extends TimePicker.AbstractTimePickerDelegate implement
        }
    }

    @Override
    public void setCurrentLocale(Locale locale) {
        super.setCurrentLocale(locale);
        mTempCalendar = Calendar.getInstance(locale);
    }

    @Override
    public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
        return mRadialTimePickerView.dispatchPopulateAccessibilityEvent(event);
        onPopulateAccessibilityEvent(event);
        return true;
    }

    @Override
    public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
        mRadialTimePickerView.onPopulateAccessibilityEvent(event);
        int flags = DateUtils.FORMAT_SHOW_TIME;
        if (mIs24HourView) {
            flags |= DateUtils.FORMAT_24HOUR;
        } else {
            flags |= DateUtils.FORMAT_12HOUR;
        }
        mTempCalendar.set(Calendar.HOUR_OF_DAY, getCurrentHour());
        mTempCalendar.set(Calendar.MINUTE, getCurrentMinute());
        String selectedDate = DateUtils.formatDateTime(mContext,
                mTempCalendar.getTimeInMillis(), flags);
        event.getText().add(selectedDate);
    }

    @Override
    public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
        mRadialTimePickerView.onInitializeAccessibilityEvent(event);
        event.setClassName(TimePicker.class.getName());
    }

    @Override
    public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
        mRadialTimePickerView.onInitializeAccessibilityNodeInfo(info);
        info.setClassName(TimePicker.class.getName());
    }

    /**
+1 −2
Original line number Diff line number Diff line
@@ -54,7 +54,6 @@
            android:paddingRight="@dimen/timepicker_ampm_left_padding"
            android:layout_toRightOf="@+id/separator"
            android:layout_alignBaseline="@+id/separator"
            android:textAppearance="?android:attr/timePickerHeaderAmPmLabelTextAppearance"
            android:importantForAccessibility="no" />
            android:textAppearance="?android:attr/timePickerHeaderAmPmLabelTextAppearance" />

</RelativeLayout>