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