|
|
|
@ -4,6 +4,7 @@ import android.content.Context |
|
|
|
import net.pokeranalytics.android.R |
|
|
|
import net.pokeranalytics.android.R |
|
|
|
import net.pokeranalytics.android.model.LiveData |
|
|
|
import net.pokeranalytics.android.model.LiveData |
|
|
|
import net.pokeranalytics.android.model.extensions.SessionState |
|
|
|
import net.pokeranalytics.android.model.extensions.SessionState |
|
|
|
|
|
|
|
import net.pokeranalytics.android.model.realm.Session |
|
|
|
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType |
|
|
|
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
@ -43,7 +44,7 @@ interface RowRepresentable : Displayable { |
|
|
|
* An interface used so that enums values can be represented visually |
|
|
|
* An interface used so that enums values can be represented visually |
|
|
|
* as rows in RecyclerViews |
|
|
|
* as rows in RecyclerViews |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
interface Displayable: Localizable { |
|
|
|
interface Displayable : Localizable { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* The type of view associated with the row |
|
|
|
* The type of view associated with the row |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@ -78,10 +79,12 @@ interface Displayable: Localizable { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* A class to display headers as row representable |
|
|
|
* A class to display headers as row representable |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
class HeaderRowRepresentable(customViewType: RowViewType? = RowViewType.HEADER, |
|
|
|
class HeaderRowRepresentable( |
|
|
|
override var resId: Int? = null, |
|
|
|
customViewType: RowViewType? = RowViewType.HEADER, |
|
|
|
var title: String? = null, |
|
|
|
override var resId: Int? = null, |
|
|
|
var value: String? = null) : RowRepresentable { |
|
|
|
var title: String? = null, |
|
|
|
|
|
|
|
var value: String? = null |
|
|
|
|
|
|
|
) : RowRepresentable { |
|
|
|
|
|
|
|
|
|
|
|
override val viewType: Int = customViewType?.ordinal ?: RowViewType.HEADER.ordinal |
|
|
|
override val viewType: Int = customViewType?.ordinal ?: RowViewType.HEADER.ordinal |
|
|
|
override var displayHeader: Boolean = false |
|
|
|
override var displayHeader: Boolean = false |
|
|
|
@ -91,8 +94,12 @@ class HeaderRowRepresentable(customViewType: RowViewType? = RowViewType.HEADER, |
|
|
|
|
|
|
|
|
|
|
|
enum class SessionRow : RowRepresentable { |
|
|
|
enum class SessionRow : RowRepresentable { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PRIZE, |
|
|
|
CASHED_OUT, |
|
|
|
CASHED_OUT, |
|
|
|
|
|
|
|
INITIAL_BUY_IN, |
|
|
|
BUY_IN, |
|
|
|
BUY_IN, |
|
|
|
|
|
|
|
POSITION, |
|
|
|
|
|
|
|
PLAYERS, |
|
|
|
TIPS, |
|
|
|
TIPS, |
|
|
|
|
|
|
|
|
|
|
|
GAME, |
|
|
|
GAME, |
|
|
|
@ -100,6 +107,7 @@ enum class SessionRow : RowRepresentable { |
|
|
|
LOCATION, |
|
|
|
LOCATION, |
|
|
|
BANKROLL, |
|
|
|
BANKROLL, |
|
|
|
TABLE_SIZE, |
|
|
|
TABLE_SIZE, |
|
|
|
|
|
|
|
TOURNAMENT_TYPE, |
|
|
|
START_DATE, |
|
|
|
START_DATE, |
|
|
|
END_DATE, |
|
|
|
END_DATE, |
|
|
|
|
|
|
|
|
|
|
|
@ -110,38 +118,49 @@ enum class SessionRow : RowRepresentable { |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Return the rows to display for the current session state |
|
|
|
* Return the rows to display for the current session state |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
fun getRowsForState(sessionState: SessionState): ArrayList<RowRepresentable> { |
|
|
|
fun getRows(type: Int, sessionState: SessionState): ArrayList<RowRepresentable> { |
|
|
|
return when (sessionState) { |
|
|
|
when (type) { |
|
|
|
SessionState.PENDING -> { |
|
|
|
Session.TYPE_TOURNAMENT -> { |
|
|
|
arrayListOf(GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE) |
|
|
|
return when (sessionState) { |
|
|
|
|
|
|
|
SessionState.PENDING -> { |
|
|
|
|
|
|
|
arrayListOf( |
|
|
|
|
|
|
|
GAME, INITIAL_BUY_IN, LOCATION, BANKROLL, TABLE_SIZE, TOURNAMENT_TYPE, |
|
|
|
|
|
|
|
START_DATE, END_DATE |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
SessionState.STARTED, SessionState.PAUSED, SessionState.FINISHED -> { |
|
|
|
|
|
|
|
arrayListOf( |
|
|
|
|
|
|
|
PRIZE, BUY_IN, POSITION, PLAYERS, TIPS, |
|
|
|
|
|
|
|
GAME, INITIAL_BUY_IN, LOCATION, BANKROLL, TABLE_SIZE, TOURNAMENT_TYPE, |
|
|
|
|
|
|
|
START_DATE, END_DATE, BREAK_TIME, COMMENT |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else -> arrayListOf() |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
SessionState.STARTED -> { |
|
|
|
Session.TYPE_GAME -> { |
|
|
|
arrayListOf( |
|
|
|
return when (sessionState) { |
|
|
|
CASHED_OUT, BUY_IN, TIPS, |
|
|
|
SessionState.PENDING -> { |
|
|
|
GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE, BREAK_TIME, COMMENT |
|
|
|
arrayListOf(GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE) |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
SessionState.STARTED, SessionState.PAUSED, SessionState.FINISHED -> { |
|
|
|
|
|
|
|
arrayListOf( |
|
|
|
|
|
|
|
CASHED_OUT, BUY_IN, TIPS, |
|
|
|
|
|
|
|
GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE, BREAK_TIME, COMMENT |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else -> arrayListOf() |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
SessionState.PAUSED -> { |
|
|
|
|
|
|
|
arrayListOf( |
|
|
|
|
|
|
|
CASHED_OUT, BUY_IN, TIPS, |
|
|
|
|
|
|
|
GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE, BREAK_TIME, COMMENT |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
SessionState.FINISHED -> { |
|
|
|
|
|
|
|
arrayListOf( |
|
|
|
|
|
|
|
CASHED_OUT, BUY_IN, TIPS, |
|
|
|
|
|
|
|
GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE, BREAK_TIME, COMMENT |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else -> arrayListOf() |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return arrayListOf() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override val needSeparator: Boolean |
|
|
|
override val needSeparator: Boolean |
|
|
|
get() { |
|
|
|
get() { |
|
|
|
return when (this) { |
|
|
|
return when (this) { |
|
|
|
TIPS -> true |
|
|
|
SessionRow.TIPS -> true |
|
|
|
else -> false |
|
|
|
else -> false |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -149,16 +168,19 @@ enum class SessionRow : RowRepresentable { |
|
|
|
override val resId: Int? |
|
|
|
override val resId: Int? |
|
|
|
get() { |
|
|
|
get() { |
|
|
|
return when (this) { |
|
|
|
return when (this) { |
|
|
|
|
|
|
|
PRIZE -> R.string.prize |
|
|
|
|
|
|
|
POSITION -> R.string.position |
|
|
|
|
|
|
|
PLAYERS -> R.string.players |
|
|
|
CASHED_OUT -> R.string.cashed_out |
|
|
|
CASHED_OUT -> R.string.cashed_out |
|
|
|
|
|
|
|
INITIAL_BUY_IN -> R.string.initial_stack |
|
|
|
BUY_IN -> R.string.buyin |
|
|
|
BUY_IN -> R.string.buyin |
|
|
|
TIPS -> R.string.tips |
|
|
|
TIPS -> R.string.tips |
|
|
|
|
|
|
|
|
|
|
|
GAME -> R.string.game |
|
|
|
GAME -> R.string.game |
|
|
|
BLINDS -> R.string.blinds |
|
|
|
BLINDS -> R.string.blinds |
|
|
|
LOCATION -> R.string.location |
|
|
|
LOCATION -> R.string.location |
|
|
|
BANKROLL -> R.string.bankroll |
|
|
|
BANKROLL -> R.string.bankroll |
|
|
|
TABLE_SIZE -> R.string.table_size |
|
|
|
TABLE_SIZE -> R.string.table_size |
|
|
|
|
|
|
|
TOURNAMENT_TYPE -> R.string.tournament_type |
|
|
|
START_DATE -> R.string.start_date |
|
|
|
START_DATE -> R.string.start_date |
|
|
|
END_DATE -> R.string.end_date |
|
|
|
END_DATE -> R.string.end_date |
|
|
|
BREAK_TIME -> R.string.break_time |
|
|
|
BREAK_TIME -> R.string.break_time |
|
|
|
@ -169,19 +191,20 @@ enum class SessionRow : RowRepresentable { |
|
|
|
override val viewType: Int |
|
|
|
override val viewType: Int |
|
|
|
get() { |
|
|
|
get() { |
|
|
|
return when (this) { |
|
|
|
return when (this) { |
|
|
|
CASHED_OUT, BUY_IN, TIPS, |
|
|
|
PRIZE, POSITION, PLAYERS, CASHED_OUT, INITIAL_BUY_IN, BUY_IN, TIPS, |
|
|
|
GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, COMMENT, START_DATE, END_DATE, BREAK_TIME -> RowViewType.TITLE_VALUE.ordinal |
|
|
|
GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, COMMENT, |
|
|
|
|
|
|
|
TOURNAMENT_TYPE, START_DATE, END_DATE, BREAK_TIME -> RowViewType.TITLE_VALUE.ordinal |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
override val bottomSheetType: BottomSheetType |
|
|
|
override val bottomSheetType: BottomSheetType |
|
|
|
get() { |
|
|
|
get() { |
|
|
|
return when (this) { |
|
|
|
return when (this) { |
|
|
|
CASHED_OUT, BREAK_TIME -> BottomSheetType.EDIT_TEXT |
|
|
|
CASHED_OUT, INITIAL_BUY_IN, BREAK_TIME -> BottomSheetType.EDIT_TEXT |
|
|
|
BUY_IN, TIPS -> BottomSheetType.SUM |
|
|
|
BUY_IN, TIPS -> BottomSheetType.SUM |
|
|
|
BLINDS -> BottomSheetType.DOUBLE_EDIT_TEXT |
|
|
|
BLINDS -> BottomSheetType.DOUBLE_EDIT_TEXT |
|
|
|
GAME -> BottomSheetType.LIST_GAME |
|
|
|
GAME -> BottomSheetType.LIST_GAME |
|
|
|
LOCATION, BANKROLL -> BottomSheetType.LIST |
|
|
|
LOCATION, BANKROLL, TOURNAMENT_TYPE -> BottomSheetType.LIST |
|
|
|
TABLE_SIZE -> BottomSheetType.GRID |
|
|
|
TABLE_SIZE -> BottomSheetType.GRID |
|
|
|
COMMENT -> BottomSheetType.EDIT_TEXT |
|
|
|
COMMENT -> BottomSheetType.EDIT_TEXT |
|
|
|
else -> BottomSheetType.NONE |
|
|
|
else -> BottomSheetType.NONE |
|
|
|
|