applying autofill hints for phonenumber and email entry

This commit is contained in:
Adam Brown 2022-05-19 14:36:48 +01:00
parent df6ebcacd1
commit a8b73f0cf9
3 changed files with 16 additions and 9 deletions

View file

@ -16,9 +16,11 @@
package im.vector.app.core.extensions package im.vector.app.core.extensions
import android.os.Build
import android.text.Editable import android.text.Editable
import android.view.View import android.view.View
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import androidx.autofill.HintConstants
import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.google.android.material.textfield.TextInputLayout import com.google.android.material.textfield.TextInputLayout
@ -79,3 +81,12 @@ fun TextInputLayout.setOnFocusLostListener(action: () -> Unit) {
} }
} }
} }
fun TextInputLayout.autofillPhoneNumber() = setAutofillHint(HintConstants.AUTOFILL_HINT_PHONE_NUMBER)
fun TextInputLayout.autofillEmail() = setAutofillHint(HintConstants.AUTOFILL_HINT_EMAIL_ADDRESS)
private fun TextInputLayout.setAutofillHint(hintType: String) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
setAutofillHints(hintType)
}
}

View file

@ -16,13 +16,12 @@
package im.vector.app.features.onboarding.ftueauth package im.vector.app.features.onboarding.ftueauth
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.autofill.HintConstants
import im.vector.app.core.extensions.associateContentStateWith import im.vector.app.core.extensions.associateContentStateWith
import im.vector.app.core.extensions.autofillEmail
import im.vector.app.core.extensions.clearErrorOnChange import im.vector.app.core.extensions.clearErrorOnChange
import im.vector.app.core.extensions.content import im.vector.app.core.extensions.content
import im.vector.app.core.extensions.isEmail import im.vector.app.core.extensions.isEmail
@ -49,13 +48,7 @@ class FtueAuthEmailEntryFragment @Inject constructor() : AbstractFtueAuthFragmen
views.emailEntryInput.setOnImeDoneListener { updateEmail() } views.emailEntryInput.setOnImeDoneListener { updateEmail() }
views.emailEntryInput.clearErrorOnChange(viewLifecycleOwner) views.emailEntryInput.clearErrorOnChange(viewLifecycleOwner)
views.emailEntrySubmit.debouncedClicks { updateEmail() } views.emailEntrySubmit.debouncedClicks { updateEmail() }
setupAutoFill() views.emailEntryInput.autofillEmail()
}
private fun setupAutoFill() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
views.emailEntryInput.setAutofillHints(HintConstants.AUTOFILL_HINT_PHONE_NUMBER)
}
} }
private fun updateEmail() { private fun updateEmail() {

View file

@ -22,6 +22,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import im.vector.app.core.extensions.associateContentStateWith import im.vector.app.core.extensions.associateContentStateWith
import im.vector.app.core.extensions.autofillPhoneNumber
import im.vector.app.core.extensions.content import im.vector.app.core.extensions.content
import im.vector.app.core.extensions.editText import im.vector.app.core.extensions.editText
import im.vector.app.core.extensions.isEmail import im.vector.app.core.extensions.isEmail
@ -57,6 +58,8 @@ class FtueAuthPhoneEntryFragment @Inject constructor() : AbstractFtueAuthFragmen
views.emailEntrySubmit.isEnabled = it.isEmail() views.emailEntrySubmit.isEnabled = it.isEmail()
} }
.launchIn(viewLifecycleOwner.lifecycleScope) .launchIn(viewLifecycleOwner.lifecycleScope)
views.emailEntryInput.autofillPhoneNumber()
} }
private fun updateEmail() { private fun updateEmail() {