0d80df07f6
Biometric lock: opt-in Face ID/Touch ID/fingerprint app lock with toggle in ProfileScreen. Locks on background, requires auth on foreground return. Platform implementations: BiometricPrompt (Android), LAContext (iOS). Rate limit: 429 responses parsed with Retry-After header, user-friendly error messages in all 10 locales, retry plugin respects 429. ErrorMessageParser updated for both iOS Swift and KMM.
29 lines
1.1 KiB
Kotlin
29 lines
1.1 KiB
Kotlin
package com.tt.honeyDue
|
|
|
|
import androidx.compose.ui.window.ComposeUIViewController
|
|
import com.tt.honeyDue.storage.TokenManager
|
|
import com.tt.honeyDue.storage.TokenStorage
|
|
import com.tt.honeyDue.storage.TaskCacheManager
|
|
import com.tt.honeyDue.storage.TaskCacheStorage
|
|
import com.tt.honeyDue.storage.BiometricPreference
|
|
import com.tt.honeyDue.storage.BiometricPreferenceManager
|
|
import com.tt.honeyDue.storage.ThemeStorage
|
|
import com.tt.honeyDue.storage.ThemeStorageManager
|
|
import com.tt.honeyDue.ui.theme.ThemeManager
|
|
|
|
fun MainViewController() = ComposeUIViewController {
|
|
// Initialize TokenStorage with iOS TokenManager
|
|
TokenStorage.initialize(TokenManager.getInstance())
|
|
|
|
// Initialize TaskCacheStorage for offline task caching
|
|
TaskCacheStorage.initialize(TaskCacheManager.getInstance())
|
|
|
|
// Initialize ThemeStorage and ThemeManager
|
|
ThemeStorage.initialize(ThemeStorageManager.getInstance())
|
|
ThemeManager.initialize()
|
|
|
|
// Initialize BiometricPreference storage
|
|
BiometricPreference.initialize(BiometricPreferenceManager.getInstance())
|
|
|
|
App()
|
|
} |