diff options
| author | 2014-06-03 18:36:03 -0700 | |
|---|---|---|
| committer | 2014-06-03 18:36:03 -0700 | |
| commit | eb1d3798e37572ca515aad572350f5745adf023d (patch) | |
| tree | 0eb142ab7cb43aaee5b8a0447420b33a5390629b | |
| parent | ef8f79a9286e87a0d46bfe408d78b9a4f339953d (diff) | |
Fix RadialTimePicker styling
Also sneaks in some whitespace cleanup for PhoneWindow!
Change-Id: I1bc8a889a59d69ae80b6cfbf54d57cd7f8ad4a36
| -rw-r--r-- | core/java/android/widget/RadialTimePickerView.java | 205 | ||||
| -rw-r--r-- | core/java/android/widget/TimePickerDelegate.java | 9 | ||||
| -rw-r--r-- | core/res/res/values/colors_quantum.xml | 11 | ||||
| -rw-r--r-- | core/res/res/values/symbols.xml | 11 | ||||
| -rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindow.java | 49 |
5 files changed, 181 insertions, 104 deletions
diff --git a/core/java/android/widget/RadialTimePickerView.java b/core/java/android/widget/RadialTimePickerView.java index 1c9ab6142a5b..bb74c44237be 100644 --- a/core/java/android/widget/RadialTimePickerView.java +++ b/core/java/android/widget/RadialTimePickerView.java @@ -42,6 +42,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; + import com.android.internal.R; import java.text.DateFormatSymbols; @@ -82,13 +83,13 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { private static final int ALPHA_TRANSPARENT = 0; // Alpha level of color for selector. - private static final int ALPHA_SELECTOR = 51; + private static final int ALPHA_SELECTOR = 255; // was 51 // Alpha level of color for selected circle. private static final int ALPHA_AMPM_SELECTED = ALPHA_SELECTOR; // Alpha level of color for pressed circle. - private static final int ALPHA_AMPM_PRESSED = 175; + private static final int ALPHA_AMPM_PRESSED = 255; // was 175 private static final float COSINE_30_DEGREES = ((float) Math.sqrt(3)) * 0.5f; private static final float SINE_30_DEGREES = 0.5f; @@ -112,8 +113,15 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { private final String[] mAmPmText = new String[2]; private final Paint[] mPaint = new Paint[2]; + private final int[] mColor = new int[2]; + private final IntHolder[] mAlpha = new IntHolder[2]; + private final Paint mPaintCenter = new Paint(); + private final Paint[][] mPaintSelector = new Paint[2][3]; + private final int[][] mColorSelector = new int[2][3]; + private final IntHolder[][] mAlphaSelector = new IntHolder[2][3]; + private final Paint mPaintAmPmText = new Paint(); private final Paint[] mPaintAmPmCircle = new Paint[2]; @@ -309,65 +317,80 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { final Resources res = getResources(); mAmPmUnselectedColor = a.getColor(R.styleable.TimePicker_amPmUnselectedBackgroundColor, - res.getColor( - R.color.timepicker_default_ampm_unselected_background_color_holo_light)); + res.getColor(R.color.timepicker_default_ampm_unselected_background_color_quantum)); mAmPmSelectedColor = a.getColor(R.styleable.TimePicker_amPmSelectedBackgroundColor, - res.getColor(R.color.timepicker_default_ampm_selected_background_color_holo_light)); + res.getColor(R.color.timepicker_default_ampm_selected_background_color_quantum)); mAmPmTextColor = a.getColor(R.styleable.TimePicker_amPmTextColor, - res.getColor(R.color.timepicker_default_text_color_holo_light)); - - final int numbersTextColor = a.getColor(R.styleable.TimePicker_numbersTextColor, - res.getColor(R.color.timepicker_default_text_color_holo_light)); + res.getColor(R.color.timepicker_default_text_color_quantum)); mTypeface = Typeface.create("sans-serif", Typeface.NORMAL); + // Initialize all alpha values to opaque. + for (int i = 0; i < mAlpha.length; i++) { + mAlpha[i] = new IntHolder(ALPHA_OPAQUE); + } + for (int i = 0; i < mAlphaSelector.length; i++) { + for (int j = 0; j < mAlphaSelector[i].length; j++) { + mAlphaSelector[i][j] = new IntHolder(ALPHA_OPAQUE); + } + } + + final int numbersTextColor = a.getColor(R.styleable.TimePicker_numbersTextColor, + res.getColor(R.color.timepicker_default_text_color_quantum)); + mPaint[HOURS] = new Paint(); - mPaint[HOURS].setColor(numbersTextColor); mPaint[HOURS].setAntiAlias(true); mPaint[HOURS].setTextAlign(Paint.Align.CENTER); + mColor[HOURS] = numbersTextColor; mPaint[MINUTES] = new Paint(); - mPaint[MINUTES].setColor(numbersTextColor); mPaint[MINUTES].setAntiAlias(true); mPaint[MINUTES].setTextAlign(Paint.Align.CENTER); + mColor[MINUTES] = numbersTextColor; mPaintCenter.setColor(numbersTextColor); mPaintCenter.setAntiAlias(true); mPaintCenter.setTextAlign(Paint.Align.CENTER); mPaintSelector[HOURS][SELECTOR_CIRCLE] = new Paint(); - mPaintSelector[HOURS][SELECTOR_CIRCLE].setColor( - a.getColor(R.styleable.TimePicker_numbersSelectorColor, R.color.holo_blue_light)); mPaintSelector[HOURS][SELECTOR_CIRCLE].setAntiAlias(true); + mColorSelector[HOURS][SELECTOR_CIRCLE] = a.getColor( + R.styleable.TimePicker_numbersSelectorColor, + R.color.timepicker_default_selector_color_quantum); mPaintSelector[HOURS][SELECTOR_DOT] = new Paint(); - mPaintSelector[HOURS][SELECTOR_DOT].setColor( - a.getColor(R.styleable.TimePicker_numbersSelectorColor, R.color.holo_blue_light)); mPaintSelector[HOURS][SELECTOR_DOT].setAntiAlias(true); + mColorSelector[HOURS][SELECTOR_DOT] = a.getColor( + R.styleable.TimePicker_numbersSelectorColor, + R.color.timepicker_default_selector_color_quantum); mPaintSelector[HOURS][SELECTOR_LINE] = new Paint(); - mPaintSelector[HOURS][SELECTOR_LINE].setColor( - a.getColor(R.styleable.TimePicker_numbersSelectorColor, R.color.holo_blue_light)); mPaintSelector[HOURS][SELECTOR_LINE].setAntiAlias(true); mPaintSelector[HOURS][SELECTOR_LINE].setStrokeWidth(2); + mColorSelector[HOURS][SELECTOR_LINE] = a.getColor( + R.styleable.TimePicker_numbersSelectorColor, + R.color.timepicker_default_selector_color_quantum); mPaintSelector[MINUTES][SELECTOR_CIRCLE] = new Paint(); - mPaintSelector[MINUTES][SELECTOR_CIRCLE].setColor( - a.getColor(R.styleable.TimePicker_numbersSelectorColor, R.color.holo_blue_light)); mPaintSelector[MINUTES][SELECTOR_CIRCLE].setAntiAlias(true); + mColorSelector[MINUTES][SELECTOR_CIRCLE] = a.getColor( + R.styleable.TimePicker_numbersSelectorColor, + R.color.timepicker_default_selector_color_quantum); mPaintSelector[MINUTES][SELECTOR_DOT] = new Paint(); - mPaintSelector[MINUTES][SELECTOR_DOT].setColor( - a.getColor(R.styleable.TimePicker_numbersSelectorColor, R.color.holo_blue_light)); mPaintSelector[MINUTES][SELECTOR_DOT].setAntiAlias(true); + mColorSelector[MINUTES][SELECTOR_DOT] = a.getColor( + R.styleable.TimePicker_numbersSelectorColor, + R.color.timepicker_default_selector_color_quantum); mPaintSelector[MINUTES][SELECTOR_LINE] = new Paint(); - mPaintSelector[MINUTES][SELECTOR_LINE].setColor( - a.getColor(R.styleable.TimePicker_numbersSelectorColor, R.color.holo_blue_light)); mPaintSelector[MINUTES][SELECTOR_LINE].setAntiAlias(true); mPaintSelector[MINUTES][SELECTOR_LINE].setStrokeWidth(2); + mColorSelector[MINUTES][SELECTOR_LINE] = a.getColor( + R.styleable.TimePicker_numbersSelectorColor, + R.color.timepicker_default_selector_color_quantum); mPaintAmPmText.setColor(mAmPmTextColor); mPaintAmPmText.setTypeface(mTypeface); @@ -379,13 +402,12 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { mPaintAmPmCircle[PM] = new Paint(); mPaintAmPmCircle[PM].setAntiAlias(true); - mPaintBackground.setColor( - a.getColor(R.styleable.TimePicker_numbersBackgroundColor, Color.WHITE)); + mPaintBackground.setColor(a.getColor(R.styleable.TimePicker_numbersBackgroundColor, + res.getColor(R.color.timepicker_default_numbers_background_color_quantum))); mPaintBackground.setAntiAlias(true); - final int disabledColor = a.getColor(R.styleable.TimePicker_disabledColor, - res.getColor(R.color.timepicker_default_disabled_color_holo_light)); - mPaintDisabled.setColor(disabledColor); + mPaintDisabled.setColor(a.getColor(R.styleable.TimePicker_disabledColor, + res.getColor(R.color.timepicker_default_disabled_color_quantum))); mPaintDisabled.setAntiAlias(true); if (DEBUG) { @@ -415,6 +437,8 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { mSelectionRadiusMultiplier = Float.parseFloat( res.getString(R.string.timepicker_selection_radius_multiplier)); + a.recycle(); + setOnTouchListener(this); // Initial values @@ -622,21 +646,21 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { mAmPmCircleRadiusMultiplier = Float.parseFloat( res.getString(R.string.timepicker_ampm_circle_radius_multiplier)); - mPaint[HOURS].setAlpha(mShowHours ? ALPHA_OPAQUE : ALPHA_TRANSPARENT); - mPaint[MINUTES].setAlpha(mShowHours ? ALPHA_TRANSPARENT : ALPHA_OPAQUE); + mAlpha[HOURS].setValue(mShowHours ? ALPHA_OPAQUE : ALPHA_TRANSPARENT); + mAlpha[MINUTES].setValue(mShowHours ? ALPHA_TRANSPARENT : ALPHA_OPAQUE); - mPaintSelector[HOURS][SELECTOR_CIRCLE].setAlpha( - mShowHours ?ALPHA_SELECTOR : ALPHA_TRANSPARENT); - mPaintSelector[HOURS][SELECTOR_DOT].setAlpha( + mAlphaSelector[HOURS][SELECTOR_CIRCLE].setValue( + mShowHours ? ALPHA_SELECTOR : ALPHA_TRANSPARENT); + mAlphaSelector[HOURS][SELECTOR_DOT].setValue( mShowHours ? ALPHA_OPAQUE : ALPHA_TRANSPARENT); - mPaintSelector[HOURS][SELECTOR_LINE].setAlpha( + mAlphaSelector[HOURS][SELECTOR_LINE].setValue( mShowHours ? ALPHA_SELECTOR : ALPHA_TRANSPARENT); - mPaintSelector[MINUTES][SELECTOR_CIRCLE].setAlpha( + mAlphaSelector[MINUTES][SELECTOR_CIRCLE].setValue( mShowHours ? ALPHA_TRANSPARENT : ALPHA_SELECTOR); - mPaintSelector[MINUTES][SELECTOR_DOT].setAlpha( + mAlphaSelector[MINUTES][SELECTOR_DOT].setValue( mShowHours ? ALPHA_TRANSPARENT : ALPHA_OPAQUE); - mPaintSelector[MINUTES][SELECTOR_LINE].setAlpha( + mAlphaSelector[MINUTES][SELECTOR_LINE].setValue( mShowHours ? ALPHA_TRANSPARENT : ALPHA_SELECTOR); } @@ -704,20 +728,23 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { calculateGridSizesMinutes(); drawCircleBackground(canvas); + drawSelector(canvas); drawTextElements(canvas, mTextSize[HOURS], mTypeface, mOuterTextHours, - mTextGridWidths[HOURS], mTextGridHeights[HOURS], mPaint[HOURS]); + mTextGridWidths[HOURS], mTextGridHeights[HOURS], mPaint[HOURS], + mColor[HOURS], mAlpha[HOURS].getValue()); if (mIs24HourMode && mInnerTextHours != null) { drawTextElements(canvas, mInnerTextSize, mTypeface, mInnerTextHours, - mInnerTextGridWidths, mInnerTextGridHeights, mPaint[HOURS]); + mInnerTextGridWidths, mInnerTextGridHeights, mPaint[HOURS], + mColor[HOURS], mAlpha[HOURS].getValue()); } drawTextElements(canvas, mTextSize[MINUTES], mTypeface, mOuterTextMinutes, - mTextGridWidths[MINUTES], mTextGridHeights[MINUTES], mPaint[MINUTES]); + mTextGridWidths[MINUTES], mTextGridHeights[MINUTES], mPaint[MINUTES], + mColor[MINUTES], mAlpha[MINUTES].getValue()); drawCenter(canvas); - drawSelector(canvas); if (!mIs24HourMode) { drawAmPm(canvas); } @@ -772,12 +799,12 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { // Draw the two circles mPaintAmPmCircle[AM].setColor(amColor); - mPaintAmPmCircle[AM].setAlpha(amAlpha); + mPaintAmPmCircle[AM].setAlpha(getMultipliedAlpha(amColor, amAlpha)); canvas.drawCircle(isLayoutRtl ? mRightIndicatorXCenter : mLeftIndicatorXCenter, mAmPmYCenter, mAmPmCircleRadius, mPaintAmPmCircle[AM]); mPaintAmPmCircle[PM].setColor(pmColor); - mPaintAmPmCircle[PM].setAlpha(pmAlpha); + mPaintAmPmCircle[PM].setAlpha(getMultipliedAlpha(pmColor, pmAlpha)); canvas.drawCircle(isLayoutRtl ? mLeftIndicatorXCenter : mRightIndicatorXCenter, mAmPmYCenter, mAmPmCircleRadius, mPaintAmPmCircle[PM]); @@ -792,6 +819,10 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { textYCenter, mPaintAmPmText); } + private int getMultipliedAlpha(int argb, int alpha) { + return (int) (Color.alpha(argb) * (alpha / 255.0) + 0.5); + } + private void drawSelector(Canvas canvas, int index) { // Calculate the current radius at which to place the selection circle. mLineLength[index] = (int) (mCircleRadius[index] @@ -802,15 +833,27 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { int pointX = mXCenter + (int) (mLineLength[index] * Math.sin(selectionRadians)); int pointY = mYCenter - (int) (mLineLength[index] * Math.cos(selectionRadians)); + int color; + int alpha; + Paint paint; + // Draw the selection circle - canvas.drawCircle(pointX, pointY, mSelectionRadius[index], - mPaintSelector[index % 2][SELECTOR_CIRCLE]); + color = mColorSelector[index % 2][SELECTOR_CIRCLE]; + alpha = mAlphaSelector[index % 2][SELECTOR_CIRCLE].getValue(); + paint = mPaintSelector[index % 2][SELECTOR_CIRCLE]; + paint.setColor(color); + paint.setAlpha(getMultipliedAlpha(color, alpha)); + canvas.drawCircle(pointX, pointY, mSelectionRadius[index], paint); // Draw the dot if needed if (mSelectionDegrees[index] % 30 != 0) { // We're not on a direct tick - canvas.drawCircle(pointX, pointY, (mSelectionRadius[index] * 2 / 7), - mPaintSelector[index % 2][SELECTOR_DOT]); + color = mColorSelector[index % 2][SELECTOR_DOT]; + alpha = mAlphaSelector[index % 2][SELECTOR_DOT].getValue(); + paint = mPaintSelector[index % 2][SELECTOR_DOT]; + paint.setColor(color); + paint.setAlpha(getMultipliedAlpha(color, alpha)); + canvas.drawCircle(pointX, pointY, (mSelectionRadius[index] * 2 / 7), paint); } else { // We're not drawing the dot, so shorten the line to only go as far as the edge of the // selection circle @@ -820,8 +863,12 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { } // Draw the line - canvas.drawLine(mXCenter, mYCenter, pointX, pointY, - mPaintSelector[index % 2][SELECTOR_LINE]); + color = mColorSelector[index % 2][SELECTOR_LINE]; + alpha = mAlphaSelector[index % 2][SELECTOR_LINE].getValue(); + paint = mPaintSelector[index % 2][SELECTOR_LINE]; + paint.setColor(color); + paint.setAlpha(getMultipliedAlpha(color, alpha)); + canvas.drawLine(mXCenter, mYCenter, pointX, pointY, paint); } private void drawDebug(Canvas canvas) { @@ -948,9 +995,11 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { * Draw the 12 text values at the positions specified by the textGrid parameters. */ private void drawTextElements(Canvas canvas, float textSize, Typeface typeface, String[] texts, - float[] textGridWidths, float[] textGridHeights, Paint paint) { + float[] textGridWidths, float[] textGridHeights, Paint paint, int color, int alpha) { paint.setTextSize(textSize); paint.setTypeface(typeface); + paint.setColor(color); + paint.setAlpha(getMultipliedAlpha(color, alpha)); canvas.drawText(texts[0], textGridWidths[3], textGridHeights[0], paint); canvas.drawText(texts[1], textGridWidths[4], textGridHeights[1], paint); canvas.drawText(texts[2], textGridWidths[5], textGridHeights[2], paint); @@ -1023,17 +1072,17 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { return animator; } - private static ObjectAnimator getFadeOutAnimator(Object target, int startAlpha, int endAlpha, + private static ObjectAnimator getFadeOutAnimator(IntHolder target, int startAlpha, int endAlpha, InvalidateUpdateListener updateListener) { int duration = 500; - ObjectAnimator animator = ObjectAnimator.ofInt(target, "alpha", startAlpha, endAlpha); + ObjectAnimator animator = ObjectAnimator.ofInt(target, "value", startAlpha, endAlpha); animator.setDuration(duration); animator.addUpdateListener(updateListener); return animator; } - private static ObjectAnimator getFadeInAnimator(Object target, int startAlpha, int endAlpha, + private static ObjectAnimator getFadeInAnimator(IntHolder target, int startAlpha, int endAlpha, InvalidateUpdateListener updateListener) { Keyframe kf0, kf1, kf2; int duration = 500; @@ -1048,7 +1097,7 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { kf0 = Keyframe.ofInt(0f, startAlpha); kf1 = Keyframe.ofInt(delayPoint, startAlpha); kf2 = Keyframe.ofInt(1f, endAlpha); - PropertyValuesHolder fadeIn = PropertyValuesHolder.ofKeyframe("alpha", kf0, kf1, kf2); + PropertyValuesHolder fadeIn = PropertyValuesHolder.ofKeyframe("value", kf0, kf1, kf2); ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder( target, fadeIn).setDuration(totalDuration); @@ -1068,25 +1117,25 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { mHoursToMinutesAnims.add(getRadiusDisappearAnimator(this, "animationRadiusMultiplierHours", mInvalidateUpdateListener, mTransitionMidRadiusMultiplier, mTransitionEndRadiusMultiplier)); - mHoursToMinutesAnims.add(getFadeOutAnimator(mPaint[HOURS], + mHoursToMinutesAnims.add(getFadeOutAnimator(mAlpha[HOURS], ALPHA_OPAQUE, ALPHA_TRANSPARENT, mInvalidateUpdateListener)); - mHoursToMinutesAnims.add(getFadeOutAnimator(mPaintSelector[HOURS][SELECTOR_CIRCLE], + mHoursToMinutesAnims.add(getFadeOutAnimator(mAlphaSelector[HOURS][SELECTOR_CIRCLE], ALPHA_SELECTOR, ALPHA_TRANSPARENT, mInvalidateUpdateListener)); - mHoursToMinutesAnims.add(getFadeOutAnimator(mPaintSelector[HOURS][SELECTOR_DOT], + mHoursToMinutesAnims.add(getFadeOutAnimator(mAlphaSelector[HOURS][SELECTOR_DOT], ALPHA_OPAQUE, ALPHA_TRANSPARENT, mInvalidateUpdateListener)); - mHoursToMinutesAnims.add(getFadeOutAnimator(mPaintSelector[HOURS][SELECTOR_LINE], + mHoursToMinutesAnims.add(getFadeOutAnimator(mAlphaSelector[HOURS][SELECTOR_LINE], ALPHA_SELECTOR, ALPHA_TRANSPARENT, mInvalidateUpdateListener)); mHoursToMinutesAnims.add(getRadiusReappearAnimator(this, "animationRadiusMultiplierMinutes", mInvalidateUpdateListener, mTransitionMidRadiusMultiplier, mTransitionEndRadiusMultiplier)); - mHoursToMinutesAnims.add(getFadeInAnimator(mPaint[MINUTES], + mHoursToMinutesAnims.add(getFadeInAnimator(mAlpha[MINUTES], ALPHA_TRANSPARENT, ALPHA_OPAQUE, mInvalidateUpdateListener)); - mHoursToMinutesAnims.add(getFadeInAnimator(mPaintSelector[MINUTES][SELECTOR_CIRCLE], + mHoursToMinutesAnims.add(getFadeInAnimator(mAlphaSelector[MINUTES][SELECTOR_CIRCLE], ALPHA_TRANSPARENT, ALPHA_SELECTOR, mInvalidateUpdateListener)); - mHoursToMinutesAnims.add(getFadeInAnimator(mPaintSelector[MINUTES][SELECTOR_DOT], + mHoursToMinutesAnims.add(getFadeInAnimator(mAlphaSelector[MINUTES][SELECTOR_DOT], ALPHA_TRANSPARENT, ALPHA_OPAQUE, mInvalidateUpdateListener)); - mHoursToMinutesAnims.add(getFadeInAnimator(mPaintSelector[MINUTES][SELECTOR_LINE], + mHoursToMinutesAnims.add(getFadeInAnimator(mAlphaSelector[MINUTES][SELECTOR_LINE], ALPHA_TRANSPARENT, ALPHA_SELECTOR, mInvalidateUpdateListener)); } @@ -1103,25 +1152,25 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { mMinuteToHoursAnims.add(getRadiusDisappearAnimator(this, "animationRadiusMultiplierMinutes", mInvalidateUpdateListener, mTransitionMidRadiusMultiplier, mTransitionEndRadiusMultiplier)); - mMinuteToHoursAnims.add(getFadeOutAnimator(mPaint[MINUTES], + mMinuteToHoursAnims.add(getFadeOutAnimator(mAlpha[MINUTES], ALPHA_OPAQUE, ALPHA_TRANSPARENT, mInvalidateUpdateListener)); - mMinuteToHoursAnims.add(getFadeOutAnimator(mPaintSelector[MINUTES][SELECTOR_CIRCLE], + mMinuteToHoursAnims.add(getFadeOutAnimator(mAlphaSelector[MINUTES][SELECTOR_CIRCLE], ALPHA_SELECTOR, ALPHA_TRANSPARENT, mInvalidateUpdateListener)); - mMinuteToHoursAnims.add(getFadeOutAnimator(mPaintSelector[MINUTES][SELECTOR_DOT], + mMinuteToHoursAnims.add(getFadeOutAnimator(mAlphaSelector[MINUTES][SELECTOR_DOT], ALPHA_OPAQUE, ALPHA_TRANSPARENT, mInvalidateUpdateListener)); - mMinuteToHoursAnims.add(getFadeOutAnimator(mPaintSelector[MINUTES][SELECTOR_LINE], + mMinuteToHoursAnims.add(getFadeOutAnimator(mAlphaSelector[MINUTES][SELECTOR_LINE], ALPHA_SELECTOR, ALPHA_TRANSPARENT, mInvalidateUpdateListener)); mMinuteToHoursAnims.add(getRadiusReappearAnimator(this, "animationRadiusMultiplierHours", mInvalidateUpdateListener, mTransitionMidRadiusMultiplier, mTransitionEndRadiusMultiplier)); - mMinuteToHoursAnims.add(getFadeInAnimator(mPaint[HOURS], + mMinuteToHoursAnims.add(getFadeInAnimator(mAlpha[HOURS], ALPHA_TRANSPARENT, ALPHA_OPAQUE, mInvalidateUpdateListener)); - mMinuteToHoursAnims.add(getFadeInAnimator(mPaintSelector[HOURS][SELECTOR_CIRCLE], + mMinuteToHoursAnims.add(getFadeInAnimator(mAlphaSelector[HOURS][SELECTOR_CIRCLE], ALPHA_TRANSPARENT, ALPHA_SELECTOR, mInvalidateUpdateListener)); - mMinuteToHoursAnims.add(getFadeInAnimator(mPaintSelector[HOURS][SELECTOR_DOT], + mMinuteToHoursAnims.add(getFadeInAnimator(mAlphaSelector[HOURS][SELECTOR_DOT], ALPHA_TRANSPARENT, ALPHA_OPAQUE, mInvalidateUpdateListener)); - mMinuteToHoursAnims.add(getFadeInAnimator(mPaintSelector[HOURS][SELECTOR_LINE], + mMinuteToHoursAnims.add(getFadeInAnimator(mAlphaSelector[HOURS][SELECTOR_LINE], ALPHA_TRANSPARENT, ALPHA_SELECTOR, mInvalidateUpdateListener)); } @@ -1393,4 +1442,20 @@ public class RadialTimePickerView extends View implements View.OnTouchListener { mInputEnabled = inputEnabled; invalidate(); } + + private static class IntHolder { + private int mValue; + + public IntHolder(int value) { + mValue = value; + } + + public void setValue(int value) { + mValue = value; + } + + public int getValue() { + return mValue; + } + } } diff --git a/core/java/android/widget/TimePickerDelegate.java b/core/java/android/widget/TimePickerDelegate.java index 79256e567762..ba93ee560a56 100644 --- a/core/java/android/widget/TimePickerDelegate.java +++ b/core/java/android/widget/TimePickerDelegate.java @@ -140,13 +140,12 @@ class TimePickerDelegate extends TimePicker.AbstractTimePickerDelegate implement mSelectMinutes = res.getString(R.string.select_minutes); mHeaderSelectedColor = a.getColor(R.styleable.TimePicker_headerSelectedTextColor, - android.R.color.holo_blue_light); + R.color.timepicker_default_selector_color_quantum); - mHeaderUnSelectedColor = getUnselectedColor( - R.color.timepicker_default_text_color_holo_light); + mHeaderUnSelectedColor = getUnselectedColor(R.color.timepicker_default_text_color_quantum); if (mHeaderUnSelectedColor == -1) { mHeaderUnSelectedColor = a.getColor(R.styleable.TimePicker_headerUnselectedTextColor, - R.color.timepicker_default_text_color_holo_light); + R.color.timepicker_default_text_color_quantum); } final int headerBackgroundColor = a.getColor( @@ -296,7 +295,7 @@ class TimePickerDelegate extends TimePicker.AbstractTimePickerDelegate implement TypedArray a = mContext.obtainStyledAttributes(TEXT_APPEARANCE_TIME_LABEL_ATTR); final int textAppearanceResId = a.getResourceId(0, 0); tempView.setTextAppearance(mContext, (textAppearanceResId != 0) ? - textAppearanceResId : R.style.TextAppearance_Holo_TimePicker_TimeLabel); + textAppearanceResId : R.style.TextAppearance_Quantum_TimePicker_TimeLabel); a.recycle(); ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); diff --git a/core/res/res/values/colors_quantum.xml b/core/res/res/values/colors_quantum.xml index 59864033e74c..dffc9b0902c2 100644 --- a/core/res/res/values/colors_quantum.xml +++ b/core/res/res/values/colors_quantum.xml @@ -151,4 +151,15 @@ <color name="quantum_brown_300">#ffa1887f</color> <color name="quantum_brown_500">#ff795548</color> <color name="quantum_brown_700">#ff5d4037</color> + + <!-- Time picker defaults when no theme is set --> + <eat-comment /> + + <color name="timepicker_default_background_quantum">@color/primary_text_default_quantum_light</color> + <color name="timepicker_default_text_color_quantum">@color/black</color> + <color name="timepicker_default_disabled_color_quantum">@color/bright_foreground_disabled_quantum_dark</color> + <color name="timepicker_default_ampm_selected_background_color_quantum">@color/quantum_light_blue_A200</color> + <color name="timepicker_default_ampm_unselected_background_color_quantum">@color/transparent</color> + <color name="timepicker_default_selector_color_quantum">@color/quantum_light_blue_A200</color> + <color name="timepicker_default_numbers_background_color_quantum">@color/transparent</color> </resources> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 9e6588f1cd28..41238a3ed23c 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1858,10 +1858,6 @@ <java-symbol type="string" name="timepicker_numbers_radius_multiplier_normal" /> <java-symbol type="string" name="timepicker_transition_mid_radius_multiplier" /> <java-symbol type="string" name="timepicker_transition_end_radius_multiplier" /> - <java-symbol type="color" name="timepicker_default_text_color_holo_light" /> - <java-symbol type="color" name="timepicker_default_disabled_color_holo_light" /> - <java-symbol type="color" name="timepicker_default_ampm_unselected_background_color_holo_light" /> - <java-symbol type="color" name="timepicker_default_ampm_selected_background_color_holo_light" /> <java-symbol type="array" name="config_clockTickVibePattern" /> <!-- From various Quantum changes --> @@ -1873,5 +1869,12 @@ <java-symbol type="id" name="icon_frame" /> <java-symbol type="style" name="Animation.VolumePanel" /> <java-symbol type="transition" name="no_transition" /> + <java-symbol type="color" name="timepicker_default_text_color_quantum" /> + <java-symbol type="color" name="timepicker_default_disabled_color_quantum" /> + <java-symbol type="color" name="timepicker_default_ampm_unselected_background_color_quantum" /> + <java-symbol type="color" name="timepicker_default_ampm_selected_background_color_quantum" /> + <java-symbol type="color" name="timepicker_default_selector_color_quantum" /> + <java-symbol type="color" name="timepicker_default_numbers_background_color_quantum" /> + <java-symbol type="style" name="TextAppearance.Quantum.TimePicker.TimeLabel" /> </resources> diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java index 5b786c1f845d..a8645bc9ea48 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java @@ -214,7 +214,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { private int mTitleColor = 0; private boolean mAlwaysReadCloseOnTouchAttr = false; - + private ContextMenuBuilder mContextMenu; private MenuDialogHelper mContextMenuHelper; private boolean mClosingActionMenu; @@ -476,7 +476,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (st.isPrepared) { return true; } - + if ((mPreparedPanel != null) && (mPreparedPanel != st)) { // Another Panel is prepared and possibly open, so close it closePanel(mPreparedPanel, false); @@ -529,7 +529,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { return false; } - + st.refreshMenuContent = false; } @@ -621,7 +621,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { // Causes the decor view to be recreated st.refreshDecorView = true; - + st.clearMenuPresenters(); } @@ -873,7 +873,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } st.refreshMenuContent = true; st.refreshDecorView = true; - + // Prepare the options panel if we have an action bar if ((featureId == FEATURE_ACTION_BAR || featureId == FEATURE_OPTIONS_PANEL) && mDecorContentParent != null) { @@ -884,7 +884,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } } } - + /** * Called when the panel key is pushed down. * @param featureId The feature ID of the relevant panel (defaults to FEATURE_OPTIONS_PANEL}. @@ -893,7 +893,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { */ public final boolean onKeyDownPanel(int featureId, KeyEvent event) { final int keyCode = event.getKeyCode(); - + if (event.getRepeatCount() == 0) { // The panel key was pushed, so set the chording key mPanelChordingKey = keyCode; @@ -920,7 +920,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (event.isCanceled() || (mDecor != null && mDecor.mActionMode != null)) { return; } - + boolean playSoundEffect = false; final PanelFeatureState st = getPanelState(featureId, true); if (featureId == FEATURE_OPTIONS_PANEL && mDecorContentParent != null && @@ -1160,10 +1160,9 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { protected boolean initializePanelMenu(final PanelFeatureState st) { Context context = getContext(); - // If we have an action bar, initialize the menu with the right theme. + // If we have an action bar, initialize the menu with the right theme. if ((st.featureId == FEATURE_OPTIONS_PANEL || st.featureId == FEATURE_ACTION_BAR) && mDecorContentParent != null) { - // TODO: We should pull the theme directly from the ActionBar. final TypedValue outValue = new TypedValue(); final Theme baseTheme = context.getTheme(); baseTheme.resolveAttribute(com.android.internal.R.attr.actionBarTheme, outValue, true); @@ -1685,7 +1684,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { mDecor != null ? mDecor.getKeyDispatcherState() : null; //Log.i(TAG, "Key down: repeat=" + event.getRepeatCount() // + " flags=0x" + Integer.toHexString(event.getFlags())); - + switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: case KeyEvent.KEYCODE_VOLUME_DOWN: @@ -1747,7 +1746,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } //Log.i(TAG, "Key up: repeat=" + event.getRepeatCount() // + " flags=0x" + Integer.toHexString(event.getFlags())); - + switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: case KeyEvent.KEYCODE_VOLUME_DOWN: @@ -2298,7 +2297,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (!AccessibilityManager.getInstance(mContext).isEnabled()) { return; } - + // if we are showing a feature that should be announced and one child // make this child the event source since this is the feature itself // otherwise the callback will take over and announce its client @@ -2849,13 +2848,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { hackTurnOffWindowResizeAnim(bg == null || bg.getOpacity() != PixelFormat.OPAQUE); } - + @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); - + updateWindowResizeState(); - + final Callback cb = getCallback(); if (cb != null && !isDestroyed() && mFeatureId < 0) { cb.onAttachedToWindow(); @@ -2876,7 +2875,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); - + final Callback cb = getCallback(); if (cb != null && mFeatureId < 0) { cb.onDetachedFromWindow(); @@ -2910,19 +2909,19 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { public android.view.SurfaceHolder.Callback2 willYouTakeTheSurface() { return mFeatureId < 0 ? mTakeSurfaceCallback : null; } - + public InputQueue.Callback willYouTakeTheInputQueue() { return mFeatureId < 0 ? mTakeInputQueueCallback : null; } - + public void setSurfaceType(int type) { PhoneWindow.this.setType(type); } - + public void setSurfaceFormat(int format) { PhoneWindow.this.setFormat(format); } - + public void setSurfaceKeepScreenOn(boolean keepOn) { if (keepOn) PhoneWindow.this.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); else PhoneWindow.this.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); @@ -3139,7 +3138,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { setCloseOnTouchOutsideIfNotSet(true); } } - + WindowManager.LayoutParams params = getAttributes(); if (!hasSoftInputMode()) { @@ -3917,11 +3916,11 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { boolean refreshDecorView; boolean refreshMenuContent; - + boolean wasLastOpen; - + boolean wasLastExpanded; - + /** * Contains the state of the menu when told to freeze. */ |