mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-13 17:51:57 +00:00
Use existing arrow back, updated to use viewbinding
This commit is contained in:
parent
dfdaa4cc57
commit
adea03824a
3 changed files with 45 additions and 69 deletions
|
|
@ -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>
|
|
||||||
|
|
@ -21,13 +21,14 @@
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/back_imagebutton"
|
android:id="@+id/back_imagebutton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="24dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="24dp"
|
||||||
android:layout_centerVertical="true"
|
android:layout_centerVertical="true"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="@dimen/button_padding_small"
|
||||||
android:background="?attr/selectableItemBackgroundBorderless"
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
android:src="@drawable/arrow_back" />
|
android:src="@drawable/ic_arrow_back_white_36dp"
|
||||||
|
app:tint="@android:color/black" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/confirm_action_textview"
|
android:id="@+id/confirm_action_textview"
|
||||||
|
|
|
||||||
|
|
@ -14,27 +14,22 @@ import androidx.fragment.app.DialogFragment
|
||||||
import com.google.android.material.textfield.TextInputEditText
|
import com.google.android.material.textfield.TextInputEditText
|
||||||
import com.google.android.material.textfield.TextInputLayout
|
import com.google.android.material.textfield.TextInputLayout
|
||||||
import com.habitrpg.android.habitica.R
|
import com.habitrpg.android.habitica.R
|
||||||
|
import com.habitrpg.android.habitica.databinding.DialogHabiticaAccountBinding
|
||||||
import com.habitrpg.android.habitica.models.user.User
|
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 _binding: DialogHabiticaAccountBinding? = null
|
||||||
private var backBtn: ImageButton? = null
|
private val binding get() = _binding!!
|
||||||
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
|
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
|
||||||
mainView = inflater.inflate(R.layout.dialog_habitica_account, container, false)
|
_binding = DialogHabiticaAccountBinding.inflate(layoutInflater)
|
||||||
return mainView
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
initViews()
|
|
||||||
|
|
||||||
when (accountAction) {
|
when (accountAction) {
|
||||||
"reset_account" -> setResetAccountViews()
|
"reset_account" -> setResetAccountViews()
|
||||||
|
|
@ -44,24 +39,24 @@ class HabiticaAccountDialog(private var thisContext: Context, private val accoun
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setResetAccountViews() {
|
private fun setResetAccountViews() {
|
||||||
title?.setText(R.string.reset_account_title)
|
binding.titleTextview.setText(R.string.reset_account_title)
|
||||||
warningDescription?.setText(R.string.reset_account_description)
|
binding.warningDescriptionTextview.setText(R.string.reset_account_description)
|
||||||
confirmationTextInputLayout?.setHint(R.string.confirm_reset)
|
binding.confirmationTextInputLayout.setHint(R.string.confirm_reset)
|
||||||
confirmationAction?.setText(R.string.reset_account)
|
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) {
|
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
|
||||||
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
|
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
|
||||||
confirmationAction?.alpha = .4f
|
binding.confirmActionTextview.alpha = .4f
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
|
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
|
||||||
if (confirmationText?.text.toString() == context?.getString(R.string.reset_caps)) {
|
if (binding.confirmationInputEdittext.text.toString() == context?.getString(R.string.reset_caps)) {
|
||||||
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.red_100))
|
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.red_100))
|
||||||
confirmationAction?.alpha = 1.0f
|
binding.confirmActionTextview.alpha = 1.0f
|
||||||
} else {
|
} else {
|
||||||
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
|
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
|
||||||
confirmationAction?.alpha = .4f
|
binding.confirmActionTextview.alpha = .4f
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -69,69 +64,59 @@ class HabiticaAccountDialog(private var thisContext: Context, private val accoun
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
confirmationAction?.setOnClickListener {
|
binding.confirmActionTextview.setOnClickListener {
|
||||||
if (confirmationText?.text.toString() == context?.getString(R.string.reset_caps)) {
|
if (binding.confirmationInputEdittext.text.toString() == context?.getString(R.string.reset_caps)) {
|
||||||
accountUpdateConfirmed.resetConfirmedClicked()
|
accountUpdateConfirmed.resetConfirmedClicked()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setDeleteAccountViews() {
|
private fun setDeleteAccountViews() {
|
||||||
title?.setText(R.string.are_you_sure_you_want_to_delete)
|
binding.titleTextview.setText(R.string.are_you_sure_you_want_to_delete)
|
||||||
confirmationTextInputLayout?.setHint(R.string.password)
|
binding.confirmationTextInputLayout.setHint(R.string.password)
|
||||||
confirmationAction?.setText(R.string.delete_account)
|
binding.confirmActionTextview.setText(R.string.delete_account)
|
||||||
warningDescription?.text = context?.getString(R.string.delete_account_description)
|
binding.warningDescriptionTextview.text = context?.getString(R.string.delete_account_description)
|
||||||
if (user?.authentication?.hasPassword != true) {
|
if (user?.authentication?.hasPassword != true) {
|
||||||
warningDescription?.text = context?.getString(R.string.delete_oauth_account_description)
|
binding.warningDescriptionTextview.text = context?.getString(R.string.delete_oauth_account_description)
|
||||||
confirmationTextInputLayout?.setHint(R.string.confirm_deletion)
|
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) {
|
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
|
||||||
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
|
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
|
||||||
confirmationAction?.alpha = .4f
|
binding.confirmActionTextview.alpha = .4f
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
|
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
|
||||||
if (confirmationText?.text.toString().length > 5) {
|
if (binding.confirmationInputEdittext.text.toString().length > 5) {
|
||||||
if ((user?.authentication?.hasPassword != true && confirmationText?.text.toString() == context?.getString(R.string.delete_caps)) ||
|
if ((user?.authentication?.hasPassword != true && binding.confirmationInputEdittext?.text.toString() == context?.getString(R.string.delete_caps)) ||
|
||||||
user?.authentication?.hasPassword == true) {
|
user?.authentication?.hasPassword == true) {
|
||||||
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.red_100))
|
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.red_100))
|
||||||
confirmationAction?.alpha = 1.0f
|
binding.confirmActionTextview.alpha = 1.0f
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
confirmationAction?.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
|
binding.confirmActionTextview.setTextColor(ContextCompat.getColor(thisContext, R.color.gray_10))
|
||||||
confirmationAction?.alpha = .4f
|
binding.confirmActionTextview.alpha = .4f
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun afterTextChanged(p0: Editable?) {
|
override fun afterTextChanged(p0: Editable?) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
confirmationAction?.setOnClickListener {
|
binding.confirmActionTextview.setOnClickListener {
|
||||||
if (user?.authentication?.hasPassword != true) {
|
if (user?.authentication?.hasPassword != true) {
|
||||||
if (confirmationText?.text.toString() == context?.getString(R.string.delete_caps)) {
|
if (binding.confirmActionTextview.text.toString() == context?.getString(R.string.delete_caps)) {
|
||||||
accountUpdateConfirmed.deletionConfirmClicked(confirmationText?.text.toString())
|
accountUpdateConfirmed.deletionConfirmClicked(binding.confirmationInputEdittext.text.toString())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (confirmationText?.text.toString().length > 5) {
|
if (binding.confirmationInputEdittext.text.toString().length > 5) {
|
||||||
accountUpdateConfirmed.deletionConfirmClicked(confirmationText?.text.toString())
|
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 {
|
override fun getTheme(): Int {
|
||||||
return R.style.HabiticaAccountDialogTheme
|
return R.style.HabiticaAccountDialogTheme
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue