[ScreenLock] Fix result code handling
Modify the back stack and result code propagation in the screen lock scenarios. - EncryptionInterstitial now propagates the result of ChooseLock* request instead of always returning RESULT_OK. - ChooseLockGeneric now treats CHOOSE_LOCK_REQUEST and ENABLE_ENCRYPTION_REQUEST the same (since encryption can be a proxy for ChooseLock*). This means ChooseLockGeneric will now stay on back stack when going back from ChooseLock*, just like the case (indirectly) through EncryptionInterstitial. Bug: 26177240 Change-Id: Id7f1256dcbff00d552a3e7db60c285f53f1e63e6
This commit is contained in:
@@ -248,13 +248,12 @@ public class ChooseLockGeneric extends SettingsActivity {
|
|||||||
mPasswordConfirmed = true;
|
mPasswordConfirmed = true;
|
||||||
mUserPassword = data.getStringExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD);
|
mUserPassword = data.getStringExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD);
|
||||||
updatePreferencesOrFinish();
|
updatePreferencesOrFinish();
|
||||||
} else if (requestCode == ENABLE_ENCRYPTION_REQUEST
|
} else if (requestCode == CHOOSE_LOCK_REQUEST
|
||||||
&& resultCode == Activity.RESULT_OK) {
|
|| requestCode == ENABLE_ENCRYPTION_REQUEST) {
|
||||||
getActivity().setResult(resultCode, data);
|
if (resultCode != RESULT_CANCELED) {
|
||||||
finish();
|
|
||||||
} else if (requestCode == CHOOSE_LOCK_REQUEST) {
|
|
||||||
getActivity().setResult(resultCode, data);
|
getActivity().setResult(resultCode, data);
|
||||||
finish();
|
finish();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
getActivity().setResult(Activity.RESULT_CANCELED);
|
getActivity().setResult(Activity.RESULT_CANCELED);
|
||||||
finish();
|
finish();
|
||||||
|
@@ -170,9 +170,8 @@ public class EncryptionInterstitial extends SettingsActivity {
|
|||||||
@Override
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
if (requestCode == CHOOSE_LOCK_REQUEST &&
|
if (requestCode == CHOOSE_LOCK_REQUEST && resultCode != RESULT_CANCELED) {
|
||||||
resultCode == RESULT_FIRST_USER) {
|
getActivity().setResult(resultCode, data);
|
||||||
getActivity().setResult(RESULT_OK, data);
|
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user