@@ -8,6 +8,8 @@ import android.view.WindowManager
88import androidx.activity.OnBackPressedDispatcher
99import androidx.activity.OnBackPressedDispatcherOwner
1010import androidx.activity.compose.BackHandler
11+ import androidx.activity.compose.LocalOnBackPressedDispatcherOwner
12+ import androidx.compose.runtime.CompositionLocalProvider
1113import androidx.compose.ui.platform.ComposeView
1214import androidx.lifecycle.*
1315import androidx.savedstate.SavedStateRegistry
@@ -59,71 +61,75 @@ class LockScreenOverlayManager(private val context: Context):
5961 setViewTreeViewModelStoreOwner(this @LockScreenOverlayManager)
6062
6163 setContent {
62- AppLockTheme {
63- val appLockRepository = context.appLockRepository()
64- val appName = try {
65- val pm = context.packageManager
66- pm.getApplicationLabel(pm.getApplicationInfo(lockedPackageName, 0 ))
67- .toString()
68- } catch (_: Exception ) {
69- " App"
70- }
71-
72- val onPinAttemptCallback = { pin: String ->
73- val isValid = appLockRepository.validatePassword(pin)
74- if (isValid) {
75- onUnlock()
76- removeOverlay()
64+ CompositionLocalProvider (
65+ LocalOnBackPressedDispatcherOwner provides this @LockScreenOverlayManager
66+ ) {
67+ AppLockTheme {
68+ val appLockRepository = context.appLockRepository()
69+ val appName = try {
70+ val pm = context.packageManager
71+ pm.getApplicationLabel(pm.getApplicationInfo(lockedPackageName, 0 ))
72+ .toString()
73+ } catch (_: Exception ) {
74+ " App"
7775 }
78- isValid
79- }
8076
81- val onPatternAttemptCallback = { pattern: String ->
82- val isValid = appLockRepository.validatePattern(pattern)
83- if (isValid) {
84- onUnlock()
85- removeOverlay()
77+ val onPinAttemptCallback = { pin: String ->
78+ val isValid = appLockRepository.validatePassword(pin)
79+ if (isValid) {
80+ onUnlock()
81+ removeOverlay()
82+ }
83+ isValid
8684 }
87- isValid
88- }
8985
90- BackHandler {
91- onExit()
92- removeOverlay()
93- }
94-
95- val lockType = appLockRepository.getLockType()
96-
97- if (lockType == PreferencesRepository .LOCK_TYPE_PATTERN ) {
98- PatternLockScreen (
99- fromMainActivity = false ,
100- lockedAppName = appName,
101- triggeringPackageName = triggeringPackageName,
102- onPatternAttempt = onPatternAttemptCallback
103- )
104- } else {
105- PasswordOverlayScreen (
106- showBiometricButton = appLockRepository.isBiometricAuthEnabled(),
107- fromMainActivity = false ,
108- lockedAppName = appName,
109- triggeringPackageName = triggeringPackageName,
110- onAuthSuccess = {
86+ val onPatternAttemptCallback = { pattern: String ->
87+ val isValid = appLockRepository.validatePattern(pattern)
88+ if (isValid) {
11189 onUnlock()
11290 removeOverlay()
113- },
114- onBiometricAuth = {
115- val intent = Intent (
116- context,
117- TransparentBiometricActivity ::class .java
118- ).apply {
119- flags =
120- Intent .FLAG_ACTIVITY_NEW_TASK or Intent .FLAG_ACTIVITY_NO_ANIMATION
121- putExtra(" locked_package" , lockedPackageName)
122- }
123- context.startActivity(intent)
124- },
125- onPinAttempt = onPinAttemptCallback
126- )
91+ }
92+ isValid
93+ }
94+
95+ BackHandler {
96+ onExit()
97+ removeOverlay()
98+ }
99+
100+ val lockType = appLockRepository.getLockType()
101+
102+ if (lockType == PreferencesRepository .LOCK_TYPE_PATTERN ) {
103+ PatternLockScreen (
104+ fromMainActivity = false ,
105+ lockedAppName = appName,
106+ triggeringPackageName = triggeringPackageName,
107+ onPatternAttempt = onPatternAttemptCallback
108+ )
109+ } else {
110+ PasswordOverlayScreen (
111+ showBiometricButton = appLockRepository.isBiometricAuthEnabled(),
112+ fromMainActivity = false ,
113+ lockedAppName = appName,
114+ triggeringPackageName = triggeringPackageName,
115+ onAuthSuccess = {
116+ onUnlock()
117+ removeOverlay()
118+ },
119+ onBiometricAuth = {
120+ val intent = Intent (
121+ context,
122+ TransparentBiometricActivity ::class .java
123+ ).apply {
124+ flags =
125+ Intent .FLAG_ACTIVITY_NEW_TASK or Intent .FLAG_ACTIVITY_NO_ANIMATION
126+ putExtra(" locked_package" , lockedPackageName)
127+ }
128+ context.startActivity(intent)
129+ },
130+ onPinAttempt = onPinAttemptCallback
131+ )
132+ }
127133 }
128134 }
129135 }
0 commit comments