13e9818e0267619fecebd55095ab26c53eff92e93James Kung/* 23e9818e0267619fecebd55095ab26c53eff92e93James Kung * Copyright (C) 2013 The Android Open Source Project 33e9818e0267619fecebd55095ab26c53eff92e93James Kung * 43e9818e0267619fecebd55095ab26c53eff92e93James Kung * Licensed under the Apache License, Version 2.0 (the "License"); 53e9818e0267619fecebd55095ab26c53eff92e93James Kung * you may not use this file except in compliance with the License. 63e9818e0267619fecebd55095ab26c53eff92e93James Kung * You may obtain a copy of the License at 73e9818e0267619fecebd55095ab26c53eff92e93James Kung * 83e9818e0267619fecebd55095ab26c53eff92e93James Kung * http://www.apache.org/licenses/LICENSE-2.0 93e9818e0267619fecebd55095ab26c53eff92e93James Kung * 103e9818e0267619fecebd55095ab26c53eff92e93James Kung * Unless required by applicable law or agreed to in writing, software 113e9818e0267619fecebd55095ab26c53eff92e93James Kung * distributed under the License is distributed on an "AS IS" BASIS, 123e9818e0267619fecebd55095ab26c53eff92e93James Kung * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133e9818e0267619fecebd55095ab26c53eff92e93James Kung * See the License for the specific language governing permissions and 143e9818e0267619fecebd55095ab26c53eff92e93James Kung * limitations under the License. 153e9818e0267619fecebd55095ab26c53eff92e93James Kung */ 163e9818e0267619fecebd55095ab26c53eff92e93James Kung 173e9818e0267619fecebd55095ab26c53eff92e93James Kungpackage com.android.datetimepicker.date; 183e9818e0267619fecebd55095ab26c53eff92e93James Kung 193e9818e0267619fecebd55095ab26c53eff92e93James Kungimport android.content.Context; 203e9818e0267619fecebd55095ab26c53eff92e93James Kungimport android.content.res.Resources; 213e9818e0267619fecebd55095ab26c53eff92e93James Kungimport android.graphics.Canvas; 223e9818e0267619fecebd55095ab26c53eff92e93James Kungimport android.graphics.Paint; 233e9818e0267619fecebd55095ab26c53eff92e93James Kungimport android.graphics.Paint.Align; 243e9818e0267619fecebd55095ab26c53eff92e93James Kungimport android.graphics.Paint.Style; 253e9818e0267619fecebd55095ab26c53eff92e93James Kungimport android.util.AttributeSet; 263e9818e0267619fecebd55095ab26c53eff92e93James Kungimport android.widget.TextView; 273e9818e0267619fecebd55095ab26c53eff92e93James Kung 283e9818e0267619fecebd55095ab26c53eff92e93James Kungimport com.android.datetimepicker.R; 293e9818e0267619fecebd55095ab26c53eff92e93James Kung 303e9818e0267619fecebd55095ab26c53eff92e93James Kung/** 312e00aa34c051111529290cf23c6ba940c2c0c142James Kung * A text view which, when pressed or activated, displays a blue circle around the text. 32a5c1a0a3b7241e3ec567d4fb32673fcfd98d4fc4Alan Viverette * 33a5c1a0a3b7241e3ec567d4fb32673fcfd98d4fc4Alan Viverette * @deprecated This module is deprecated. Do not use this class. 343e9818e0267619fecebd55095ab26c53eff92e93James Kung */ 35a5c1a0a3b7241e3ec567d4fb32673fcfd98d4fc4Alan Viverette@Deprecated 362e00aa34c051111529290cf23c6ba940c2c0c142James Kungpublic class TextViewWithCircularIndicator extends TextView { 373e9818e0267619fecebd55095ab26c53eff92e93James Kung 383e9818e0267619fecebd55095ab26c53eff92e93James Kung private static final int SELECTED_CIRCLE_ALPHA = 60; 393e9818e0267619fecebd55095ab26c53eff92e93James Kung 403e9818e0267619fecebd55095ab26c53eff92e93James Kung Paint mCirclePaint = new Paint(); 413e9818e0267619fecebd55095ab26c53eff92e93James Kung 423e9818e0267619fecebd55095ab26c53eff92e93James Kung private final int mRadius; 433e9818e0267619fecebd55095ab26c53eff92e93James Kung private final int mCircleColor; 44cb3f2522609186db6239ad154af275957118295cSam Blitzstein private final String mItemIsSelectedText; 45cb3f2522609186db6239ad154af275957118295cSam Blitzstein 462e00aa34c051111529290cf23c6ba940c2c0c142James Kung private boolean mDrawCircle; 473e9818e0267619fecebd55095ab26c53eff92e93James Kung 482e00aa34c051111529290cf23c6ba940c2c0c142James Kung public TextViewWithCircularIndicator(Context context, AttributeSet attrs) { 493e9818e0267619fecebd55095ab26c53eff92e93James Kung super(context, attrs); 503e9818e0267619fecebd55095ab26c53eff92e93James Kung Resources res = context.getResources(); 512e00aa34c051111529290cf23c6ba940c2c0c142James Kung mCircleColor = res.getColor(R.color.blue); 523e9818e0267619fecebd55095ab26c53eff92e93James Kung mRadius = res.getDimensionPixelOffset(R.dimen.month_select_circle_radius); 53cb3f2522609186db6239ad154af275957118295cSam Blitzstein mItemIsSelectedText = context.getResources().getString(R.string.item_is_selected); 54cb3f2522609186db6239ad154af275957118295cSam Blitzstein 553e9818e0267619fecebd55095ab26c53eff92e93James Kung init(); 563e9818e0267619fecebd55095ab26c53eff92e93James Kung } 573e9818e0267619fecebd55095ab26c53eff92e93James Kung 583e9818e0267619fecebd55095ab26c53eff92e93James Kung private void init() { 593e9818e0267619fecebd55095ab26c53eff92e93James Kung mCirclePaint.setFakeBoldText(true); 603e9818e0267619fecebd55095ab26c53eff92e93James Kung mCirclePaint.setAntiAlias(true); 613e9818e0267619fecebd55095ab26c53eff92e93James Kung mCirclePaint.setColor(mCircleColor); 623e9818e0267619fecebd55095ab26c53eff92e93James Kung mCirclePaint.setTextAlign(Align.CENTER); 633e9818e0267619fecebd55095ab26c53eff92e93James Kung mCirclePaint.setStyle(Style.FILL); 643e9818e0267619fecebd55095ab26c53eff92e93James Kung mCirclePaint.setAlpha(SELECTED_CIRCLE_ALPHA); 653e9818e0267619fecebd55095ab26c53eff92e93James Kung } 663e9818e0267619fecebd55095ab26c53eff92e93James Kung 672e00aa34c051111529290cf23c6ba940c2c0c142James Kung public void drawIndicator(boolean drawCircle) { 682e00aa34c051111529290cf23c6ba940c2c0c142James Kung mDrawCircle = drawCircle; 692e00aa34c051111529290cf23c6ba940c2c0c142James Kung } 702e00aa34c051111529290cf23c6ba940c2c0c142James Kung 713e9818e0267619fecebd55095ab26c53eff92e93James Kung @Override 723e9818e0267619fecebd55095ab26c53eff92e93James Kung public void onDraw(Canvas canvas) { 733e9818e0267619fecebd55095ab26c53eff92e93James Kung super.onDraw(canvas); 742e00aa34c051111529290cf23c6ba940c2c0c142James Kung if (mDrawCircle) { 752e00aa34c051111529290cf23c6ba940c2c0c142James Kung final int width = getWidth(); 762e00aa34c051111529290cf23c6ba940c2c0c142James Kung final int height = getHeight(); 772e00aa34c051111529290cf23c6ba940c2c0c142James Kung int radius = Math.min(width, height) / 2; 782e00aa34c051111529290cf23c6ba940c2c0c142James Kung canvas.drawCircle(width / 2, height / 2, radius, mCirclePaint); 792e00aa34c051111529290cf23c6ba940c2c0c142James Kung } 803e9818e0267619fecebd55095ab26c53eff92e93James Kung } 81cb3f2522609186db6239ad154af275957118295cSam Blitzstein 82cb3f2522609186db6239ad154af275957118295cSam Blitzstein @Override 83cb3f2522609186db6239ad154af275957118295cSam Blitzstein public CharSequence getContentDescription() { 84cb3f2522609186db6239ad154af275957118295cSam Blitzstein CharSequence itemText = getText(); 85cb3f2522609186db6239ad154af275957118295cSam Blitzstein if (mDrawCircle) { 86cb3f2522609186db6239ad154af275957118295cSam Blitzstein return String.format(mItemIsSelectedText, itemText); 87cb3f2522609186db6239ad154af275957118295cSam Blitzstein } else { 88cb3f2522609186db6239ad154af275957118295cSam Blitzstein return itemText; 89cb3f2522609186db6239ad154af275957118295cSam Blitzstein } 90cb3f2522609186db6239ad154af275957118295cSam Blitzstein } 913e9818e0267619fecebd55095ab26c53eff92e93James Kung} 92