diff --git a/presentation/src/main/java/com/signal/signal_android/feature/bug/ReportBug.kt b/presentation/src/main/java/com/signal/signal_android/feature/bug/ReportBug.kt index 1abcfbe6..018523e7 100644 --- a/presentation/src/main/java/com/signal/signal_android/feature/bug/ReportBug.kt +++ b/presentation/src/main/java/com/signal/signal_android/feature/bug/ReportBug.kt @@ -99,7 +99,7 @@ internal fun ReportBug( alignment = Alignment.Top, ) PostImage( - uri = { imagePreview }, + imagePreview = { imagePreview }, imageUrl = { imageUrl }, ) { focusManager.clearFocus() diff --git a/presentation/src/main/java/com/signal/signal_android/feature/main/feed/CreatePost.kt b/presentation/src/main/java/com/signal/signal_android/feature/main/feed/CreatePost.kt index 8130d793..b2da8720 100644 --- a/presentation/src/main/java/com/signal/signal_android/feature/main/feed/CreatePost.kt +++ b/presentation/src/main/java/com/signal/signal_android/feature/main/feed/CreatePost.kt @@ -90,6 +90,9 @@ internal fun CreatePost( val launcher = rememberLauncherForActivityResult(ActivityResultContracts.PickVisualMedia()) { it?.run { + feedViewModel.setButtonEnabled( + enabled = state.title.isNotBlank() && state.content.isNotBlank(), + ) imagePreview = it attachmentViewModel.setFile( FileUtil.toFile( @@ -182,7 +185,7 @@ internal fun CreatePost( maxLength = 300, ) PostImage( - uri = { imagePreview }, + imagePreview = { imagePreview }, imageUrl = { details.image }, ) { focusManager.clearFocus() @@ -211,7 +214,7 @@ internal fun CreatePost( @Composable internal fun PostImage( - uri: () -> Uri?, + imagePreview: () -> Uri?, imageUrl: () -> String?, onClick: () -> Unit, ) { @@ -235,7 +238,7 @@ internal fun PostImage( ) AsyncImage( modifier = Modifier.fillMaxSize(), - model = if (imageUrl().isNullOrBlank()) uri() + model = if (imageUrl().isNullOrBlank() || imagePreview() != null) imagePreview() else imageUrl(), contentDescription = stringResource(id = R.string.feed_image), contentScale = ContentScale.Crop, diff --git a/presentation/src/main/java/com/signal/signal_android/feature/main/feed/FeedViewModel.kt b/presentation/src/main/java/com/signal/signal_android/feature/main/feed/FeedViewModel.kt index 9bad44c8..b1f6a398 100644 --- a/presentation/src/main/java/com/signal/signal_android/feature/main/feed/FeedViewModel.kt +++ b/presentation/src/main/java/com/signal/signal_android/feature/main/feed/FeedViewModel.kt @@ -63,6 +63,10 @@ internal class FeedViewModel( } } + internal fun setButtonEnabled(enabled: Boolean) { + setState(state.value.copy(buttonEnabled = enabled)) + } + internal fun fetchPostDetails() { with(state.value) { if (feedId != null) {