summaryrefslogtreecommitdiffstats
path: root/core/java/android/widget/TimePickerClockDelegate.java
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2015-02-20 10:51:33 -0800
committerAlan Viverette <alanv@google.com>2015-02-20 10:51:33 -0800
commitadbc95f015aed3c6d67bc05507cafa2148cc5d94 (patch)
tree2ed23cf69b53df878759a6944e8034f81b28dde8 /core/java/android/widget/TimePickerClockDelegate.java
parentc20f54aff64a5b29003968249906c9443208a845 (diff)
downloadframeworks_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.java30
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.
*/