|
|
@@ -63,6 +63,8 @@ class NumberWidgetView(
|
|
|
|
|
|
private val binding = WidgetNumberBinding.inflate(LayoutInflater.from(context), this)
|
|
|
|
|
|
+ private var initInput: String? = null
|
|
|
+
|
|
|
override fun onViewCreated(lifecycleOwner: LifecycleOwner, widget: NumberWidgetData) {
|
|
|
super.onViewCreated(lifecycleOwner, widget)
|
|
|
if (widget.fieldData.fieldName.isEmpty()) {
|
|
|
@@ -106,66 +108,54 @@ class NumberWidgetView(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- when (widgetData?.fieldData) {
|
|
|
+ val inputText = when (widgetData?.fieldData) {
|
|
|
is DoubleArrayStepField -> {
|
|
|
- val inputText =
|
|
|
- (widgetData?.fieldData as DoubleArrayStepField).fieldValue?.joinToString(
|
|
|
- separator = ","
|
|
|
- ) {
|
|
|
- formatNumberStr(it, false)
|
|
|
- }
|
|
|
- binding.etInput.setText(inputText)
|
|
|
- binding.tvPriceInput.text = inputText
|
|
|
+ (widgetData?.fieldData as DoubleArrayStepField).fieldValue?.joinToString(
|
|
|
+ separator = ","
|
|
|
+ ) {
|
|
|
+ formatNumberStr(it, false)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
is DoubleStepField -> {
|
|
|
- val inputText = (widgetData?.fieldData as DoubleStepField).fieldValue?.let {
|
|
|
+ (widgetData?.fieldData as DoubleStepField).fieldValue?.let {
|
|
|
formatNumberStr(it, false)
|
|
|
}
|
|
|
- binding.etInput.setText(inputText)
|
|
|
- binding.tvPriceInput.text = inputText
|
|
|
}
|
|
|
|
|
|
is IntegerArrayStepField -> {
|
|
|
- val inputText =
|
|
|
- (widgetData?.fieldData as IntegerArrayStepField).fieldValue?.joinToString(
|
|
|
- separator = ","
|
|
|
- ) {
|
|
|
- formatNumberStr(it, false)
|
|
|
- }
|
|
|
- binding.etInput.setText(inputText)
|
|
|
- binding.tvPriceInput.text = inputText
|
|
|
+ (widgetData?.fieldData as IntegerArrayStepField).fieldValue?.joinToString(
|
|
|
+ separator = ","
|
|
|
+ ) {
|
|
|
+ formatNumberStr(it, false)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
is IntegerStepField -> {
|
|
|
- val inputText = (widgetData?.fieldData as IntegerStepField).fieldValue?.let {
|
|
|
+ (widgetData?.fieldData as IntegerStepField).fieldValue?.let {
|
|
|
formatNumberStr(it, false)
|
|
|
}
|
|
|
- binding.etInput.setText(inputText)
|
|
|
- binding.tvPriceInput.text = inputText
|
|
|
}
|
|
|
|
|
|
is StringArrayStepField -> {
|
|
|
- val inputText =
|
|
|
- (widgetData?.fieldData as StringArrayStepField).fieldValue?.joinToString(
|
|
|
- separator = ","
|
|
|
- ) {
|
|
|
- it
|
|
|
- }
|
|
|
- binding.etInput.setText(inputText)
|
|
|
- binding.tvPriceInput.text = inputText
|
|
|
+ (widgetData?.fieldData as StringArrayStepField).fieldValue?.joinToString(
|
|
|
+ separator = ","
|
|
|
+ ) {
|
|
|
+ it
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
is StringStepField -> {
|
|
|
- val inputText = (widgetData?.fieldData as StringStepField).fieldValue
|
|
|
- binding.etInput.setText(inputText)
|
|
|
- binding.tvPriceInput.text = inputText
|
|
|
+ (widgetData?.fieldData as StringStepField).fieldValue
|
|
|
}
|
|
|
|
|
|
null -> {
|
|
|
-
|
|
|
+ null
|
|
|
}
|
|
|
}
|
|
|
+ initInput = inputText
|
|
|
+ binding.etInput.setText(inputText)
|
|
|
+ binding.tvPriceInput.text = inputText
|
|
|
|
|
|
if (widget.fieldData.example?.isValid() == true) {
|
|
|
binding.btnExample.background = commonSelectedDrawable()
|
|
|
@@ -359,6 +349,15 @@ class NumberWidgetView(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ override fun hasEditFieldValue(): Boolean {
|
|
|
+ val currentValue = if (widgetData?.fieldData?.isPriceField() == true) {
|
|
|
+ binding.tvPriceInput.text?.toString()
|
|
|
+ } else {
|
|
|
+ binding.etInput.text?.toString()
|
|
|
+ }
|
|
|
+ return initInput != currentValue
|
|
|
+ }
|
|
|
+
|
|
|
private fun showPriceInputDialog() {
|
|
|
val act = getActivity() ?: return
|
|
|
PriceInputDialog().apply {
|