Skip to content

Commit 38d890b

Browse files
committed
to delete this commit
1 parent aeb1d4c commit 38d890b

File tree

4 files changed

+115
-71
lines changed

4 files changed

+115
-71
lines changed

Diff for: lib/src/main/java/com/smileidentity/compose/selfie/OrchestratedSelfieCaptureScreen.kt

+82-71
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ import android.graphics.Bitmap
44
import android.graphics.BitmapFactory
55
import androidx.compose.foundation.background
66
import androidx.compose.foundation.layout.Box
7+
import androidx.compose.foundation.layout.Column
78
import androidx.compose.foundation.layout.WindowInsets
89
import androidx.compose.foundation.layout.consumeWindowInsets
910
import androidx.compose.foundation.layout.fillMaxSize
1011
import androidx.compose.foundation.layout.statusBars
1112
import androidx.compose.foundation.layout.windowInsetsPadding
1213
import androidx.compose.material3.MaterialTheme
14+
import androidx.compose.material3.Text
1315
import androidx.compose.runtime.Composable
1416
import androidx.compose.runtime.getValue
1517
import androidx.compose.runtime.mutableStateOf
@@ -76,83 +78,92 @@ fun OrchestratedSelfieCaptureScreen(
7678
) {
7779
val uiState = viewModel.uiState.collectAsStateWithLifecycle().value
7880
var acknowledgedInstructions by rememberSaveable { mutableStateOf(false) }
79-
Box(
81+
Column (
8082
modifier = modifier
8183
.background(color = MaterialTheme.colorScheme.background)
8284
.windowInsetsPadding(WindowInsets.statusBars)
8385
.consumeWindowInsets(WindowInsets.statusBars)
8486
.fillMaxSize(),
8587
) {
86-
when {
87-
showInstructions && !acknowledgedInstructions -> SmartSelfieInstructionsScreen(
88-
showAttribution = showAttribution,
89-
) {
90-
acknowledgedInstructions = true
91-
}
88+
Text("The count is ${uiState.counttt}")
89+
SelfieCaptureScreen(
90+
userId = userId,
91+
jobId = jobId,
92+
isEnroll = isEnroll,
93+
allowAgentMode = allowAgentMode,
94+
skipApiSubmission = skipApiSubmission,
95+
)
9296

93-
uiState.processingState != null -> ProcessingScreen(
94-
processingState = uiState.processingState,
95-
inProgressTitle = stringResource(R.string.si_smart_selfie_processing_title),
96-
inProgressSubtitle = stringResource(R.string.si_smart_selfie_processing_subtitle),
97-
inProgressIcon = painterResource(R.drawable.si_smart_selfie_processing_hero),
98-
successTitle = stringResource(R.string.si_smart_selfie_processing_success_title),
99-
successSubtitle = uiState.errorMessage.resolve().takeIf { it.isNotEmpty() }
100-
?: stringResource(R.string.si_smart_selfie_processing_success_subtitle),
101-
successIcon = painterResource(R.drawable.si_processing_success),
102-
errorTitle = stringResource(R.string.si_smart_selfie_processing_error_title),
103-
errorSubtitle = uiState.errorMessage.resolve().takeIf { it.isNotEmpty() }
104-
?: stringResource(id = R.string.si_processing_error_subtitle),
105-
errorIcon = painterResource(R.drawable.si_processing_error),
106-
continueButtonText = stringResource(R.string.si_continue),
107-
onContinue = { viewModel.onFinished(onResult) },
108-
retryButtonText = stringResource(R.string.si_smart_selfie_processing_retry_button),
109-
onRetry = viewModel::onRetry,
110-
closeButtonText = stringResource(R.string.si_smart_selfie_processing_close_button),
111-
onClose = { viewModel.onFinished(onResult) },
112-
)
113-
114-
!uiState.selfieToConfirm.isNull() -> ImageCaptureConfirmationDialog(
115-
titleText = stringResource(R.string.si_smart_selfie_confirmation_dialog_title),
116-
subtitleText = stringResource(
117-
R.string.si_smart_selfie_confirmation_dialog_subtitle,
118-
),
119-
painter = remember {
120-
val path = uiState.selfieToConfirm?.absolutePath
121-
try {
122-
BitmapFactory.decodeFile(path)?.let { bitmap: Bitmap ->
123-
BitmapPainter(bitmap.asImageBitmap())
124-
} ?: run {
125-
SmileIDCrashReporting.hub.addBreadcrumb(
126-
"Failed to decode selfie image at $path",
127-
)
128-
ColorPainter(Color.Black)
129-
}
130-
} catch (e: Exception) {
131-
SmileIDCrashReporting.hub.addBreadcrumb(
132-
"Error loading selfie image at $path",
133-
)
134-
SmileIDCrashReporting.hub.captureException(e)
135-
ColorPainter(Color.Black)
136-
}
137-
},
138-
confirmButtonText = stringResource(
139-
R.string.si_smart_selfie_confirmation_dialog_confirm_button,
140-
),
141-
onConfirm = viewModel::submitJob,
142-
retakeButtonText = stringResource(
143-
R.string.si_smart_selfie_confirmation_dialog_retake_button,
144-
),
145-
onRetake = viewModel::onSelfieRejected,
146-
scaleFactor = 1.25f,
147-
)
148-
149-
else -> SelfieCaptureScreen(
150-
userId = userId,
151-
jobId = jobId,
152-
isEnroll = isEnroll,
153-
allowAgentMode = allowAgentMode,
154-
skipApiSubmission = skipApiSubmission,
155-
)
156-
}
97+
// when {
98+
// showInstructions && !acknowledgedInstructions -> SmartSelfieInstructionsScreen(
99+
// showAttribution = showAttribution,
100+
// ) {
101+
// acknowledgedInstructions = true
102+
// }
103+
//
104+
// uiState.processingState != null -> ProcessingScreen(
105+
// processingState = uiState.processingState,
106+
// inProgressTitle = stringResource(R.string.si_smart_selfie_processing_title),
107+
// inProgressSubtitle = stringResource(R.string.si_smart_selfie_processing_subtitle),
108+
// inProgressIcon = painterResource(R.drawable.si_smart_selfie_processing_hero),
109+
// successTitle = stringResource(R.string.si_smart_selfie_processing_success_title),
110+
// successSubtitle = uiState.errorMessage.resolve().takeIf { it.isNotEmpty() }
111+
// ?: stringResource(R.string.si_smart_selfie_processing_success_subtitle),
112+
// successIcon = painterResource(R.drawable.si_processing_success),
113+
// errorTitle = stringResource(R.string.si_smart_selfie_processing_error_title),
114+
// errorSubtitle = uiState.errorMessage.resolve().takeIf { it.isNotEmpty() }
115+
// ?: stringResource(id = R.string.si_processing_error_subtitle),
116+
// errorIcon = painterResource(R.drawable.si_processing_error),
117+
// continueButtonText = stringResource(R.string.si_continue),
118+
// onContinue = { viewModel.onFinished(onResult) },
119+
// retryButtonText = stringResource(R.string.si_smart_selfie_processing_retry_button),
120+
// onRetry = viewModel::onRetry,
121+
// closeButtonText = stringResource(R.string.si_smart_selfie_processing_close_button),
122+
// onClose = { viewModel.onFinished(onResult) },
123+
// )
124+
//
125+
// // !uiState.selfieToConfirm.isNull() -> ImageCaptureConfirmationDialog(
126+
// // titleText = stringResource(R.string.si_smart_selfie_confirmation_dialog_title),
127+
// // subtitleText = stringResource(
128+
// // R.string.si_smart_selfie_confirmation_dialog_subtitle,
129+
// // ),
130+
// // painter = remember {
131+
// // val path = uiState.selfieToConfirm?.absolutePath
132+
// // try {
133+
// // BitmapFactory.decodeFile(path)?.let { bitmap: Bitmap ->
134+
// // BitmapPainter(bitmap.asImageBitmap())
135+
// // } ?: run {
136+
// // SmileIDCrashReporting.hub.addBreadcrumb(
137+
// // "Failed to decode selfie image at $path",
138+
// // )
139+
// // ColorPainter(Color.Black)
140+
// // }
141+
// // } catch (e: Exception) {
142+
// // SmileIDCrashReporting.hub.addBreadcrumb(
143+
// // "Error loading selfie image at $path",
144+
// // )
145+
// // SmileIDCrashReporting.hub.captureException(e)
146+
// // ColorPainter(Color.Black)
147+
// // }
148+
// // },
149+
// // confirmButtonText = stringResource(
150+
// // R.string.si_smart_selfie_confirmation_dialog_confirm_button,
151+
// // ),
152+
// // onConfirm = viewModel::submitJob,
153+
// // retakeButtonText = stringResource(
154+
// // R.string.si_smart_selfie_confirmation_dialog_retake_button,
155+
// // ),
156+
// // onRetake = viewModel::onSelfieRejected,
157+
// // scaleFactor = 1.25f,
158+
// // )
159+
//
160+
// else -> SelfieCaptureScreen(
161+
// userId = userId,
162+
// jobId = jobId,
163+
// isEnroll = isEnroll,
164+
// allowAgentMode = allowAgentMode,
165+
// skipApiSubmission = skipApiSubmission,
166+
// )
167+
// }
157168
}
158169
}

Diff for: lib/src/main/java/com/smileidentity/compose/selfie/SelfieCaptureScreen.kt

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.smileidentity.compose.selfie
22

3+
import android.graphics.BitmapFactory
34
import androidx.compose.animation.core.LinearEasing
45
import androidx.compose.animation.core.animateFloatAsState
56
import androidx.compose.animation.core.tween
@@ -18,6 +19,7 @@ import androidx.compose.material3.SwitchDefaults
1819
import androidx.compose.material3.Text
1920
import androidx.compose.material3.contentColorFor
2021
import androidx.compose.runtime.Composable
22+
import androidx.compose.runtime.LaunchedEffect
2123
import androidx.compose.runtime.getValue
2224
import androidx.compose.runtime.remember
2325
import androidx.compose.runtime.saveable.rememberSaveable
@@ -28,6 +30,7 @@ import androidx.compose.ui.Modifier
2830
import androidx.compose.ui.draw.clip
2931
import androidx.compose.ui.draw.clipToBounds
3032
import androidx.compose.ui.draw.scale
33+
import androidx.compose.ui.platform.LocalContext
3134
import androidx.compose.ui.platform.testTag
3235
import androidx.compose.ui.res.stringResource
3336
import androidx.compose.ui.text.font.FontWeight
@@ -88,6 +91,11 @@ fun SelfieCaptureScreen(
8891
val faceFillPercent = remember { MAX_FACE_AREA_THRESHOLD * viewfinderZoom * 2 }
8992
// Force maximum brightness in order to light up the user's face
9093
ForceBrightness()
94+
val context = LocalContext.current
95+
LaunchedEffect(viewModel) {
96+
viewModel.juma(bitmap = BitmapFactory.decodeResource(context.resources, R.drawable.batman))
97+
}
98+
9199
Box(modifier = modifier.fillMaxSize()) {
92100
CameraPreview(
93101
cameraState = cameraState,

Diff for: lib/src/main/java/com/smileidentity/viewmodel/SelfieViewModel.kt

+25
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.smileidentity.viewmodel
22

3+
import android.graphics.Bitmap
4+
import android.graphics.BitmapFactory
35
import androidx.annotation.OptIn
46
import androidx.annotation.StringRes
57
import androidx.annotation.VisibleForTesting
@@ -46,6 +48,7 @@ import com.smileidentity.util.isNetworkFailure
4648
import com.smileidentity.util.isNull
4749
import com.smileidentity.util.moveJobToSubmitted
4850
import com.smileidentity.util.postProcessImageBitmap
51+
import com.smileidentity.util.randomJobId
4952
import com.smileidentity.util.rotated
5053
import com.ujizin.camposer.state.CamSelector
5154
import io.sentry.Breadcrumb
@@ -81,6 +84,7 @@ private const val SMILE_THRESHOLD = 0.8f
8184
data class SelfieUiState(
8285
val directive: SelfieDirective = SelfieDirective.InitialInstruction,
8386
val progress: Float = 0f,
87+
val counttt: Int = 0,
8488
val selfieToConfirm: File? = null,
8589
val processingState: ProcessingState? = null,
8690
val errorMessage: StringResource = StringResource.ResId(R.string.si_processing_error_subtitle),
@@ -135,6 +139,27 @@ class SelfieViewModel(
135139

136140
private val metadataTimerStart = TimeSource.Monotonic.markNow()
137141

142+
internal fun juma(bitmap: Bitmap) {
143+
repeat(100) {
144+
selfieFile = createSelfieFile(randomJobId())
145+
Timber.d("Juma - Capturing selfie image to $selfieFile")
146+
val selfie = postProcessImageBitmap(
147+
bitmap = bitmap,
148+
file = selfieFile!!,
149+
compressionQuality = 80,
150+
resizeLongerDimensionTo = SELFIE_IMAGE_SIZE,
151+
)
152+
val total = SmileID.getUnsubmittedJobs().size
153+
Timber.d("Juma - the selfie file is $selfie")
154+
Timber.d("Juma - the selfie count is $total")
155+
_uiState.update {
156+
it.copy(
157+
counttt = total,
158+
)
159+
}
160+
}
161+
}
162+
138163
@OptIn(ExperimentalGetImage::class)
139164
internal fun analyzeImage(imageProxy: ImageProxy, camSelector: CamSelector) {
140165
val image = imageProxy.image

Diff for: lib/src/main/res/drawable/batman.jpg

33.8 KB
Loading

0 commit comments

Comments
 (0)