@@ -19,11 +19,14 @@ package ru.tech.imageresizershrinker.feature.base64_tools.presentation
19
19
20
20
import android.net.Uri
21
21
import androidx.compose.animation.animateContentSize
22
+ import androidx.compose.foundation.background
22
23
import androidx.compose.foundation.layout.Box
23
24
import androidx.compose.foundation.layout.Spacer
24
25
import androidx.compose.foundation.layout.aspectRatio
25
26
import androidx.compose.foundation.layout.height
26
27
import androidx.compose.foundation.layout.padding
28
+ import androidx.compose.material.icons.Icons
29
+ import androidx.compose.material3.Icon
27
30
import androidx.compose.material3.MaterialTheme
28
31
import androidx.compose.runtime.Composable
29
32
import androidx.compose.runtime.getValue
@@ -39,6 +42,7 @@ import androidx.compose.ui.res.stringResource
39
42
import androidx.compose.ui.unit.dp
40
43
import coil3.toBitmap
41
44
import ru.tech.imageresizershrinker.core.resources.R
45
+ import ru.tech.imageresizershrinker.core.resources.icons.BrokenImageAlt
42
46
import ru.tech.imageresizershrinker.core.ui.utils.content_pickers.Picker
43
47
import ru.tech.imageresizershrinker.core.ui.utils.content_pickers.rememberImagePicker
44
48
import ru.tech.imageresizershrinker.core.ui.utils.helper.ImageUtils.safeAspectRatio
@@ -165,6 +169,13 @@ fun Base64ToolsContent(
165
169
onSuccess = {
166
170
aspectRatio = it.result.image.toBitmap().safeAspectRatio
167
171
},
172
+ error = {
173
+ Icon (
174
+ imageVector = Icons .Rounded .BrokenImageAlt ,
175
+ contentDescription = null ,
176
+ modifier = Modifier .background(MaterialTheme .colorScheme.surface)
177
+ )
178
+ },
168
179
shape = MaterialTheme .shapes.medium,
169
180
isLoadingFromDifferentPlace = component.isImageLoading
170
181
)
@@ -203,7 +214,8 @@ fun Base64ToolsContent(
203
214
mutableStateOf(false )
204
215
}
205
216
BottomButtonsBlock (
206
- targetState = (component.uri == null ) to isPortrait,
217
+ targetState = (component.base64String.isEmpty() && isPortrait) to isPortrait,
218
+ isPrimaryButtonVisible = isPortrait || component.base64String.isNotEmpty(),
207
219
onSecondaryButtonClick = pickImage,
208
220
onSecondaryButtonLongClick = {
209
221
showOneTimeImagePickingDialog = true
0 commit comments