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;
21edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.app.Fragment;
223bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monkimport android.content.DialogInterface;
233bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monkimport android.content.DialogInterface.OnClickListener;
24edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.os.Bundle;
258666b9e170c23a9595d611a49b7c8262e357ced1Amith Yamasaniimport android.os.UserHandle;
26d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasaniimport android.text.TextUtils;
27edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.view.LayoutInflater;
28edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.view.View;
29edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Millerimport android.widget.EditText;
30edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
31265d3c2a0c36251bf8a9f571d7239b6dd404d942Tamas Berghammerimport com.android.internal.logging.nano.MetricsProto;
3299b50ae5844b847ff60350ecb9266f569dbbefdfJim Millerimport com.android.internal.widget.LockPatternUtils;
33ac5e5932233eb4b485bd76087987182009be2c2fFan Zhangimport com.android.settings.core.instrumentation.InstrumentedDialogFragment;
3493582995daff3b92b89a24c271fbd719293a41daDoris Lingimport com.android.settings.security.OwnerInfoPreferenceController.OwnerInfoCallback;
3599b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller
36ac5e5932233eb4b485bd76087987182009be2c2fFan Zhangpublic class OwnerInfoSettings extends InstrumentedDialogFragment implements OnClickListener {
37d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani
383bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    private static final String TAG_OWNER_INFO = "ownerInfo";
393bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk
40edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    private View mView;
4199b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller    private int mUserId;
4299b50ae5844b847ff60350ecb9266f569dbbefdfJim Miller    private LockPatternUtils mLockPatternUtils;
43d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    private EditText mOwnerInfo;
44d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani
45d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    @Override
46d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    public void onCreate(Bundle savedInstanceState) {
47d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        super.onCreate(savedInstanceState);
483bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        mUserId = UserHandle.myUserId();
493bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        mLockPatternUtils = new LockPatternUtils(getActivity());
50d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani    }
51edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
52edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    @Override
533bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    public Dialog onCreateDialog(Bundle savedInstanceState) {
543bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        mView = LayoutInflater.from(getActivity()).inflate(R.layout.ownerinfo, null);
550592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio        initView();
563bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        return new AlertDialog.Builder(getActivity())
573bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk                .setTitle(R.string.owner_info_settings_title)
583bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk                .setView(mView)
593bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk                .setPositiveButton(R.string.save, this)
603bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk                .setNegativeButton(R.string.cancel, this)
613bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk                .show();
62edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    }
63edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
640592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio    private void initView() {
650592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio        String info = mLockPatternUtils.getOwnerInfo(mUserId);
660592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio
670592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio        mOwnerInfo = (EditText) mView.findViewById(R.id.owner_info_edit_text);
680592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio        if (!TextUtils.isEmpty(info)) {
690592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio            mOwnerInfo.setText(info);
700592a21fd8d95b2e00fbd93419df790856fc74c1Fabrice Di Meglio        }
71edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    }
72edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller
733bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    @Override
743bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    public void onClick(DialogInterface dialog, int which) {
753bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        if (which == AlertDialog.BUTTON_POSITIVE) {
763bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk            String info = mOwnerInfo.getText().toString();
775437588abd69bf3eff59684528aaf50e09b6cffcAdrian Roos            mLockPatternUtils.setOwnerInfoEnabled(!TextUtils.isEmpty(info), mUserId);
783bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk            mLockPatternUtils.setOwnerInfo(info, mUserId);
793bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk
8093582995daff3b92b89a24c271fbd719293a41daDoris Ling            if (getTargetFragment() instanceof OwnerInfoCallback) {
8193582995daff3b92b89a24c271fbd719293a41daDoris Ling                ((OwnerInfoCallback) getTargetFragment()).onOwnerInfoUpdated();
82d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani            }
83d4abdd27adac36e7243bcaae37a7a2c69ac73db7Amith Yamasani        }
84edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller    }
853bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk
863bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    public static void show(Fragment parent) {
873bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        if (!parent.isAdded()) return;
883bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk
893bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        final OwnerInfoSettings dialog = new OwnerInfoSettings();
903bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        dialog.setTargetFragment(parent, 0);
913bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk        dialog.show(parent.getFragmentManager(), TAG_OWNER_INFO);
923bcd76ce63c77b229e2d25a0191ccb568824f5c4Jason Monk    }
93ac5e5932233eb4b485bd76087987182009be2c2fFan Zhang
94ac5e5932233eb4b485bd76087987182009be2c2fFan Zhang    @Override
95ac5e5932233eb4b485bd76087987182009be2c2fFan Zhang    public int getMetricsCategory() {
96ac5e5932233eb4b485bd76087987182009be2c2fFan Zhang        return MetricsProto.MetricsEvent.DIALOG_OWNER_INFO_SETTINGS;
97ac5e5932233eb4b485bd76087987182009be2c2fFan Zhang    }
98edfaaeaed7e7329620b8e9d62a62aa41f09ad787Jim Miller}
99