am c02a09aa: Merge "Fix 2594148: confirm PIN/Password before resetting device" into froyo

Merge commit 'c02a09aa565318f37d9481d05d50610fe722e4b4' into kraken

* commit 'c02a09aa565318f37d9481d05d50610fe722e4b4':
  Fix 2594148: confirm PIN/Password before resetting device
This commit is contained in:
Jim Miller
2010-04-14 16:30:49 -07:00
committed by Android Git Automerger
6 changed files with 36 additions and 33 deletions

View File

@@ -54,7 +54,7 @@ public class ChooseLockGeneric extends PreferenceActivity {
if (!mPasswordConfirmed) {
ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(this);
if (!helper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST)) {
if (!helper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST, null, null)) {
mPasswordConfirmed = true; // no password set, so no need to confirm
updatePreferencesOrFinish();
}

View File

@@ -119,7 +119,8 @@ public class ChooseLockPassword extends Activity implements OnClickListener, OnE
if (savedInstanceState == null) {
updateStage(Stage.Introduction);
if (confirmCredentials) {
mChooseLockSettingsHelper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST);
mChooseLockSettingsHelper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST,
null, null);
}
}
}

View File

@@ -288,7 +288,8 @@ public class ChooseLockPattern extends Activity implements View.OnClickListener{
// there isn't an existing password or the user confirms their password.
updateStage(Stage.NeedToConfirm);
boolean launchedConfirmationActivity =
mChooseLockSettingsHelper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST);
mChooseLockSettingsHelper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST,
null, null);
if (!launchedConfirmationActivity) {
updateStage(Stage.Introduction);
}

View File

@@ -37,18 +37,22 @@ public class ChooseLockSettingsHelper {
/**
* If a pattern, password or PIN exists, prompt the user before allowing them to change it.
* @param message optional message to display about the action about to be done
* @param details optional detail message to display
* @return true if one exists and we launched an activity to confirm it
* @see #onActivityResult(int, int, android.content.Intent)
*/
protected boolean launchConfirmationActivity(int request) {
protected boolean launchConfirmationActivity(int request,
CharSequence message, CharSequence details) {
boolean launched = false;
switch (mLockPatternUtils.getKeyguardStoredPasswordQuality()) {
case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
launched = confirmPattern(request);
launched = confirmPattern(request, message, details);
break;
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
// TODO: update UI layout for ConfirmPassword to show message and details
launched = confirmPassword(request);
break;
}
@@ -57,14 +61,19 @@ public class ChooseLockSettingsHelper {
/**
* Launch screen to confirm the existing lock pattern.
* @param message shown in header of ConfirmLockPattern if not null
* @param details shown in footer of ConfirmLockPattern if not null
* @see #onActivityResult(int, int, android.content.Intent)
* @return true if we launched an activity to confirm pattern
*/
private boolean confirmPattern(int request) {
private boolean confirmPattern(int request, CharSequence message, CharSequence details) {
if (!mLockPatternUtils.isLockPatternEnabled() || !mLockPatternUtils.savedPatternExists()) {
return false;
}
final Intent intent = new Intent();
// supply header and footer text in the intent
intent.putExtra(ConfirmLockPattern.HEADER_TEXT, message);
intent.putExtra(ConfirmLockPattern.FOOTER_TEXT, details);
intent.setClassName("com.android.settings", "com.android.settings.ConfirmLockPattern");
mActivity.startActivityForResult(intent, request);
return true;

View File

@@ -69,19 +69,16 @@ public class MasterClear extends Activity {
};
/**
* Keyguard validation is run using the standard {@link ConfirmLockPattern}
* Keyguard validation is run using the standard {@link ConfirmLockPattern}
* component as a subactivity
* @param request the request code to be returned once confirmation finishes
* @return true if confirmation launched
*/
private void runKeyguardConfirmation() {
final Intent intent = new Intent();
intent.setClassName("com.android.settings",
"com.android.settings.ConfirmLockPattern");
// supply header and footer text in the intent
intent.putExtra(ConfirmLockPattern.HEADER_TEXT,
getText(R.string.master_clear_gesture_prompt));
intent.putExtra(ConfirmLockPattern.FOOTER_TEXT,
getText(R.string.master_clear_gesture_explanation));
startActivityForResult(intent, KEYGUARD_REQUEST);
private boolean runKeyguardConfirmation(int request) {
return new ChooseLockSettingsHelper(this)
.launchConfirmationActivity(request,
getText(R.string.master_clear_gesture_prompt),
getText(R.string.master_clear_gesture_explanation));
}
@Override
@@ -96,6 +93,8 @@ public class MasterClear extends Activity {
// confirmation prompt; otherwise, go back to the initial state.
if (resultCode == Activity.RESULT_OK) {
establishFinalConfirmationState();
} else if (resultCode == Activity.RESULT_CANCELED) {
finish();
} else {
establishInitialState();
}
@@ -108,9 +107,7 @@ public class MasterClear extends Activity {
*/
private Button.OnClickListener mInitiateListener = new Button.OnClickListener() {
public void onClick(View v) {
if (mLockUtils.isLockPatternEnabled()) {
runKeyguardConfirmation();
} else {
if (!runKeyguardConfirmation(KEYGUARD_REQUEST)) {
establishFinalConfirmationState();
}
}

View File

@@ -88,16 +88,11 @@ public class MediaFormat extends Activity {
* Keyguard validation is run using the standard {@link ConfirmLockPattern}
* component as a subactivity
*/
private void runKeyguardConfirmation() {
final Intent intent = new Intent();
intent.setClassName("com.android.settings",
"com.android.settings.ConfirmLockPattern");
// supply header and footer text in the intent
intent.putExtra(ConfirmLockPattern.HEADER_TEXT,
getText(R.string.media_format_gesture_prompt));
intent.putExtra(ConfirmLockPattern.FOOTER_TEXT,
getText(R.string.media_format_gesture_explanation));
startActivityForResult(intent, KEYGUARD_REQUEST);
private boolean runKeyguardConfirmation(int request) {
return new ChooseLockSettingsHelper(this)
.launchConfirmationActivity(request,
getText(R.string.media_format_gesture_prompt),
getText(R.string.media_format_gesture_explanation));
}
@Override
@@ -112,6 +107,8 @@ public class MediaFormat extends Activity {
// confirmation prompt; otherwise, go back to the initial state.
if (resultCode == Activity.RESULT_OK) {
establishFinalConfirmationState();
} else if (resultCode == Activity.RESULT_CANCELED) {
finish();
} else {
establishInitialState();
}
@@ -124,9 +121,7 @@ public class MediaFormat extends Activity {
*/
private Button.OnClickListener mInitiateListener = new Button.OnClickListener() {
public void onClick(View v) {
if (mLockUtils.isLockPatternEnabled()) {
runKeyguardConfirmation();
} else {
if (!runKeyguardConfirmation(KEYGUARD_REQUEST)) {
establishFinalConfirmationState();
}
}