OSDN Git Service

am 57c88834: (-s ours) am 9fe36302: (-s ours) am 9cb97c44: Merge "DO NOT MERGE Fix...
[android-x86/packages-apps-Settings.git] / src / com / android / settings / EditPinPreference.java
1 /*
2  * Copyright (C) 2008 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.android.settings;
18
19 import android.app.Dialog;
20 import android.content.Context;
21 import android.preference.EditTextPreference;
22 import android.text.method.DigitsKeyListener;
23 import android.text.method.PasswordTransformationMethod;
24 import android.util.AttributeSet;
25 import android.view.View;
26 import android.widget.EditText;
27
28 /**
29  * TODO: Add a soft dialpad for PIN entry.
30  */
31 class EditPinPreference extends EditTextPreference {
32
33     interface OnPinEnteredListener {
34         void onPinEntered(EditPinPreference preference, boolean positiveResult);
35     }
36     
37     private OnPinEnteredListener mPinListener;
38     
39     public EditPinPreference(Context context, AttributeSet attrs) {
40         super(context, attrs);
41     }
42
43     public EditPinPreference(Context context, AttributeSet attrs, int defStyle) {
44         super(context, attrs, defStyle);
45     }
46     
47     public void setOnPinEnteredListener(OnPinEnteredListener listener) {
48         mPinListener = listener;
49     }
50
51     @Override
52     protected void onBindDialogView(View view) {
53         super.onBindDialogView(view);
54
55         final EditText editText = (EditText) view.findViewById(android.R.id.edit);
56
57         if (editText != null) {
58             editText.setSingleLine(true);
59             editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
60             editText.setKeyListener(DigitsKeyListener.getInstance());
61         }
62     }
63
64     public boolean isDialogOpen() {
65         Dialog dialog = getDialog();
66         return dialog != null && dialog.isShowing();
67     }
68
69     @Override
70     protected void onDialogClosed(boolean positiveResult) {
71         super.onDialogClosed(positiveResult);
72         if (mPinListener != null) {
73             mPinListener.onPinEntered(this, positiveResult);
74         }
75     }
76
77     public void showPinDialog() {
78         Dialog dialog = getDialog();
79         if (dialog == null || !dialog.isShowing()) {
80             showDialog(null);
81         }
82     }
83 }