Use existing arrow back, updated to use viewbinding

This commit is contained in:
Hafiz 2022-05-23 07:14:00 -04:00
parent dfdaa4cc57
commit adea03824a
3 changed files with 45 additions and 69 deletions

View file

@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="@android:color/black">
<path
android:fillColor="@android:color/white"
android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
</vector>

View file

@ -21,13 +21,14 @@
<ImageButton
android:id="@+id/back_imagebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_centerVertical="true"
android:layout_marginStart="8dp"
android:layout_marginStart="@dimen/button_padding_small"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="8dp"
android:src="@drawable/arrow_back" />
android:src="@drawable/ic_arrow_back_white_36dp"
app:tint="@android:color/black" />
<TextView
android:id="@+id/confirm_action_textview"

View file

@ -14,27 +14,22 @@ import androidx.fragment.app.DialogFragment
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.databinding.DialogHabiticaAccountBinding
import com.habitrpg.android.habitica.models.user.User
class HabiticaAccountDialog(private var thisContext: Context, private val accountAction: String, val accountUpdateConfirmed: AccountUpdateConfirmed, val user: User?) : DialogFragment() {
class HabiticaAccountDialog(private var thisContext: Context, private val accountAction: String, val accountUpdateConfirmed: AccountUpdateConfirmed, val user: User?) : DialogFragment(R.layout.dialog_habitica_account) {
private lateinit var mainView: View
private var backBtn: ImageButton? = null
private var title: TextView? = null
private var warningDescription: TextView? = null
private var confirmationTextInputLayout: TextInputLayout? = null
private var confirmationText: TextInputEditText? = null
private var confirmationAction: TextView? = null
private var _binding: DialogHabiticaAccountBinding? = null
private val binding get() = _binding!!
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
mainView = inflater.inflate(R.layout.dialog_habitica_account, container, false)
return mainView
_binding = DialogHabiticaAccountBinding.inflate(layoutInflater)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initViews()
when (accountAction) {
"reset_account" -> setResetAccountViews()
@ -44,24 +39,24 @@ class HabiticaAccountDialog(private var thisContext: Context, private val accoun
}
private fun setResetAccountViews() {
title?.setText(R.string.reset_account_title)
warningDescription?.setText(R.string.reset_account_description)
confirmationTextInputLayout?.setHint(R.string.confirm_reset)
confirmationAction?.setText(R.string.reset_account)
binding.titleTextview.setText(R.string.reset_account_title)
binding.warningDescriptionTextview.setText(R.string.reset_account_description)
binding.confirmationTextInputLayout.setHint(R.string.confirm_reset)
binding.confirmActionTextview.setText(R.string.reset_account)
confirmationText?.addTextChangedListener(object : TextWatcher {
binding.confirmationInputEdittext.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
confirmationAction?.alpha = .4f
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
binding.confirmActionTextview.alpha = .4f
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
if (confirmationText?.text.toString() == context?.getString(R.string.reset_caps)) {
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.red_100))
confirmationAction?.alpha = 1.0f
if (binding.confirmationInputEdittext.text.toString() == context?.getString(R.string.reset_caps)) {
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.red_100))
binding.confirmActionTextview.alpha = 1.0f
} else {
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
confirmationAction?.alpha = .4f
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
binding.confirmActionTextview.alpha = .4f
}
}
@ -69,69 +64,59 @@ class HabiticaAccountDialog(private var thisContext: Context, private val accoun
}
})
confirmationAction?.setOnClickListener {
if (confirmationText?.text.toString() == context?.getString(R.string.reset_caps)) {
binding.confirmActionTextview.setOnClickListener {
if (binding.confirmationInputEdittext.text.toString() == context?.getString(R.string.reset_caps)) {
accountUpdateConfirmed.resetConfirmedClicked()
}
}
}
private fun setDeleteAccountViews() {
title?.setText(R.string.are_you_sure_you_want_to_delete)
confirmationTextInputLayout?.setHint(R.string.password)
confirmationAction?.setText(R.string.delete_account)
warningDescription?.text = context?.getString(R.string.delete_account_description)
binding.titleTextview.setText(R.string.are_you_sure_you_want_to_delete)
binding.confirmationTextInputLayout.setHint(R.string.password)
binding.confirmActionTextview.setText(R.string.delete_account)
binding.warningDescriptionTextview.text = context?.getString(R.string.delete_account_description)
if (user?.authentication?.hasPassword != true) {
warningDescription?.text = context?.getString(R.string.delete_oauth_account_description)
confirmationTextInputLayout?.setHint(R.string.confirm_deletion)
binding.warningDescriptionTextview.text = context?.getString(R.string.delete_oauth_account_description)
binding.confirmationTextInputLayout.setHint(R.string.confirm_deletion)
}
confirmationText?.addTextChangedListener(object : TextWatcher {
binding.confirmationInputEdittext.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
confirmationAction?.alpha = .4f
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
binding.confirmActionTextview.alpha = .4f
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
if (confirmationText?.text.toString().length > 5) {
if ((user?.authentication?.hasPassword != true && confirmationText?.text.toString() == context?.getString(R.string.delete_caps)) ||
if (binding.confirmationInputEdittext.text.toString().length > 5) {
if ((user?.authentication?.hasPassword != true && binding.confirmationInputEdittext?.text.toString() == context?.getString(R.string.delete_caps)) ||
user?.authentication?.hasPassword == true) {
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.red_100))
confirmationAction?.alpha = 1.0f
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.red_100))
binding.confirmActionTextview.alpha = 1.0f
}
} else {
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
confirmationAction?.alpha = .4f
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
binding.confirmActionTextview.alpha = .4f
}
}
override fun afterTextChanged(p0: Editable?) {
}
})
confirmationAction?.setOnClickListener {
binding.confirmActionTextview.setOnClickListener {
if (user?.authentication?.hasPassword != true) {
if (confirmationText?.text.toString() == context?.getString(R.string.delete_caps)) {
accountUpdateConfirmed.deletionConfirmClicked(confirmationText?.text.toString())
if (binding.confirmActionTextview.text.toString() == context?.getString(R.string.delete_caps)) {
accountUpdateConfirmed.deletionConfirmClicked(binding.confirmationInputEdittext.text.toString())
}
} else {
if (confirmationText?.text.toString().length > 5) {
accountUpdateConfirmed.deletionConfirmClicked(confirmationText?.text.toString())
if (binding.confirmationInputEdittext.text.toString().length > 5) {
accountUpdateConfirmed.deletionConfirmClicked(binding.confirmationInputEdittext.text.toString())
}
}
}
}
private fun initViews() {
backBtn = mainView.findViewById(R.id.back_imagebutton)
backBtn?.setOnClickListener { this.dismiss() }
title = mainView.findViewById(R.id.title_textview)
warningDescription = mainView.findViewById(R.id.warning_description_textview)
confirmationTextInputLayout = mainView.findViewById(R.id.confirmation_text_input_layout)
confirmationText = mainView.findViewById(R.id.confirmation_input_edittext)
confirmationAction = mainView.findViewById(R.id.confirm_action_textview)
}
override fun getTheme(): Int {
return R.style.HabiticaAccountDialogTheme
}