fix(templates): reset parameters to default value before creating views for widgets (closes #1022)

This commit is contained in:
Akash Yadav
2023-06-05 20:50:31 +05:30
parent db23184304
commit 3f0c85ef69
2 changed files with 6 additions and 2 deletions
@@ -52,5 +52,5 @@ interface ITemplateWidgetViewProvider {
* @param widget The widget to create the view for.
* @return The view.
*/
fun createView(context: Context, widget: Widget<*>): View
fun <T> createView(context: Context, widget: Widget<T>): View
}
@@ -30,6 +30,7 @@ import com.itsaky.androidide.templates.EnumParameter
import com.itsaky.androidide.templates.ITemplateWidgetViewProvider
import com.itsaky.androidide.templates.Parameter
import com.itsaky.androidide.templates.Parameter.DefaultObserver
import com.itsaky.androidide.templates.ParameterWidget
import com.itsaky.androidide.templates.SpinnerWidget
import com.itsaky.androidide.templates.StringParameter
import com.itsaky.androidide.templates.TextFieldParameter
@@ -66,7 +67,10 @@ class TemplateWidgetViewProviderImpl : ITemplateWidgetViewProvider {
}
}
override fun createView(context: Context, widget: Widget<*>): View {
override fun <T> createView(context: Context, widget: Widget<T>): View {
if (widget is ParameterWidget<T>) {
widget.parameter.setValue(widget.parameter.default)
}
return when (widget) {
is TextFieldWidget -> createTextField(context, widget)
is CheckBoxWidget -> createCheckBox(context, widget)