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