Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,8 @@ class BooleanParameterBuilder : ParameterBuilder<Boolean>() {
* is clicked. Click listener to the icon will be set on if this is non-null.
* @property onEndIconClick Function which will be used when the end icon is
* clicked. Click listener to the icon will be set on if this is non-null.
* @property showClearIcon Whether a Material clear-text (X) end icon should be
* shown, allowing the user to empty the field in one tap.
*/
abstract class TextFieldParameter<T>(
@StringRes name: Int,
Expand All @@ -311,7 +313,8 @@ abstract class TextFieldParameter<T>(
val inputType: Int?,
@StyleableRes val imeOptions: Int?,
val maxLines: Int?, tooltipTag: String?, constraints: List<ParameterConstraint>,
id: Int?, nameStr: String?
id: Int?, nameStr: String?,
val showClearIcon: Boolean = false
) : Parameter<T>(name, description, default, tooltipTag, constraints, id, nameStr)

abstract class TextFieldParameterBuilder<T>(
Expand All @@ -322,6 +325,7 @@ abstract class TextFieldParameterBuilder<T>(
var inputType: Int? = null,
var imeOptions: Int? = null,
var maxLines: Int? = null,
var showClearIcon: Boolean = false,
) : ParameterBuilder<T>()

class StringParameter(
Expand All @@ -337,11 +341,12 @@ class StringParameter(
tooltipTag: String?,
constraints: List<ParameterConstraint>,
id: Int?,
nameStr: String?
nameStr: String?,
showClearIcon: Boolean = false
) : TextFieldParameter<String>(
name, description, default, startIcon, endIcon,
onStartIconClick, onEndIconClick, inputType, imeOptions, maxLines, tooltipTag, constraints,
id, nameStr
id, nameStr, showClearIcon
)

class StringParameterBuilder : TextFieldParameterBuilder<String>() {
Expand All @@ -361,7 +366,8 @@ class StringParameterBuilder : TextFieldParameterBuilder<String>() {
tooltipTag = tooltipTag,
constraints = constraints,
id = id,
nameStr = nameStr
nameStr = nameStr,
showClearIcon = showClearIcon
)
}
}
Expand Down Expand Up @@ -438,6 +444,7 @@ inline fun projectNameParameter(
name = string.project_app_name
default = "My Application"
startIcon = { R.drawable.ic_android }
showClearIcon = true
constraints = listOf(NONEMPTY)
inputType =
android.text.InputType.TYPE_CLASS_TEXT or android.text.InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,9 @@ class TemplateWidgetViewProviderImpl : ITemplateWidgetViewProvider {
root.setHint(name)
}
resetStartAndEndIcons(context, root)
if (showClearIcon) {
root.endIconMode = TextInputLayout.END_ICON_CLEAR_TEXT
}
root.editText!!.addTextChangedListener(object : SingleTextWatcher() {
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
onTextChanged(s?.toString() ?: "")
Expand Down
Loading