diff options
author | Alan Viverette <alanv@google.com> | 2015-02-20 10:51:33 -0800 |
---|---|---|
committer | Alan Viverette <alanv@google.com> | 2015-02-20 10:51:33 -0800 |
commit | adbc95f015aed3c6d67bc05507cafa2148cc5d94 (patch) | |
tree | 2ed23cf69b53df878759a6944e8034f81b28dde8 /core/java/android/widget/TimePickerClockDelegate.java | |
parent | c20f54aff64a5b29003968249906c9443208a845 (diff) | |
download | frameworks_base-adbc95f015aed3c6d67bc05507cafa2148cc5d94.zip frameworks_base-adbc95f015aed3c6d67bc05507cafa2148cc5d94.tar.gz frameworks_base-adbc95f015aed3c6d67bc05507cafa2148cc5d94.tar.bz2 |
Update time picker to match latest Material spec
Also removes saveLayerAlpha() call from radial time picker's disabled
drawing path.
Bug: 19431361
Change-Id: I18641bb9544107bb8704fc43d0dd6c5b18ff99ce
Diffstat (limited to 'core/java/android/widget/TimePickerClockDelegate.java')
-rw-r--r-- | core/java/android/widget/TimePickerClockDelegate.java | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/core/java/android/widget/TimePickerClockDelegate.java b/core/java/android/widget/TimePickerClockDelegate.java index 05c7a5f..ed052af 100644 --- a/core/java/android/widget/TimePickerClockDelegate.java +++ b/core/java/android/widget/TimePickerClockDelegate.java @@ -91,6 +91,7 @@ class TimePickerClockDelegate extends TimePicker.AbstractTimePickerDelegate impl private int mInitialHourOfDay; private int mInitialMinute; private boolean mIs24HourView; + private boolean mIsAmPmAtStart; // For hardware IME input. private char mPlaceholderText; @@ -284,24 +285,37 @@ class TimePickerClockDelegate extends TimePicker.AbstractTimePickerDelegate impl } private void updateHeaderAmPm() { + if (mIs24HourView) { mAmPmLayout.setVisibility(View.GONE); } else { // Ensure that AM/PM layout is in the correct position. final String dateTimePattern = DateFormat.getBestDateTimePattern(mCurrentLocale, "hm"); - final boolean amPmAtStart = dateTimePattern.startsWith("a"); - final ViewGroup parent = (ViewGroup) mAmPmLayout.getParent(); - final int targetIndex = amPmAtStart ? 0 : parent.getChildCount() - 1; - final int currentIndex = parent.indexOfChild(mAmPmLayout); - if (targetIndex != currentIndex) { - parent.removeView(mAmPmLayout); - parent.addView(mAmPmLayout, targetIndex); - } + final boolean isAmPmAtStart = dateTimePattern.startsWith("a"); + setAmPmAtStart(isAmPmAtStart); updateAmPmLabelStates(mInitialHourOfDay < 12 ? AM : PM); } } + private void setAmPmAtStart(boolean isAmPmAtStart) { + if (mIsAmPmAtStart != isAmPmAtStart) { + mIsAmPmAtStart = isAmPmAtStart; + + final RelativeLayout.LayoutParams params = + (RelativeLayout.LayoutParams) mAmPmLayout.getLayoutParams(); + if (isAmPmAtStart) { + params.removeRule(RelativeLayout.RIGHT_OF); + params.addRule(RelativeLayout.LEFT_OF, mHourView.getId()); + } else { + params.removeRule(RelativeLayout.LEFT_OF); + params.addRule(RelativeLayout.RIGHT_OF, mMinuteView.getId()); + } + + mAmPmLayout.setLayoutParams(params); + } + } + /** * Set the current hour. */ |