NumPadKeypublic class NumPadKey extends android.view.ViewGroup
Fields Summary |
---|
static String[] | sKlondike | private int | mDigit | private int | mTextViewResId | private PasswordTextView | mTextView | private android.widget.TextView | mDigitText | private android.widget.TextView | mKlondikeText | private boolean | mEnableHaptics | private android.os.PowerManager | mPM | private View.OnClickListener | mListener |
Constructors Summary |
---|
public NumPadKey(android.content.Context context)
this(context, null);
| public NumPadKey(android.content.Context context, android.util.AttributeSet attrs)
this(context, attrs, 0);
| public NumPadKey(android.content.Context context, android.util.AttributeSet attrs, int defStyle)
super(context, attrs, defStyle);
setFocusable(true);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.NumPadKey);
try {
mDigit = a.getInt(R.styleable.NumPadKey_digit, mDigit);
mTextViewResId = a.getResourceId(R.styleable.NumPadKey_textView, 0);
} finally {
a.recycle();
}
setOnClickListener(mListener);
setOnHoverListener(new LiftToActivateListener(context));
setAccessibilityDelegate(new ObscureSpeechDelegate(context));
mEnableHaptics = new LockPatternUtils(context).isTactileFeedbackEnabled();
mPM = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.keyguard_num_pad_key, this, true);
mDigitText = (TextView) findViewById(R.id.digit_text);
mDigitText.setText(Integer.toString(mDigit));
mKlondikeText = (TextView) findViewById(R.id.klondike_text);
if (mDigit >= 0) {
if (sKlondike == null) {
sKlondike = getResources().getStringArray(R.array.lockscreen_num_pad_klondike);
}
if (sKlondike != null && sKlondike.length > mDigit) {
String klondike = sKlondike[mDigit];
final int len = klondike.length();
if (len > 0) {
mKlondikeText.setText(klondike);
} else {
mKlondikeText.setVisibility(View.INVISIBLE);
}
}
}
setBackground(mContext.getDrawable(R.drawable.ripple_drawable));
setContentDescription(mDigitText.getText().toString());
|
Methods Summary |
---|
public void | doHapticKeyClick()
if (mEnableHaptics) {
performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY,
HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING
| HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
}
| public boolean | hasOverlappingRendering()
return false;
| public void | onDetachedFromWindow()
super.onDetachedFromWindow();
// Reset the "announced headset" flag when detached.
ObscureSpeechDelegate.sAnnouncedHeadset = false;
| protected void | onLayout(boolean changed, int l, int t, int r, int b)
int digitHeight = mDigitText.getMeasuredHeight();
int klondikeHeight = mKlondikeText.getMeasuredHeight();
int totalHeight = digitHeight + klondikeHeight;
int top = getHeight() / 2 - totalHeight / 2;
int centerX = getWidth() / 2;
int left = centerX - mDigitText.getMeasuredWidth() / 2;
int bottom = top + digitHeight;
mDigitText.layout(left, top, left + mDigitText.getMeasuredWidth(), bottom);
top = (int) (bottom - klondikeHeight * 0.35f);
bottom = top + klondikeHeight;
left = centerX - mKlondikeText.getMeasuredWidth() / 2;
mKlondikeText.layout(left, top, left + mKlondikeText.getMeasuredWidth(), bottom);
| protected void | onMeasure(int widthMeasureSpec, int heightMeasureSpec)
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
measureChildren(widthMeasureSpec, heightMeasureSpec);
| public void | userActivity()
mPM.userActivity(SystemClock.uptimeMillis(), false);
|
|