EncryptionInterstitial.java revision aa0376759873893197a0109025fd4ec8beca5929
146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller/*
246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller * Copyright (C) 2014 The Android Open Source Project
346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller *
446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller * Licensed under the Apache License, Version 2.0 (the "License");
546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller * you may not use this file except in compliance with the License.
646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller * You may obtain a copy of the License at
746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller *
846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller *      http://www.apache.org/licenses/LICENSE-2.0
946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller *
1046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller * Unless required by applicable law or agreed to in writing, software
1146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller * distributed under the License is distributed on an "AS IS" BASIS,
1246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller * See the License for the specific language governing permissions and
1446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller * limitations under the License
1546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller */
1646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
1746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerpackage com.android.settings;
1846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
1947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Millerimport com.android.internal.widget.LockPatternUtils;
2046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport com.android.settings.R;
2146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport com.android.settings.SettingsActivity;
2246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport com.android.settings.SettingsPreferenceFragment;
2346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
24aa0376759873893197a0109025fd4ec8beca5929Jim Millerimport java.util.List;
25aa0376759873893197a0109025fd4ec8beca5929Jim Miller
26aa0376759873893197a0109025fd4ec8beca5929Jim Millerimport android.accessibilityservice.AccessibilityServiceInfo;
2747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Millerimport android.app.AlertDialog;
2847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Millerimport android.app.Dialog;
2946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.app.admin.DevicePolicyManager;
3046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.content.Context;
3147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Millerimport android.content.DialogInterface;
3247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Millerimport android.content.DialogInterface.OnClickListener;
3346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.content.Intent;
3446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.os.Bundle;
3546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.view.LayoutInflater;
3646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.view.View;
3746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.view.ViewGroup;
3847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Millerimport android.view.accessibility.AccessibilityManager;
3946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.widget.RadioButton;
4046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.widget.TextView;
4146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
4246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerpublic class EncryptionInterstitial extends SettingsActivity {
4346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
4446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller    private static final String EXTRA_PASSWORD_QUALITY = "extra_password_quality";
450698a216311acd9ab52224602d1a75c08bf89f04Jim Miller    public static final String EXTRA_REQUIRE_PASSWORD = "extra_require_password";
4646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
4746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller    @Override
4846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller    public Intent getIntent() {
4946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        Intent modIntent = new Intent(super.getIntent());
5046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        modIntent.putExtra(EXTRA_SHOW_FRAGMENT, EncryptionInterstitialFragment.class.getName());
5146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        return modIntent;
5246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller    }
5346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
5446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller    @Override
5546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller    protected boolean isValidFragment(String fragmentName) {
5646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        return EncryptionInterstitialFragment.class.getName().equals(fragmentName);
5746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller    }
5846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
590698a216311acd9ab52224602d1a75c08bf89f04Jim Miller    public static Intent createStartIntent(Context ctx, int quality,
600698a216311acd9ab52224602d1a75c08bf89f04Jim Miller            boolean requirePasswordDefault) {
6146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        return new Intent(ctx, EncryptionInterstitial.class)
6246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                .putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, true)
6346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                .putExtra(EXTRA_PREFS_SET_BACK_TEXT, (String) null)
6446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                .putExtra(EXTRA_PREFS_SET_NEXT_TEXT, ctx.getString(
6546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                        R.string.encryption_continue_button))
6646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                .putExtra(EXTRA_PASSWORD_QUALITY, quality)
670698a216311acd9ab52224602d1a75c08bf89f04Jim Miller                .putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID, R.string.encryption_interstitial_header)
680698a216311acd9ab52224602d1a75c08bf89f04Jim Miller                .putExtra(EXTRA_REQUIRE_PASSWORD, requirePasswordDefault);
6946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller    }
7046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
7146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller    public static class EncryptionInterstitialFragment extends SettingsPreferenceFragment
7247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            implements View.OnClickListener, OnClickListener {
7346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
7447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller        private static final int ACCESSIBILITY_WARNING_DIALOG = 1;
7546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        private RadioButton mRequirePasswordToDecryptButton;
7646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        private RadioButton mDontRequirePasswordToDecryptButton;
7746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        private TextView mEncryptionMessage;
780698a216311acd9ab52224602d1a75c08bf89f04Jim Miller        private boolean mPasswordRequired;
7946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
8046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        @Override
8146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        public View onCreateView(LayoutInflater inflater, ViewGroup container,
8246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                Bundle savedInstanceState) {
8346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            final int layoutId = R.layout.encryption_interstitial;
8446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            View view = inflater.inflate(layoutId, container, false);
8546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            mRequirePasswordToDecryptButton =
8646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    (RadioButton) view.findViewById(R.id.encrypt_require_password);
8746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            mDontRequirePasswordToDecryptButton =
8846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    (RadioButton) view.findViewById(R.id.encrypt_dont_require_password);
8946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            mEncryptionMessage =
9046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    (TextView) view.findViewById(R.id.encryption_message);
9146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            int quality = getActivity().getIntent().getIntExtra(EXTRA_PASSWORD_QUALITY, 0);
9246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            final int msgId;
9346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            final int enableId;
9446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            final int disableId;
9546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            switch (quality) {
9646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
9746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    msgId = R.string.encryption_interstitial_message_pattern;
9846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    enableId = R.string.encrypt_require_pattern;
9946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    disableId = R.string.encrypt_dont_require_pattern;
10046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    break;
10146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
10246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
10346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    msgId = R.string.encryption_interstitial_message_pin;
10446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    enableId = R.string.encrypt_require_pin;
10546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    disableId = R.string.encrypt_dont_require_pin;
10646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    break;
10746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                default:
10846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    msgId = R.string.encryption_interstitial_message_password;
10946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    enableId = R.string.encrypt_require_password;
11046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    disableId = R.string.encrypt_dont_require_password;
11146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller                    break;
11246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            }
11346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            mEncryptionMessage.setText(msgId);
1140698a216311acd9ab52224602d1a75c08bf89f04Jim Miller
11546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            mRequirePasswordToDecryptButton.setOnClickListener(this);
11646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            mRequirePasswordToDecryptButton.setText(enableId);
1170698a216311acd9ab52224602d1a75c08bf89f04Jim Miller
11846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            mDontRequirePasswordToDecryptButton.setOnClickListener(this);
11946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            mDontRequirePasswordToDecryptButton.setText(disableId);
1200698a216311acd9ab52224602d1a75c08bf89f04Jim Miller
12147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            setRequirePasswordState(getActivity().getIntent().getBooleanExtra(
12247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                    EXTRA_REQUIRE_PASSWORD, true));
12346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller            return view;
12446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        }
12546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
12646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        @Override
1270698a216311acd9ab52224602d1a75c08bf89f04Jim Miller        public void onClick(View v) {
12847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            if (v == mRequirePasswordToDecryptButton) {
12947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                final boolean accEn = AccessibilityManager.getInstance(getActivity()).isEnabled();
13047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                if (accEn && !mPasswordRequired) {
13147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                    setRequirePasswordState(false); // clear the UI state
13247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                    showDialog(ACCESSIBILITY_WARNING_DIALOG);
13347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                } else {
13447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                    setRequirePasswordState(true);
13547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                }
13647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            } else {
13747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                setRequirePasswordState(false);
13847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            }
13947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller        }
14047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller
14147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller        @Override
14247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller        public Dialog onCreateDialog(int dialogId) {
14347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            switch(dialogId) {
14447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                case ACCESSIBILITY_WARNING_DIALOG: {
14547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                    final int quality = new LockPatternUtils(getActivity())
14647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                            .getKeyguardStoredPasswordQuality();
14747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                    final int titleId;
14847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                    final int messageId;
14947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                    switch (quality) {
15047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                        case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
15147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                            titleId = R.string.encrypt_talkback_dialog_require_pattern;
15247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                            messageId = R.string.encrypt_talkback_dialog_message_pattern;
15347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                            break;
15447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                        case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
15547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                        case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
15647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                            titleId = R.string.encrypt_talkback_dialog_require_pin;
15747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                            messageId = R.string.encrypt_talkback_dialog_message_pin;
15847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                            break;
15947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                        default:
16047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                            titleId = R.string.encrypt_talkback_dialog_require_password;
16147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                            messageId = R.string.encrypt_talkback_dialog_message_password;
16247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                            break;
16347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                    }
164aa0376759873893197a0109025fd4ec8beca5929Jim Miller
165aa0376759873893197a0109025fd4ec8beca5929Jim Miller
166aa0376759873893197a0109025fd4ec8beca5929Jim Miller                    List<AccessibilityServiceInfo> list =
167aa0376759873893197a0109025fd4ec8beca5929Jim Miller                            AccessibilityManager.getInstance(getActivity())
168aa0376759873893197a0109025fd4ec8beca5929Jim Miller                            .getEnabledAccessibilityServiceList(
169aa0376759873893197a0109025fd4ec8beca5929Jim Miller                                    AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
170aa0376759873893197a0109025fd4ec8beca5929Jim Miller                    final CharSequence exampleAccessibility;
171aa0376759873893197a0109025fd4ec8beca5929Jim Miller                    if (list.isEmpty()) {
172aa0376759873893197a0109025fd4ec8beca5929Jim Miller                        // This should never happen.  But we shouldn't crash
173aa0376759873893197a0109025fd4ec8beca5929Jim Miller                        exampleAccessibility = "";
174aa0376759873893197a0109025fd4ec8beca5929Jim Miller                    } else {
175aa0376759873893197a0109025fd4ec8beca5929Jim Miller                        exampleAccessibility = list.get(0).getResolveInfo()
176aa0376759873893197a0109025fd4ec8beca5929Jim Miller                                .loadLabel(getPackageManager());
177aa0376759873893197a0109025fd4ec8beca5929Jim Miller                    }
17847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                    return new AlertDialog.Builder(getActivity())
17947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                        .setTitle(titleId)
180aa0376759873893197a0109025fd4ec8beca5929Jim Miller                        .setMessage(getString(messageId, exampleAccessibility))
18147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                        .setCancelable(true)
18247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                        .setPositiveButton(android.R.string.ok, this)
18347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                        .setNegativeButton(android.R.string.cancel, this)
18447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                        .create();
18547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                }
18647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                default: throw new IllegalArgumentException();
18747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            }
18846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        }
18946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller
19047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller        private void setRequirePasswordState(boolean required) {
19147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            mPasswordRequired = required;
19247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            mRequirePasswordToDecryptButton.setChecked(required);
19347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            mDontRequirePasswordToDecryptButton.setChecked(!required);
19447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller
19547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            // Updates value returned by SettingsActivity.onActivityResult().
1960698a216311acd9ab52224602d1a75c08bf89f04Jim Miller            SettingsActivity sa = (SettingsActivity)getActivity();
1970698a216311acd9ab52224602d1a75c08bf89f04Jim Miller            Intent resultIntentData = sa.getResultIntentData();
1980698a216311acd9ab52224602d1a75c08bf89f04Jim Miller            resultIntentData = resultIntentData == null ? new Intent() : resultIntentData;
1990698a216311acd9ab52224602d1a75c08bf89f04Jim Miller            resultIntentData.putExtra(EXTRA_REQUIRE_PASSWORD, mPasswordRequired);
2000698a216311acd9ab52224602d1a75c08bf89f04Jim Miller            sa.setResultIntentData(resultIntentData);
20146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller        }
20247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller
20347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller        @Override
20447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller        public void onClick(DialogInterface dialog, int which) {
20547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            if (which == DialogInterface.BUTTON_POSITIVE) {
20647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                setRequirePasswordState(true);
20747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            } else if (which == DialogInterface.BUTTON_NEGATIVE) {
20847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller                setRequirePasswordState(false);
20947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller            }
21047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller        }
21146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller    }
21246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller}
213