OwnerInfoSettings.java revision d4abdd27adac36e7243bcaae37a7a2c69ac73db7
1edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller/*
2edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller * Copyright (C) 2010 The Android Open Source Project
3edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller *
4edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller * Licensed under the Apache License, Version 2.0 (the "License");
5edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller * you may not use this file except in compliance with the License.
6edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller * You may obtain a copy of the License at
7edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller *
8edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller *      http://www.apache.org/licenses/LICENSE-2.0
9edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller *
10edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller * Unless required by applicable law or agreed to in writing, software
11edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller * distributed under the License is distributed on an "AS IS" BASIS,
12edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller * See the License for the specific language governing permissions and
14edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller * limitations under the License.
15edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller */
16edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
17edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerpackage com.android.settings;
18edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
19edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.app.Fragment;
20edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.content.ContentResolver;
21edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.os.Bundle;
228666b9e170c23a9595d611a49b7c8262e357ced1Amith Yamasaniimport android.os.UserHandle;
23d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasaniimport android.os.UserManager;
24d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasaniimport android.provider.Settings;
25d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasaniimport android.text.TextUtils;
26edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.view.LayoutInflater;
27edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.view.View;
28edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.view.ViewGroup;
29edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.widget.CheckBox;
30edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.widget.CompoundButton;
31edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.widget.EditText;
32edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.widget.CompoundButton.OnCheckedChangeListener;
33edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
3499b50ae5844b847ff60350ecb9266f569dbbefdfJim Millerimport com.android.internal.widget.LockPatternUtils;
3599b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller
36bd8e69733821d6761a7c8946cd8cebb15a44babdJim Millerpublic class OwnerInfoSettings extends Fragment {
37d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani
38d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    public static final String EXTRA_SHOW_NICKNAME = "show_nickname";
39d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani
40edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    private View mView;
41edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    private CheckBox mCheckbox;
4299b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller    private int mUserId;
4399b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller    private LockPatternUtils mLockPatternUtils;
44d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    private EditText mOwnerInfo;
45d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    private EditText mNickname;
46d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    private boolean mShowNickname;
47d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani
48d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    @Override
49d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    public void onCreate(Bundle savedInstanceState) {
50d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        super.onCreate(savedInstanceState);
51d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        Bundle args = getArguments();
52d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        if (args != null && args.containsKey(EXTRA_SHOW_NICKNAME)) {
53d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani            mShowNickname = args.getBoolean(EXTRA_SHOW_NICKNAME);
54d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        }
55d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    }
56edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
57edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    @Override
58edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    public View onCreateView(LayoutInflater inflater, ViewGroup container,
59edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller            Bundle savedInstanceState) {
60edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller        mView = inflater.inflate(R.layout.ownerinfo, container, false);
6199b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller        mUserId = UserHandle.myUserId();
6299b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller        mLockPatternUtils = new LockPatternUtils(getActivity());
63edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller        initView(mView);
64edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller        return mView;
65edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    }
66edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
67edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    private void initView(View view) {
68edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller        final ContentResolver res = getActivity().getContentResolver();
6999b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller        String info = mLockPatternUtils.getOwnerInfo(mUserId);
7099b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller        boolean enabled = mLockPatternUtils.isOwnerInfoEnabled();
71edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller        mCheckbox = (CheckBox) mView.findViewById(R.id.show_owner_info_on_lockscreen_checkbox);
72d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        mOwnerInfo = (EditText) mView.findViewById(R.id.owner_info_edit_text);
73d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        mOwnerInfo.setText(info);
74d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        mOwnerInfo.setEnabled(enabled);
75d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        mNickname = (EditText) mView.findViewById(R.id.owner_info_nickname);
76d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        if (!mShowNickname) {
77d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani            mNickname.setVisibility(View.GONE);
78d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        } else {
79d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani            mNickname.setText(UserManager.get(getActivity()).getUserName());
80d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani            mNickname.setSelected(true);
81d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        }
8299b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller        mCheckbox.setChecked(enabled);
838666b9e170c23a9595d611a49b7c8262e357ced1Amith Yamasani        if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
848666b9e170c23a9595d611a49b7c8262e357ced1Amith Yamasani            mCheckbox.setText(R.string.show_user_info_on_lockscreen_label);
858666b9e170c23a9595d611a49b7c8262e357ced1Amith Yamasani        }
86edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller        mCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
87edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
8899b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller                mLockPatternUtils.setOwnerInfoEnabled(isChecked);
89d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani                mOwnerInfo.setEnabled(isChecked); // disable text field if not enabled
90edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller            }
91edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller        });
92edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    }
93edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
94edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    @Override
95edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    public void onPause() {
96edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller        super.onPause();
97d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        saveChanges();
98edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    }
99edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
100d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    void saveChanges() {
101d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        ContentResolver res = getActivity().getContentResolver();
102d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        String info = mOwnerInfo.getText().toString();
10399b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller        mLockPatternUtils.setOwnerInfo(info, mUserId);
104d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        if (mShowNickname) {
105d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani            String oldName = UserManager.get(getActivity()).getUserName();
106d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani            CharSequence newName = mNickname.getText();
107d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani            if (!TextUtils.isEmpty(newName) && !newName.equals(oldName)) {
108d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani                UserManager.get(getActivity()).setUserName(UserHandle.myUserId(),
109d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani                        newName.toString());
110d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani            }
111d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        }
112edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    }
113edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
114edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller}
115