mirror of
https://github.com/we-promise/sure.git
synced 2026-05-10 14:15:01 +00:00
* Feature: Biometric lock for app resume User enables "Biometric Lock" in Settings → prompted to verify fingerprint/face first. User backgrounds the app → _isLocked = true. User returns → lock screen appears, auto-triggers biometric prompt. Success → app unlocks, state preserved underneath. Can retry or log out as fallback. Add USE_BIOMETRIC permission to AndroidManifest. * Fix: Remove duplicate local_auth entry in pubspec.lock and add NSFaceIDUsageDescription to iOS Info.plist * fix(mobile) : Remove duplicate local auth files first * fix(mobile): keep MainNavigationScreen in the Stack, let the lock screen float above, no unmounting * Updtae: Swap out Flutter Activity for FlutterFragmentActivity that extends the lock scan feature * fix(mobile): address biometric lock PR review feedback * fix(mobile): only require biometric auth when enabling lock, not disabling Prevents users from getting locked out if biometrics start failing — they can now disable the lock without needing to pass biometric auth. * fix(mobile): add missing closing brace in setBiometricEnabled --------- Signed-off-by: Tristan Katana <50181095+felixmuinde@users.noreply.github.com>
40 lines
1.7 KiB
XML
40 lines
1.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
|
|
<uses-permission android:name="android.permission.INTERNET"/>
|
|
<uses-permission android:name="android.permission.USE_BIOMETRIC"/>
|
|
|
|
<application
|
|
android:label="Sure Finances"
|
|
android:name="${applicationName}"
|
|
android:icon="@mipmap/ic_launcher">
|
|
<activity
|
|
android:name=".MainActivity"
|
|
android:exported="true"
|
|
android:launchMode="singleTop"
|
|
android:theme="@style/LaunchTheme"
|
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
|
android:hardwareAccelerated="true"
|
|
android:windowSoftInputMode="adjustResize">
|
|
<meta-data
|
|
android:name="io.flutter.embedding.android.NormalTheme"
|
|
android:resource="@style/NormalTheme"
|
|
/>
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.MAIN"/>
|
|
<category android:name="android.intent.category.LAUNCHER"/>
|
|
</intent-filter>
|
|
<!-- Deep link for OAuth callback -->
|
|
<intent-filter>
|
|
<action android:name="android.intent.action.VIEW" />
|
|
<category android:name="android.intent.category.DEFAULT" />
|
|
<category android:name="android.intent.category.BROWSABLE" />
|
|
<data android:scheme="sureapp" android:host="oauth" android:pathPrefix="/callback" />
|
|
</intent-filter>
|
|
</activity>
|
|
<meta-data
|
|
android:name="flutterEmbedding"
|
|
android:value="2" />
|
|
</application>
|
|
</manifest>
|