Skip to content

Commit 73a9880

Browse files
authored
Merge pull request #461 from code-payments/chore/dont-trigger-biometrics-check-with-cashlinks
fix: prevent biometrics check when share sheet triggers lifecycle onr…
2 parents 4755ca1 + 29f07ca commit 73a9880

3 files changed

Lines changed: 26 additions & 5 deletions

File tree

app/src/main/java/com/getcode/ui/components/BottomBarView.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import androidx.compose.runtime.CompositionLocalProvider
1717
import androidx.compose.runtime.LaunchedEffect
1818
import androidx.compose.ui.Alignment
1919
import androidx.compose.ui.Modifier
20+
import androidx.compose.ui.text.style.TextAlign
2021
import com.getcode.manager.BottomBarManager
2122
import com.getcode.theme.BrandLight
2223
import com.getcode.theme.CodeTheme
@@ -101,7 +102,8 @@ fun BottomBarView(
101102
onClose(BottomBarManager.BottomBarActionType.Tertiary)
102103
}
103104
.padding(vertical = CodeTheme.dimens.grid.x2),
104-
style = CodeTheme.typography.textLarge,
105+
style = CodeTheme.typography.textMedium,
106+
textAlign = TextAlign.Center,
105107
color = White,
106108
text = it
107109
)

app/src/main/java/com/getcode/view/main/home/components/BiometricsBlockingView.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,10 @@ internal fun rememberBiometricsState(
113113
mutableStateOf(requireBiometrics == true)
114114
}
115115

116+
var stopped by remember {
117+
mutableStateOf(false)
118+
}
119+
116120
LaunchedEffect(checkBiometrics, requireBiometrics) {
117121
if (checkBiometrics && requireBiometrics == true) {
118122
Biometrics.prompt(context)
@@ -139,10 +143,11 @@ internal fun rememberBiometricsState(
139143
if (requireBiometrics == true) {
140144
biometricsPassed = false
141145
}
146+
stopped = true
142147
}
143148

144149
Lifecycle.Event.ON_RESUME -> {
145-
if (requireBiometrics == true) {
150+
if (requireBiometrics == true && stopped) {
146151
checkBiometrics = true
147152
}
148153
}

app/src/main/java/com/getcode/view/main/home/components/CodeScanner.kt

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,24 +82,38 @@ fun CodeScanner(
8282
KikCodeAnalyzer(scanner, onCodeScanned)
8383
}
8484

85+
var bound by remember {
86+
mutableStateOf(false)
87+
}
88+
8589
val scope = rememberCoroutineScope()
8690
LaunchedEffect(scanner) {
8791
val cameraProvider = context.getCameraProvider()
8892
cameraProvider.unbindAll()
8993
cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview, imageAnalysis)
94+
bound = true
9095
}
9196

9297
OnLifecycleEvent { _, event ->
9398
if (event == Lifecycle.Event.ON_STOP) {
9499
scope.launch {
95100
val cameraProvider = context.getCameraProvider()
96101
cameraProvider.unbindAll()
102+
bound = false
97103
}
98104
} else if (event == Lifecycle.Event.ON_RESUME) {
99105
scope.launch {
100-
val cameraProvider = context.getCameraProvider()
101-
cameraProvider.unbindAll()
102-
cameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, preview, imageAnalysis)
106+
if (!bound) {
107+
val cameraProvider = context.getCameraProvider()
108+
cameraProvider.unbindAll()
109+
cameraProvider.bindToLifecycle(
110+
lifecycleOwner,
111+
cameraSelector,
112+
preview,
113+
imageAnalysis
114+
)
115+
bound = true
116+
}
103117
}
104118
}
105119

0 commit comments

Comments
 (0)