Fix bad donor badge input behaviour.

fork-5.53.8
Alex Hart 2022-05-27 12:54:33 -03:00 zatwierdzone przez Greyson Parrelli
rodzic 1b471e163d
commit 93e5052d6b
5 zmienionych plików z 44 dodań i 21 usunięć

Wyświetl plik

@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.badges.gifts.flow
import android.content.DialogInterface import android.content.DialogInterface
import android.view.KeyEvent import android.view.KeyEvent
import android.widget.EditText
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.ImageView import android.widget.ImageView
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
@ -109,6 +110,10 @@ class GiftFlowConfirmationFragment :
textInputViewHolder.onAttachedToWindow() textInputViewHolder.onAttachedToWindow()
inputAwareLayout.addOnKeyboardShownListener { inputAwareLayout.addOnKeyboardShownListener {
if (emojiKeyboard.isEmojiSearchMode) {
return@addOnKeyboardShownListener
}
inputAwareLayout.hideAttachedInput(true) inputAwareLayout.hideAttachedInput(true)
emojiToggle.setImageResource(R.drawable.ic_emoji_smiley_24) 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 -> lifecycleDisposable += viewModel.state.observeOn(AndroidSchedulers.mainThread()).subscribe { state ->
adapter.submitList(getConfiguration(state).toMappingModelList()) adapter.submitList(getConfiguration(state).toMappingModelList())
@ -142,25 +166,6 @@ class GiftFlowConfirmationFragment :
} else { } else {
processingDonationPaymentDialog.dismiss() 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) lifecycleDisposable.bindTo(viewLifecycleOwner)
@ -249,6 +254,10 @@ class GiftFlowConfirmationFragment :
) )
} }
override fun onToolbarNavigationClicked() {
findNavController().popBackStack()
}
override fun openEmojiSearch() { override fun openEmojiSearch() {
emojiKeyboard.onOpenEmojiSearch() emojiKeyboard.onOpenEmojiSearch()
} }

Wyświetl plik

@ -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.configure
import org.thoughtcrime.securesms.components.settings.models.IndeterminateLoadingCircle import org.thoughtcrime.securesms.components.settings.models.IndeterminateLoadingCircle
import org.thoughtcrime.securesms.util.LifecycleDisposable import org.thoughtcrime.securesms.util.LifecycleDisposable
import org.thoughtcrime.securesms.util.ViewUtil
import org.thoughtcrime.securesms.util.fragments.requireListener import org.thoughtcrime.securesms.util.fragments.requireListener
import org.thoughtcrime.securesms.util.navigation.safeNavigate 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 { private fun getConfiguration(state: GiftFlowState): DSLConfiguration {
return configure { return configure {
customPref( customPref(

Wyświetl plik

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

Wyświetl plik

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

Wyświetl plik

@ -58,7 +58,7 @@
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/next" android:id="@+id/next"
style="@style/Signal.Widget.Button.Large.Primary" style="@style/Signal.Widget.Button.Large.Tonal"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dsl_settings_gutter" android:layout_marginEnd="@dimen/dsl_settings_gutter"