OSDN Git Service

11590daaa5b8756058022ec6fe04a4964be20b86
[android-x86/packages-apps-Settings.git] / src / com / android / settings / vpn / L2tpIpsecPskEditor.java
1 /*
2  * Copyright (C) 2009 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.vpn;
18
19 import com.android.settings.R;
20
21 import android.content.Context;
22 import android.net.vpn.L2tpIpsecPskProfile;
23 import android.preference.EditTextPreference;
24 import android.preference.Preference;
25 import android.preference.PreferenceGroup;
26
27 /**
28  * The class for editing {@link L2tpIpsecPskProfile}.
29  */
30 class L2tpIpsecPskEditor extends L2tpEditor {
31     private EditTextPreference mPresharedKey;
32
33     public L2tpIpsecPskEditor(L2tpIpsecPskProfile p) {
34         super(p);
35     }
36
37     @Override
38     protected void loadExtraPreferencesTo(PreferenceGroup subpanel) {
39         Context c = subpanel.getContext();
40         subpanel.addPreference(createPresharedKeyPreference(c));
41         super.loadExtraPreferencesTo(subpanel);
42     }
43
44     @Override
45     public String validate() {
46         String result = super.validate();
47
48         return ((result != null)
49                 ? result
50                 : validate(mPresharedKey, R.string.vpn_a_ipsec_presharedkey));
51     }
52
53     private Preference createPresharedKeyPreference(Context c) {
54         final L2tpIpsecPskProfile profile = (L2tpIpsecPskProfile) getProfile();
55         mPresharedKey = createSecretPreference(c,
56                 R.string.vpn_ipsec_presharedkey_title,
57                 R.string.vpn_ipsec_presharedkey,
58                 profile.getPresharedKey(),
59                 new Preference.OnPreferenceChangeListener() {
60                     public boolean onPreferenceChange(
61                             Preference pref, Object newValue) {
62                         profile.setPresharedKey((String) newValue);
63                         setSecretSummary(mPresharedKey,
64                                 R.string.vpn_ipsec_presharedkey,
65                                 (String) newValue);
66                         return true;
67                     }
68                 });
69         return mPresharedKey;
70     }
71 }