[Fingerprint] Send RESULT_CANCELED when back from Add another

Forward the result in the enrolling screen from the finish screen,
so that if the user presses back in "Add another" after enrolling
the first fingerprint, it will return RESULT_CANCELED instead of
RESULT_FINISHED, and go back to find sensor screen.

This results in the following behavioral changes:
- RESULT_FINISHED will only be sent if the user presses "Done" in
  FingerprintEnrollFinish. If the user clicks back in
  FingerprintEnrollEnrolling, they will always go back to the
  previous screen with RESULT_CANCELED, which would either be
  FindSensor or FingerprintSettings.
- If the user presses back in FingerprintEnrollFinish, which is only
  possible outside of Setup Wizard, they will be back in Find Sensor,
  and pressing next will enroll an additional fingerprint.
  - Edge case: if the user enrolled the maximum number of
    fingerprints, and presses back, they will be bounced all the way
    back to Settings > Security.

Bug: 22552741
Change-Id: Ifc5e8a9150491b4303e01ebd0fc17b6d39dd372d
This commit is contained in:
Maurice Lam
2015-07-17 13:16:40 -07:00
parent d85fafce30
commit da433902d4
3 changed files with 11 additions and 1 deletions

View File

@@ -214,9 +214,9 @@ public class FingerprintEnrollEnrolling extends FingerprintEnrollBase
private void launchFinish(byte[] token) {
Intent intent = getFinishIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
startActivity(intent);
setResult(RESULT_FINISHED);
finish();
}