EncryptionInterstitial.java revision 39b467482d1bf256a111c757e9b7621c6f523271
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 19aa0376759873893197a0109025fd4ec8beca5929Jim Millerimport android.accessibilityservice.AccessibilityServiceInfo; 2047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Millerimport android.app.AlertDialog; 2147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Millerimport android.app.Dialog; 2246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.app.admin.DevicePolicyManager; 2346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.content.Context; 2447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Millerimport android.content.DialogInterface; 2547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Millerimport android.content.DialogInterface.OnClickListener; 2646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.content.Intent; 2746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.os.Bundle; 285437588abd69bf3eff59684528aaf50e09b6cffcAdrian Roosimport android.os.UserHandle; 2946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.view.LayoutInflater; 3046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.view.View; 3146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.view.ViewGroup; 3247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Millerimport android.view.accessibility.AccessibilityManager; 3346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.widget.RadioButton; 3446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerimport android.widget.TextView; 3546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller 3639b467482d1bf256a111c757e9b7621c6f523271Jason Monkimport com.android.internal.logging.MetricsLogger; 3739b467482d1bf256a111c757e9b7621c6f523271Jason Monkimport com.android.internal.widget.LockPatternUtils; 3839b467482d1bf256a111c757e9b7621c6f523271Jason Monk 3939b467482d1bf256a111c757e9b7621c6f523271Jason Monkimport java.util.List; 4039b467482d1bf256a111c757e9b7621c6f523271Jason Monk 4146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Millerpublic class EncryptionInterstitial extends SettingsActivity { 4246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller 430973c31db164e09cb5be275cf0f991dd208ee0faMaurice Lam protected static final String EXTRA_PASSWORD_QUALITY = "extra_password_quality"; 440698a216311acd9ab52224602d1a75c08bf89f04Jim Miller public static final String EXTRA_REQUIRE_PASSWORD = "extra_require_password"; 4546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller 4646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller @Override 4746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller public Intent getIntent() { 4846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller Intent modIntent = new Intent(super.getIntent()); 4946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller modIntent.putExtra(EXTRA_SHOW_FRAGMENT, EncryptionInterstitialFragment.class.getName()); 5046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller return modIntent; 5146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller } 5246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller 5346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller @Override 5446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller protected boolean isValidFragment(String fragmentName) { 5546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller return EncryptionInterstitialFragment.class.getName().equals(fragmentName); 5646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller } 5746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller 580698a216311acd9ab52224602d1a75c08bf89f04Jim Miller public static Intent createStartIntent(Context ctx, int quality, 590698a216311acd9ab52224602d1a75c08bf89f04Jim Miller boolean requirePasswordDefault) { 6046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller return new Intent(ctx, EncryptionInterstitial.class) 6146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller .putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, true) 6246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller .putExtra(EXTRA_PREFS_SET_BACK_TEXT, (String) null) 6346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller .putExtra(EXTRA_PREFS_SET_NEXT_TEXT, ctx.getString( 6446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller R.string.encryption_continue_button)) 6546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller .putExtra(EXTRA_PASSWORD_QUALITY, quality) 660698a216311acd9ab52224602d1a75c08bf89f04Jim Miller .putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID, R.string.encryption_interstitial_header) 670698a216311acd9ab52224602d1a75c08bf89f04Jim Miller .putExtra(EXTRA_REQUIRE_PASSWORD, requirePasswordDefault); 6846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller } 6946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller 7046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller public static class EncryptionInterstitialFragment extends SettingsPreferenceFragment 7147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller implements View.OnClickListener, OnClickListener { 7246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller 7347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller private static final int ACCESSIBILITY_WARNING_DIALOG = 1; 7446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller private RadioButton mRequirePasswordToDecryptButton; 7546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller private RadioButton mDontRequirePasswordToDecryptButton; 7646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller private TextView mEncryptionMessage; 770698a216311acd9ab52224602d1a75c08bf89f04Jim Miller private boolean mPasswordRequired; 7846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller 7946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller @Override 808a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren protected int getMetricsCategory() { 818a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren return MetricsLogger.ENCRYPTION; 828a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren } 838a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren 848a963babe2e36b7a41f77b8d2598c97658196e58Chris Wren @Override 8546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller public View onCreateView(LayoutInflater inflater, ViewGroup container, 8646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller Bundle savedInstanceState) { 877e831030201fcac9ca0acc9684497dc44cea7023Maurice Lam return inflater.inflate(R.layout.encryption_interstitial, container, false); 887e831030201fcac9ca0acc9684497dc44cea7023Maurice Lam } 897e831030201fcac9ca0acc9684497dc44cea7023Maurice Lam 907e831030201fcac9ca0acc9684497dc44cea7023Maurice Lam @Override 917e831030201fcac9ca0acc9684497dc44cea7023Maurice Lam public void onViewCreated(View view, Bundle savedInstanceState) { 927e831030201fcac9ca0acc9684497dc44cea7023Maurice Lam super.onViewCreated(view, savedInstanceState); 9346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller mRequirePasswordToDecryptButton = 9446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller (RadioButton) view.findViewById(R.id.encrypt_require_password); 9546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller mDontRequirePasswordToDecryptButton = 9646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller (RadioButton) view.findViewById(R.id.encrypt_dont_require_password); 9746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller mEncryptionMessage = 9846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller (TextView) view.findViewById(R.id.encryption_message); 99c0e7879684d7d9c5cd102b124ee8cf1a2637d49dMaurice Lam boolean forFingerprint = getActivity().getIntent().getBooleanExtra( 100c0e7879684d7d9c5cd102b124ee8cf1a2637d49dMaurice Lam ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false); 10146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller int quality = getActivity().getIntent().getIntExtra(EXTRA_PASSWORD_QUALITY, 0); 10246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller final int msgId; 10346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller final int enableId; 10446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller final int disableId; 10546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller switch (quality) { 10646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: 107c0e7879684d7d9c5cd102b124ee8cf1a2637d49dMaurice Lam msgId = forFingerprint ? 108c0e7879684d7d9c5cd102b124ee8cf1a2637d49dMaurice Lam R.string.encryption_interstitial_message_pattern_for_fingerprint : 109c0e7879684d7d9c5cd102b124ee8cf1a2637d49dMaurice Lam R.string.encryption_interstitial_message_pattern; 11046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller enableId = R.string.encrypt_require_pattern; 11146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller disableId = R.string.encrypt_dont_require_pattern; 11246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller break; 11346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC: 11446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX: 115c0e7879684d7d9c5cd102b124ee8cf1a2637d49dMaurice Lam msgId = forFingerprint ? 116c0e7879684d7d9c5cd102b124ee8cf1a2637d49dMaurice Lam R.string.encryption_interstitial_message_pin_for_fingerprint : 117c0e7879684d7d9c5cd102b124ee8cf1a2637d49dMaurice Lam R.string.encryption_interstitial_message_pin; 11846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller enableId = R.string.encrypt_require_pin; 11946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller disableId = R.string.encrypt_dont_require_pin; 12046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller break; 12146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller default: 122c0e7879684d7d9c5cd102b124ee8cf1a2637d49dMaurice Lam msgId = forFingerprint ? 123c0e7879684d7d9c5cd102b124ee8cf1a2637d49dMaurice Lam R.string.encryption_interstitial_message_password_for_fingerprint : 124c0e7879684d7d9c5cd102b124ee8cf1a2637d49dMaurice Lam R.string.encryption_interstitial_message_password; 12546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller enableId = R.string.encrypt_require_password; 12646c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller disableId = R.string.encrypt_dont_require_password; 12746c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller break; 12846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller } 12946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller mEncryptionMessage.setText(msgId); 1300698a216311acd9ab52224602d1a75c08bf89f04Jim Miller 13146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller mRequirePasswordToDecryptButton.setOnClickListener(this); 13246c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller mRequirePasswordToDecryptButton.setText(enableId); 1330698a216311acd9ab52224602d1a75c08bf89f04Jim Miller 13446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller mDontRequirePasswordToDecryptButton.setOnClickListener(this); 13546c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller mDontRequirePasswordToDecryptButton.setText(disableId); 1360698a216311acd9ab52224602d1a75c08bf89f04Jim Miller 13747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller setRequirePasswordState(getActivity().getIntent().getBooleanExtra( 13847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller EXTRA_REQUIRE_PASSWORD, true)); 13946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller } 14046c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller 14146c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller @Override 1420698a216311acd9ab52224602d1a75c08bf89f04Jim Miller public void onClick(View v) { 14347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller if (v == mRequirePasswordToDecryptButton) { 14447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller final boolean accEn = AccessibilityManager.getInstance(getActivity()).isEnabled(); 14547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller if (accEn && !mPasswordRequired) { 14647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller setRequirePasswordState(false); // clear the UI state 14747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller showDialog(ACCESSIBILITY_WARNING_DIALOG); 14847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller } else { 14947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller setRequirePasswordState(true); 15047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller } 15147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller } else { 15247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller setRequirePasswordState(false); 15347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller } 15447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller } 15547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller 15647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller @Override 15747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller public Dialog onCreateDialog(int dialogId) { 15847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller switch(dialogId) { 15947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller case ACCESSIBILITY_WARNING_DIALOG: { 16047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller final int quality = new LockPatternUtils(getActivity()) 1615437588abd69bf3eff59684528aaf50e09b6cffcAdrian Roos .getKeyguardStoredPasswordQuality(UserHandle.myUserId()); 16247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller final int titleId; 16347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller final int messageId; 16447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller switch (quality) { 16547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: 16647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller titleId = R.string.encrypt_talkback_dialog_require_pattern; 16747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller messageId = R.string.encrypt_talkback_dialog_message_pattern; 16847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller break; 16947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC: 17047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX: 17147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller titleId = R.string.encrypt_talkback_dialog_require_pin; 17247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller messageId = R.string.encrypt_talkback_dialog_message_pin; 17347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller break; 17447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller default: 17547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller titleId = R.string.encrypt_talkback_dialog_require_password; 17647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller messageId = R.string.encrypt_talkback_dialog_message_password; 17747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller break; 17847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller } 179aa0376759873893197a0109025fd4ec8beca5929Jim Miller 180aa0376759873893197a0109025fd4ec8beca5929Jim Miller 181aa0376759873893197a0109025fd4ec8beca5929Jim Miller List<AccessibilityServiceInfo> list = 182aa0376759873893197a0109025fd4ec8beca5929Jim Miller AccessibilityManager.getInstance(getActivity()) 183aa0376759873893197a0109025fd4ec8beca5929Jim Miller .getEnabledAccessibilityServiceList( 184aa0376759873893197a0109025fd4ec8beca5929Jim Miller AccessibilityServiceInfo.FEEDBACK_ALL_MASK); 185aa0376759873893197a0109025fd4ec8beca5929Jim Miller final CharSequence exampleAccessibility; 186aa0376759873893197a0109025fd4ec8beca5929Jim Miller if (list.isEmpty()) { 187aa0376759873893197a0109025fd4ec8beca5929Jim Miller // This should never happen. But we shouldn't crash 188aa0376759873893197a0109025fd4ec8beca5929Jim Miller exampleAccessibility = ""; 189aa0376759873893197a0109025fd4ec8beca5929Jim Miller } else { 190aa0376759873893197a0109025fd4ec8beca5929Jim Miller exampleAccessibility = list.get(0).getResolveInfo() 191aa0376759873893197a0109025fd4ec8beca5929Jim Miller .loadLabel(getPackageManager()); 192aa0376759873893197a0109025fd4ec8beca5929Jim Miller } 19347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller return new AlertDialog.Builder(getActivity()) 19447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller .setTitle(titleId) 195aa0376759873893197a0109025fd4ec8beca5929Jim Miller .setMessage(getString(messageId, exampleAccessibility)) 19647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller .setCancelable(true) 19747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller .setPositiveButton(android.R.string.ok, this) 19847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller .setNegativeButton(android.R.string.cancel, this) 19947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller .create(); 20047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller } 20147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller default: throw new IllegalArgumentException(); 20247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller } 20346c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller } 20446c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller 20547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller private void setRequirePasswordState(boolean required) { 20647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller mPasswordRequired = required; 20747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller mRequirePasswordToDecryptButton.setChecked(required); 20847adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller mDontRequirePasswordToDecryptButton.setChecked(!required); 20947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller 21047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller // Updates value returned by SettingsActivity.onActivityResult(). 2110698a216311acd9ab52224602d1a75c08bf89f04Jim Miller SettingsActivity sa = (SettingsActivity)getActivity(); 2120698a216311acd9ab52224602d1a75c08bf89f04Jim Miller Intent resultIntentData = sa.getResultIntentData(); 21359864d2ce7801251d98c8f5fc3683eab556948d8Jim Miller if (resultIntentData == null) { 21459864d2ce7801251d98c8f5fc3683eab556948d8Jim Miller resultIntentData = new Intent(); 21559864d2ce7801251d98c8f5fc3683eab556948d8Jim Miller sa.setResultIntentData(resultIntentData); 21659864d2ce7801251d98c8f5fc3683eab556948d8Jim Miller } 2170698a216311acd9ab52224602d1a75c08bf89f04Jim Miller resultIntentData.putExtra(EXTRA_REQUIRE_PASSWORD, mPasswordRequired); 21846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller } 21947adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller 22047adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller @Override 22147adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller public void onClick(DialogInterface dialog, int which) { 22247adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller if (which == DialogInterface.BUTTON_POSITIVE) { 22347adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller setRequirePasswordState(true); 22447adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller } else if (which == DialogInterface.BUTTON_NEGATIVE) { 22547adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller setRequirePasswordState(false); 22647adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller } 22747adff0a8bb4aeeefe6e3d3efc0b2579f6754af0Jim Miller } 22846c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller } 22946c7f6d6f32efec26bc9343f591ad1ddbe8f3b4aJim Miller} 230