mirror of
https://github.com/T8RIN/ImageToolbox.git
synced 2025-05-17 05:26:02 +08:00
Fix Using Crop in OCR by #1873
This commit is contained in:
@ -20,6 +20,7 @@ package ru.tech.imageresizershrinker.app.presentation.components.utils
|
||||
import com.t8rin.logger.makeLog
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import org.bouncycastle.asn1.ASN1ObjectIdentifier
|
||||
import org.bouncycastle.jce.provider.BouncyCastleProvider
|
||||
@ -30,6 +31,8 @@ import java.security.Security
|
||||
|
||||
internal fun registerSecurityProviders() {
|
||||
CoroutineScope(Dispatchers.Default).launch {
|
||||
delay(1000)
|
||||
|
||||
initBouncyCastle()
|
||||
|
||||
HashingType.registerSecurityMessageDigests(
|
||||
|
@ -68,6 +68,7 @@ import ru.tech.imageresizershrinker.feature.recognize.text.presentation.componen
|
||||
import ru.tech.imageresizershrinker.feature.recognize.text.presentation.components.RecognizeTextDownloadDataDialog
|
||||
import ru.tech.imageresizershrinker.feature.recognize.text.presentation.components.RecognizeTextNoDataControls
|
||||
import ru.tech.imageresizershrinker.feature.recognize.text.presentation.screenLogic.RecognizeTextComponent
|
||||
import ru.tech.imageresizershrinker.feature.single_edit.presentation.components.CropEditOption
|
||||
|
||||
|
||||
@Composable
|
||||
@ -175,6 +176,8 @@ fun RecognizeTextContent(
|
||||
}
|
||||
)
|
||||
|
||||
var showCropper by rememberSaveable { mutableStateOf(false) }
|
||||
|
||||
AdaptiveLayoutScreen(
|
||||
shouldDisableBackHandler = true,
|
||||
title = {
|
||||
@ -300,7 +303,10 @@ fun RecognizeTextContent(
|
||||
},
|
||||
showImagePreviewAsStickyHeader = isExtraction,
|
||||
controls = {
|
||||
RecognizeTextControls(component)
|
||||
RecognizeTextControls(
|
||||
component = component,
|
||||
onShowCropper = { showCropper = true }
|
||||
)
|
||||
},
|
||||
buttons = { actions ->
|
||||
RecognizeTextButtons(
|
||||
@ -329,4 +335,17 @@ fun RecognizeTextContent(
|
||||
onCancelLoading = component::cancelSaving,
|
||||
canCancel = component.isSaving
|
||||
)
|
||||
|
||||
CropEditOption(
|
||||
visible = showCropper,
|
||||
onDismiss = { showCropper = false },
|
||||
useScaffold = isPortrait,
|
||||
bitmap = component.previewBitmap,
|
||||
onGetBitmap = component::updateBitmap,
|
||||
cropProperties = component.cropProperties,
|
||||
setCropAspectRatio = component::setCropAspectRatio,
|
||||
setCropMask = component::setCropMask,
|
||||
selectedAspectRatio = component.selectedAspectRatio,
|
||||
loadImage = component::loadImage
|
||||
)
|
||||
}
|
@ -28,10 +28,6 @@ import androidx.compose.material.icons.rounded.CameraAlt
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@ -46,23 +42,21 @@ import ru.tech.imageresizershrinker.core.ui.utils.content_pickers.localImagePick
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.content_pickers.rememberFileCreator
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.content_pickers.rememberFilePicker
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.content_pickers.rememberImagePicker
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.helper.isPortraitOrientationAsState
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen
|
||||
import ru.tech.imageresizershrinker.core.ui.utils.provider.rememberLocalEssentials
|
||||
import ru.tech.imageresizershrinker.core.ui.widget.controls.ImageTransformBar
|
||||
import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton
|
||||
import ru.tech.imageresizershrinker.core.ui.widget.other.LinkPreviewList
|
||||
import ru.tech.imageresizershrinker.feature.recognize.text.presentation.screenLogic.RecognizeTextComponent
|
||||
import ru.tech.imageresizershrinker.feature.single_edit.presentation.components.CropEditOption
|
||||
|
||||
@Composable
|
||||
internal fun RecognizeTextControls(
|
||||
component: RecognizeTextComponent
|
||||
component: RecognizeTextComponent,
|
||||
onShowCropper: () -> Unit
|
||||
) {
|
||||
val type = component.type
|
||||
val isExtraction = type is Screen.RecognizeText.Type.Extraction
|
||||
val imagePickerMode = localImagePickerMode(Picker.Single)
|
||||
val isPortrait by isPortraitOrientationAsState()
|
||||
|
||||
val context = LocalContext.current
|
||||
val essentials = rememberLocalEssentials()
|
||||
@ -137,31 +131,16 @@ internal fun RecognizeTextControls(
|
||||
}
|
||||
Spacer(Modifier.weight(1f))
|
||||
}
|
||||
var showCropper by rememberSaveable { mutableStateOf(false) }
|
||||
EnhancedIconButton(
|
||||
containerColor = MaterialTheme.colorScheme.mixedContainer,
|
||||
contentColor = MaterialTheme.colorScheme.onMixedContainer,
|
||||
onClick = {
|
||||
showCropper = true
|
||||
}
|
||||
onClick = onShowCropper
|
||||
) {
|
||||
Icon(
|
||||
imageVector = Icons.Rounded.CropSmall,
|
||||
contentDescription = stringResource(R.string.crop)
|
||||
)
|
||||
}
|
||||
CropEditOption(
|
||||
visible = showCropper,
|
||||
onDismiss = { showCropper = false },
|
||||
useScaffold = isPortrait,
|
||||
bitmap = component.previewBitmap,
|
||||
onGetBitmap = component::updateBitmap,
|
||||
cropProperties = component.cropProperties,
|
||||
setCropAspectRatio = component::setCropAspectRatio,
|
||||
setCropMask = component::setCropMask,
|
||||
selectedAspectRatio = component.selectedAspectRatio,
|
||||
loadImage = component::loadImage
|
||||
)
|
||||
}
|
||||
Spacer(modifier = Modifier.height(8.dp))
|
||||
}
|
||||
|
Reference in New Issue
Block a user