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
193bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monkimport android.app.AlertDialog;
203bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monkimport android.app.Dialog;
213bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monkimport android.app.DialogFragment;
22edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.app.Fragment;
233bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monkimport android.content.DialogInterface;
243bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monkimport android.content.DialogInterface.OnClickListener;
25edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.os.Bundle;
268666b9e170c23a9595d611a49b7c8262e357ced1Amith Yamasaniimport android.os.UserHandle;
27d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasaniimport android.text.TextUtils;
28edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.view.LayoutInflater;
29edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.view.View;
30edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.widget.EditText;
31edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
3299b50ae5844b847ff60350ecb9266f569dbbefdfJim Millerimport com.android.internal.widget.LockPatternUtils;
3399b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller
343bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monkpublic class OwnerInfoSettings extends DialogFragment implements OnClickListener {
35d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani
363bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    private static final String TAG_OWNER_INFO = "ownerInfo";
373bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk
38edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    private View mView;
3999b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller    private int mUserId;
4099b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller    private LockPatternUtils mLockPatternUtils;
41d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    private EditText mOwnerInfo;
42d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani
43d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    @Override
44d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    public void onCreate(Bundle savedInstanceState) {
45d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        super.onCreate(savedInstanceState);
463bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        mUserId = UserHandle.myUserId();
473bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        mLockPatternUtils = new LockPatternUtils(getActivity());
48d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    }
49edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
50edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    @Override
513bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    public Dialog onCreateDialog(Bundle savedInstanceState) {
523bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        mView = LayoutInflater.from(getActivity()).inflate(R.layout.ownerinfo, null);
530592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio        initView();
543bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        return new AlertDialog.Builder(getActivity())
553bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk                .setTitle(R.string.owner_info_settings_title)
563bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk                .setView(mView)
573bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk                .setPositiveButton(R.string.save, this)
583bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk                .setNegativeButton(R.string.cancel, this)
593bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk                .show();
60edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    }
61edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
620592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio    private void initView() {
630592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio        String info = mLockPatternUtils.getOwnerInfo(mUserId);
640592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio
650592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio        mOwnerInfo = (EditText) mView.findViewById(R.id.owner_info_edit_text);
660592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio        if (!TextUtils.isEmpty(info)) {
670592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio            mOwnerInfo.setText(info);
680592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio        }
69edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    }
70edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
713bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    @Override
723bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    public void onClick(DialogInterface dialog, int which) {
733bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        if (which == AlertDialog.BUTTON_POSITIVE) {
743bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk            String info = mOwnerInfo.getText().toString();
755437588abd69bf3eff59684528aaf50e09b6cffcAdrian Roos            mLockPatternUtils.setOwnerInfoEnabled(!TextUtils.isEmpty(info), mUserId);
763bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk            mLockPatternUtils.setOwnerInfo(info, mUserId);
773bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk
7862775bf756a8eca9423bb4fab3fc7b71ab22d1a7Adrian Roos            if (getTargetFragment() instanceof SecuritySettings.SecuritySubSettings) {
7962775bf756a8eca9423bb4fab3fc7b71ab22d1a7Adrian Roos                ((SecuritySettings.SecuritySubSettings) getTargetFragment()).updateOwnerInfo();
80d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani            }
81d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        }
82edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    }
833bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk
843bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    public static void show(Fragment parent) {
853bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        if (!parent.isAdded()) return;
863bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk
873bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        final OwnerInfoSettings dialog = new OwnerInfoSettings();
883bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        dialog.setTargetFragment(parent, 0);
893bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        dialog.show(parent.getFragmentManager(), TAG_OWNER_INFO);
903bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    }
91edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller}
92