|
|
|
@ -8,6 +8,7 @@ import net.pokeranalytics.android.model.realm.FilterCondition |
|
|
|
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType |
|
|
|
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType |
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor |
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor |
|
|
|
|
|
|
|
import net.pokeranalytics.android.util.NULL_TEXT |
|
|
|
import java.util.* |
|
|
|
import java.util.* |
|
|
|
|
|
|
|
|
|
|
|
interface FilterItemRow : RowRepresentable { |
|
|
|
interface FilterItemRow : RowRepresentable { |
|
|
|
@ -65,6 +66,10 @@ interface FilterItemRow : RowRepresentable { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
interface FilterValueHolder { |
|
|
|
|
|
|
|
fun valueFormatted(context: Context): CharSequence? |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
open class BaseFilterItemRow(queryCondition: QueryCondition, override var filterSectionRow: FilterSectionRow) : FilterItemRow { |
|
|
|
open class BaseFilterItemRow(queryCondition: QueryCondition, override var filterSectionRow: FilterSectionRow) : FilterItemRow { |
|
|
|
|
|
|
|
|
|
|
|
var rawCondition: QueryCondition = queryCondition |
|
|
|
var rawCondition: QueryCondition = queryCondition |
|
|
|
@ -79,6 +84,9 @@ open class BaseFilterItemRow(queryCondition: QueryCondition, override var filter |
|
|
|
return this.rawCondition.getDisplayName(context) |
|
|
|
return this.rawCondition.getDisplayName(context) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override val resId: Int? |
|
|
|
|
|
|
|
get() { return this.rawCondition.resId } |
|
|
|
|
|
|
|
|
|
|
|
override val viewType: Int |
|
|
|
override val viewType: Int |
|
|
|
get() { return this.rawCondition.viewType } |
|
|
|
get() { return this.rawCondition.viewType } |
|
|
|
|
|
|
|
|
|
|
|
@ -88,7 +96,7 @@ open class BaseFilterItemRow(queryCondition: QueryCondition, override var filter |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
abstract class ValueFilterItemRow<T: Comparable<T>>(queryCondition: QueryCondition.SingleValue<T>, filterSectionRow: FilterSectionRow): BaseFilterItemRow(queryCondition, filterSectionRow) { |
|
|
|
abstract class ValueFilterItemRow<T: Comparable<T>>(queryCondition: QueryCondition.SingleValue<T>, filterSectionRow: FilterSectionRow): BaseFilterItemRow(queryCondition, filterSectionRow), FilterValueHolder { |
|
|
|
|
|
|
|
|
|
|
|
private var valueCondition: QueryCondition.SingleValue<T> = queryCondition |
|
|
|
private var valueCondition: QueryCondition.SingleValue<T> = queryCondition |
|
|
|
|
|
|
|
|
|
|
|
@ -103,6 +111,13 @@ abstract class ValueFilterItemRow<T: Comparable<T>>(queryCondition: QueryConditi |
|
|
|
return null |
|
|
|
return null |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun valueFormatted(context: Context): CharSequence? { |
|
|
|
|
|
|
|
this.value?.let { |
|
|
|
|
|
|
|
return this.valueCondition.labelForValue(it, context) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return NULL_TEXT |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override fun updateValue(fc: FilterCondition) { |
|
|
|
override fun updateValue(fc: FilterCondition) { |
|
|
|
|
|
|
|
|
|
|
|
// TODO |
|
|
|
// TODO |
|
|
|
@ -113,7 +128,7 @@ abstract class ValueFilterItemRow<T: Comparable<T>>(queryCondition: QueryConditi |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
abstract class ValueListFilterItemRow<T: Comparable<T>>(queryCondition: QueryCondition.ListOfValues<T>, filterSectionRow: FilterSectionRow): BaseFilterItemRow(queryCondition, filterSectionRow) { |
|
|
|
abstract class ValueListFilterItemRow<T: Comparable<T>>(queryCondition: QueryCondition.ListOfValues<T>, filterSectionRow: FilterSectionRow): BaseFilterItemRow(queryCondition, filterSectionRow), FilterValueHolder { |
|
|
|
|
|
|
|
|
|
|
|
private var listCondition: QueryCondition.ListOfValues<T> = queryCondition |
|
|
|
private var listCondition: QueryCondition.ListOfValues<T> = queryCondition |
|
|
|
|
|
|
|
|
|
|
|
@ -134,6 +149,15 @@ abstract class ValueListFilterItemRow<T: Comparable<T>>(queryCondition: QueryCon |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun valueFormatted(context: Context): CharSequence? { |
|
|
|
|
|
|
|
this.list.firstOrNull()?.let { |
|
|
|
|
|
|
|
return this.listCondition.labelForValue(it, context) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return NULL_TEXT |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// override fun getDisplayName(context: Context): String { |
|
|
|
// override fun getDisplayName(context: Context): String { |
|
|
|
// return this.listCondition.getDisplayName(context, this.list) |
|
|
|
// return this.listCondition.getDisplayName(context, this.list) |
|
|
|
// } |
|
|
|
// } |
|
|
|
|