Only show clear field button when field has focus + don't empty field but set default value

This commit is contained in:
Sylvain Berfini 2020-03-31 17:42:43 +02:00
parent 5f1984fe4b
commit a703299aae
3 changed files with 13 additions and 3 deletions

View file

@ -103,11 +103,12 @@ class ControlsViewModel : ViewModel() {
}
override fun onAudioDeviceChanged(core: Core, audioDevice: AudioDevice) {
updateAudioRelated()
updateSpeakerState()
updateBluetoothHeadsetState()
}
override fun onAudioDevicesListUpdated(core: Core) {
updateAudioRelated()
updateAudioRoutesState()
}
}

View file

@ -154,6 +154,13 @@ fun editTextSetting(view: EditText, lambda: () -> Unit) {
})
}
@BindingAdapter("onFocusChangeVisibilityOf")
fun setEditTextOnFocusChangeVisibilityOf(editText: EditText, view: View) {
editText.setOnFocusChangeListener { _, hasFocus ->
view.visibility = if (hasFocus) View.VISIBLE else View.INVISIBLE
}
}
@BindingAdapter("selectedIndex", "settingListener")
fun spinnerSetting(spinner: Spinner, selectedIndex: Int, listener: SettingListener) {
spinner.setSelection(selectedIndex, true)

View file

@ -31,7 +31,8 @@
<ImageView
android:id="@+id/settings_clear_input"
android:onClick="@{() -> settingsInput.setText(``)}"
android:onClick="@{() -> settingsInput.setText(defaultValue)}"
android:visibility="invisible"
android:contentDescription="@string/content_description_clear_field"
android:layout_width="20dp"
android:layout_height="20dp"
@ -57,6 +58,7 @@
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/settings_input"
onValueChanged="@{() -> listener.onTextValueChanged(settingsInput.getText().toString())}"
onFocusChangeVisibilityOf="@{settingsClearInput}"
android:text="@{defaultValue}"
android:imeOptions="actionDone"
android:inputType="@{inputType ?? InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS}"