[MOD-2588] Android: Add fallback support to password, pin, or touch-pattern in "ti.identity"

GitHub Issuen/a
TypeNew Feature
Resolution Date2020-07-27T17:52:10.000+0000
Affected Version/sn/a
Fix Version/sRelease 9.1.0
Labels2020-Q3, android, module, passcode, password, ti.identity
ReporterJoshua Quick
AssigneeAkansha Maheshwari


*Summary:* The "ti.identity" module for Android should fallback to using the device's password, pin, or touch-pattern if a biometric means of identification (ie: touch id or face id) is not available. *To-Do:* When setting up the Java BiometricPrompt.PromptInfo.Builder, we should call the setDeviceCredentialAllowed() and to true to enable fallback support... but only https://developer.android.com/training/sign-in/biometric-auth#allow-fallback We should only set it to true if the module's AUTHENTICATION_POLICY_PASSCODE is set. This is for parity with iOS. Currently, we prompt in the following 2 places in the code... [FingerPrintHelper.java#L127](https://github.com/appcelerator-modules/titanium-identity/blob/3e0d849bf6e157df60b48efd272857fa4c3e8b4f/android/src/ti/identity/FingerPrintHelper.java#L127) [KeychainItemProxy.java#L159](https://github.com/appcelerator-modules/titanium-identity/blob/3e0d849bf6e157df60b48efd272857fa4c3e8b4f/android/src/ti/identity/KeychainItemProxy.java#L159)


  1. Akansha Maheshwari 2020-04-21 https://github.com/appcelerator-modules/titanium-identity/pull/52 In this, i add the fallback for the device's when the biometric means of identification is not available in the Module's TiIdentity.authenticate method.
  2. Lokesh Choudhary 2020-07-27 [~jquick], This will need a module ver update to 3.0.2 in the SDK repo as well as this is included with the SDK.
  3. Christopher Williams 2020-07-27 merged PR including it in SDK to master. Cherry-picked to 9_1_X and 9_3_X branches.
  4. Lokesh Choudhary 2020-07-27 Verified module have been added to SDK branches. Closing.

JSON Source