Fix bad donor badge input behaviour.

This commit is contained in:
Alex Hart
2022-05-27 12:54:33 -03:00
committed by Greyson Parrelli
parent 1b471e163d
commit 93e5052d6b
5 changed files with 44 additions and 21 deletions

View File

@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.badges.gifts.flow
import android.content.DialogInterface
import android.view.KeyEvent
import android.widget.EditText
import android.widget.FrameLayout
import android.widget.ImageView
import androidx.activity.OnBackPressedCallback
@@ -109,6 +110,10 @@ class GiftFlowConfirmationFragment :
textInputViewHolder.onAttachedToWindow()
inputAwareLayout.addOnKeyboardShownListener {
if (emojiKeyboard.isEmojiSearchMode) {
return@addOnKeyboardShownListener
}
inputAwareLayout.hideAttachedInput(true)
emojiToggle.setImageResource(R.drawable.ic_emoji_smiley_24)
}
@@ -127,6 +132,25 @@ class GiftFlowConfirmationFragment :
}
)
textInputViewHolder.bind(
TextInput.MultilineModel(
text = viewModel.snapshot.additionalMessage,
hint = DSLSettingsText.from(R.string.GiftFlowConfirmationFragment__add_a_message),
onTextChanged = {
viewModel.setAdditionalMessage(it)
},
onEmojiToggleClicked = {
if (inputAwareLayout.isKeyboardOpen || (!inputAwareLayout.isKeyboardOpen && !inputAwareLayout.isInputOpen)) {
inputAwareLayout.show(it, emojiKeyboard)
emojiToggle.setImageResource(R.drawable.ic_keyboard_24)
} else {
inputAwareLayout.showSoftkey(it)
emojiToggle.setImageResource(R.drawable.ic_emoji_smiley_24)
}
}
)
)
lifecycleDisposable += viewModel.state.observeOn(AndroidSchedulers.mainThread()).subscribe { state ->
adapter.submitList(getConfiguration(state).toMappingModelList())
@@ -142,25 +166,6 @@ class GiftFlowConfirmationFragment :
} else {
processingDonationPaymentDialog.dismiss()
}
textInputViewHolder.bind(
TextInput.MultilineModel(
text = state.additionalMessage,
hint = DSLSettingsText.from(R.string.GiftFlowConfirmationFragment__add_a_message),
onTextChanged = {
viewModel.setAdditionalMessage(it)
},
onEmojiToggleClicked = {
if (inputAwareLayout.isKeyboardOpen || (!inputAwareLayout.isKeyboardOpen && !inputAwareLayout.isInputOpen)) {
inputAwareLayout.show(it, emojiKeyboard)
emojiToggle.setImageResource(R.drawable.ic_keyboard_24)
} else {
inputAwareLayout.showSoftkey(it)
emojiToggle.setImageResource(R.drawable.ic_emoji_smiley_24)
}
}
)
)
}
lifecycleDisposable.bindTo(viewLifecycleOwner)
@@ -249,6 +254,10 @@ class GiftFlowConfirmationFragment :
)
}
override fun onToolbarNavigationClicked() {
findNavController().popBackStack()
}
override fun openEmojiSearch() {
emojiKeyboard.onOpenEmojiSearch()
}

View File

@@ -14,6 +14,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.models.Ne
import org.thoughtcrime.securesms.components.settings.configure
import org.thoughtcrime.securesms.components.settings.models.IndeterminateLoadingCircle
import org.thoughtcrime.securesms.util.LifecycleDisposable
import org.thoughtcrime.securesms.util.ViewUtil
import org.thoughtcrime.securesms.util.fragments.requireListener
import org.thoughtcrime.securesms.util.navigation.safeNavigate
@@ -50,6 +51,11 @@ class GiftFlowStartFragment : DSLSettingsFragment(
}
}
override fun onResume() {
super.onResume()
ViewUtil.hideKeyboard(requireContext(), requireView())
}
private fun getConfiguration(state: GiftFlowState): DSLConfiguration {
return configure {
customPref(

View File

@@ -36,7 +36,7 @@ abstract class DSLSettingsFragment(
}
toolbar?.setNavigationOnClickListener {
requireActivity().onBackPressed()
onToolbarNavigationClicked()
}
if (menuId != -1) {
@@ -67,6 +67,10 @@ abstract class DSLSettingsFragment(
return Material3OnScrollHelper(requireActivity(), toolbar)
}
open fun onToolbarNavigationClicked() {
requireActivity().onBackPressed()
}
override fun onDestroyView() {
super.onDestroyView()
recyclerView = null

View File

@@ -82,6 +82,10 @@ class CircularProgressMaterialButton @JvmOverloads constructor(
}
private fun transformTo(state: State, animate: Boolean) {
if (state == currentState && state == requestedState) {
return
}
requestedState = state
if (animator?.isRunning == true) {
return