|
|
|
|
@ -114,43 +114,52 @@ open class FilterDetailsFragment : RealmFragment(), RowRepresentableDelegate { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
when (row) { |
|
|
|
|
is DateFilterItemRow -> { |
|
|
|
|
when (val condition = row.rawCondition) { |
|
|
|
|
is QueryCondition.DateQuery -> DateTimePickerManager.create( |
|
|
|
|
requireContext(), |
|
|
|
|
row, |
|
|
|
|
this, |
|
|
|
|
row.value, |
|
|
|
|
onlyDate = !condition.showTime, |
|
|
|
|
onlyTime = condition.showTime |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
is IntFilterItemRow -> { |
|
|
|
|
when (val condition = row.rawCondition) { |
|
|
|
|
is QueryCondition.Duration -> { |
|
|
|
|
val hours = (condition.minutes / 60).toString() |
|
|
|
|
val minutes = (condition.minutes % 60).toString() |
|
|
|
|
val data = row.editingDescriptors(mapOf("hours" to hours, "minutes" to minutes)) |
|
|
|
|
showBottomSheet(row, this, data, true) |
|
|
|
|
} |
|
|
|
|
(row as? BaseFilterItemRow)?.let { |
|
|
|
|
when (val condition = it.rawCondition) { |
|
|
|
|
is QueryCondition.DateQuery -> DateTimePickerManager.create( |
|
|
|
|
requireContext(), |
|
|
|
|
row, |
|
|
|
|
this, |
|
|
|
|
(row as DateFilterItemRow).value, |
|
|
|
|
onlyDate = !condition.showTime, |
|
|
|
|
onlyTime = condition.showTime |
|
|
|
|
) |
|
|
|
|
is QueryCondition.Duration -> { |
|
|
|
|
val hours = (condition.minutes / 60).toString() |
|
|
|
|
val minutes = (condition.minutes % 60).toString() |
|
|
|
|
val data = row.editingDescriptors(mapOf("hours" to hours, "minutes" to minutes)) |
|
|
|
|
showBottomSheet(row, this, data, true) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
is ValueListFilterItemRow<*> -> { |
|
|
|
|
when (row.rawCondition) { |
|
|
|
|
is QueryCondition.ListOfValues<*> -> { |
|
|
|
|
var valueAsString: String? = null |
|
|
|
|
row.list.firstOrNull()?.let { |
|
|
|
|
valueAsString = row.list.firstOrNull()?.toString() |
|
|
|
|
} |
|
|
|
|
val data = row.editingDescriptors(mapOf("valueAsString" to valueAsString)) |
|
|
|
|
showBottomSheet(row, this, data, true) |
|
|
|
|
} |
|
|
|
|
is QueryCondition.ListOfValues<*> -> { |
|
|
|
|
val valueAsString: String? = (row as FilterValueHolder).singleValue?.toString() |
|
|
|
|
// row.list.firstOrNull()?.let { |
|
|
|
|
// valueAsString = row.list.firstOrNull()?.toString() |
|
|
|
|
// } |
|
|
|
|
val data = row.editingDescriptors(mapOf("valueAsString" to valueAsString)) |
|
|
|
|
showBottomSheet(row, this, data, true) |
|
|
|
|
} |
|
|
|
|
else -> { } |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// when (row) { |
|
|
|
|
// is DateFilterItemRow -> { |
|
|
|
|
// when (val condition = row.rawCondition) { |
|
|
|
|
// |
|
|
|
|
// } |
|
|
|
|
// } |
|
|
|
|
// is IntFilterItemRow -> { |
|
|
|
|
// when (val condition = row.rawCondition) { |
|
|
|
|
// |
|
|
|
|
// } |
|
|
|
|
// } |
|
|
|
|
// is ValueListFilterItemRow<*> -> { |
|
|
|
|
// when (row.rawCondition) { |
|
|
|
|
// |
|
|
|
|
// } |
|
|
|
|
// } |
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// (row as? BaseFilterItemRow)?.let { filterItemRow -> |
|
|
|
|
// val rawCondition = filterItemRow.rawCondition |
|
|
|
|
|