diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersFragment.kt index 5a29292a13..ddf3616f19 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersFragment.kt @@ -53,9 +53,11 @@ class CreateStoryWithViewersFragment : DSLSettingsFragment( adapter.registerFactory(RecipientMappingModel.RecipientIdMappingModel::class.java, LayoutFactory({ RecipientViewHolder(it, null) }, R.layout.stories_recipient_item)) binding.create.setOnClickListener { viewModel.create(recipientIds.toSet()) } + binding.create.setCanPress(false) val nameViewHolder = CreateStoryNameFieldItem.ViewHolder(binding.nameField.root) { viewModel.setLabel(it) + binding.create.setCanPress(it.isNotBlank()) } disposables.bindTo(viewLifecycleOwner) @@ -70,7 +72,7 @@ class CreateStoryWithViewersFragment : DSLSettingsFragment( nameViewHolder.bind(nameModel) when (state.saveState) { - CreateStoryWithViewersState.SaveState.Init -> binding.create.setCanPress(state.label.isNotEmpty()) + CreateStoryWithViewersState.SaveState.Init -> binding.create.setCanPress(state.label.isNotBlank()) CreateStoryWithViewersState.SaveState.Saving -> binding.create.setCanPress(false) is CreateStoryWithViewersState.SaveState.Saved -> onDone(state.saveState.recipientId) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersViewModel.kt index 36c73c2f23..971ac7c7eb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/create/CreateStoryWithViewersViewModel.kt @@ -34,13 +34,14 @@ class CreateStoryWithViewersViewModel( store.update { it.copy(saveState = CreateStoryWithViewersState.SaveState.Saving) } val label = store.state.label - if (label.isEmpty()) { + if (label.isBlank()) { store.update { it.copy( error = CreateStoryWithViewersState.NameError.NO_LABEL, saveState = CreateStoryWithViewersState.SaveState.Init ) } + return } disposables += repository.createList(label, members).subscribeBy( diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/custom/name/EditStoryNameFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/custom/name/EditStoryNameFragment.kt index 36f174bad0..1d875a0866 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/custom/name/EditStoryNameFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/custom/name/EditStoryNameFragment.kt @@ -59,8 +59,8 @@ class EditStoryNameFragment : Fragment(R.layout.stories_edit_story_name_fragment } storyName.doAfterTextChanged { - saveButton.isEnabled = !it.isNullOrEmpty() - saveButton.alpha = if (it.isNullOrEmpty()) 0.5f else 1f + saveButton.isEnabled = !it.isNullOrBlank() && it.toString().trim() != initialName + saveButton.alpha = if (!saveButton.isEnabled) 0.5f else 1f storyNameWrapper.error = null } @@ -68,6 +68,8 @@ class EditStoryNameFragment : Fragment(R.layout.stories_edit_story_name_fragment saveButton.setOnClickListener { onSaveClicked() } + saveButton.isEnabled = false + saveButton.alpha = 0.5f ViewUtil.focusAndShowKeyboard(storyName) }