Manage placeholder for bottom sheet edittext

dev
Aurelien Hubert 7 years ago
parent c10d4d749f
commit 5d02ab8872
  1. 16
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetDoubleEditTextFragment.kt
  2. 7
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt
  3. 5
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt

@ -27,7 +27,6 @@ class BottomSheetDoubleEditTextFragment : BottomSheetFragment() {
override fun onStart() {
super.onStart()
if (isEditingBlinds) {
editText2.requestFocus()
} else {
@ -43,6 +42,7 @@ class BottomSheetDoubleEditTextFragment : BottomSheetFragment() {
* Init data
*/
private fun initData() {
valueHasPlaceholder = true
isEditingBlinds = row == SessionRow.BLINDS
}
@ -64,17 +64,23 @@ class BottomSheetDoubleEditTextFragment : BottomSheetFragment() {
values[0] = (data[0].defaultValue ?: "").toString()
values[1] = (data[1].defaultValue ?: "").toString()
data[0].hint?.let { editText1.hint = getString(it) }
editText1.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
data[1].hint?.let { editText2.hint = getString(it) }
editText2.inputType = data[1].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
if (valueHasPlaceholder) {
editText1.hint = values[0]
editText2.hint = values[1]
} else {
editText1.setText(values[0])
editText2.setText(values[1])
}
data[0].hint?.let { editText1.hint = getString(it) }
editText1.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
editText1.addTextChangedListener {
values[0] = it?.toString() ?: ""
}
data[1].hint?.let { editText2.hint = getString(it) }
editText2.inputType = data[1].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
editText2.addTextChangedListener {
values[1] = it?.toString() ?: ""
if (isEditingBlinds) {

@ -43,12 +43,14 @@ class BottomSheetEditTextFragment : BottomSheetFragment() {
* Init data
*/
private fun initData() {
valueHasPlaceholder = true
}
/**
* Init UI
*/
private fun initUI() {
val data = getData()?:throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found")
if (data.size != 1) {
throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency")
@ -62,8 +64,13 @@ class BottomSheetEditTextFragment : BottomSheetFragment() {
this.value = it?.toString()
}
data[0].defaultValue?.let {
if (valueHasPlaceholder) {
this.value = it.toString()
editText1.hint = it.toString()
} else {
editText1.setText(it.toString())
}
}
editText1.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_DONE) {

@ -30,6 +30,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
lateinit var row: RowRepresentable
lateinit var delegate: RowRepresentableDelegate
var currentCurrency: Currency? = null
var valueHasPlaceholder: Boolean = false
private var isClearable: Boolean = true
private var isDeletable: Boolean = false
@ -46,7 +47,8 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
rowRepresentableEditDescriptors: ArrayList<RowRepresentableEditDescriptor>?,
isClearable: Boolean? = true,
currentCurrency: Currency? = null,
isDeletable: Boolean? = false
isDeletable: Boolean? = false,
valueHasPlaceholder: Boolean? = false
): BottomSheetFragment {
val bottomSheetFragment = row.bottomSheetType.newInstance()
bottomSheetFragment.show(fragmentManager, "bottomSheet")
@ -55,6 +57,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
bottomSheetFragment.rowRepresentableEditDescriptors = rowRepresentableEditDescriptors
bottomSheetFragment.isClearable = isClearable ?: true
bottomSheetFragment.isDeletable = isDeletable ?: true
bottomSheetFragment.valueHasPlaceholder = valueHasPlaceholder ?: true
bottomSheetFragment.currentCurrency = currentCurrency
return bottomSheetFragment
}

Loading…
Cancel
Save