diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt index abeb8fdd..cdff56ca 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt @@ -21,6 +21,7 @@ import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor import net.pokeranalytics.android.ui.view.RowViewType import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentable +import net.pokeranalytics.android.ui.view.rowrepresentable.SeparatorRowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.SessionRow import net.pokeranalytics.android.util.* import java.util.* @@ -303,6 +304,9 @@ open class Session : RealmObject(), SessionInterface, Savable, return 0.0 } + @Ignore + override val viewType: Int = RowViewType.ROW_SESSION.ordinal + override fun uniqueIdentifier(): String { return this.id } @@ -323,6 +327,7 @@ open class Session : RealmObject(), SessionInterface, Savable, title = getDuration(), value = result?.net.toString() ) ) + rows.add(SeparatorRowRepresentable()) } SessionState.PAUSED -> { rows.add( @@ -331,6 +336,7 @@ open class Session : RealmObject(), SessionInterface, Savable, resId = R.string.pause, value = result?.net.toString() ) ) + rows.add(SeparatorRowRepresentable()) } SessionState.FINISHED -> { rows.add( @@ -356,6 +362,8 @@ open class Session : RealmObject(), SessionInterface, Savable, ) ) } + + rows.add(SeparatorRowRepresentable()) } else -> { } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt index f13e6b38..7b2aafda 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt @@ -165,11 +165,7 @@ class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource } override fun viewTypeForPosition(position: Int): Int { - return if (rows[position].viewType == RowViewType.HEADER_TITLE.ordinal) { - RowViewType.HEADER_TITLE.ordinal - } else { - RowViewType.ROW_SESSION.ordinal - } + return rows[position].viewType } override fun indexForRow(row: RowRepresentable): Int { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt index 2358c012..ae45eeac 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt @@ -27,7 +27,7 @@ interface Displayable : Localizable { */ val viewType: Int get() { - return 0 + return -1 } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt index c95c2036..69c3f4af 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt @@ -7,17 +7,8 @@ import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatTextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView -import kotlinx.android.synthetic.main.row_bottom_sheet_grid_title.view.* -import kotlinx.android.synthetic.main.row_bottom_sheet_title.view.* -import kotlinx.android.synthetic.main.row_header_title.view.* -import kotlinx.android.synthetic.main.row_header_title_amount.view.* -import kotlinx.android.synthetic.main.row_header_title_value.view.* import kotlinx.android.synthetic.main.row_history_session.view.* import kotlinx.android.synthetic.main.row_stats_title_value.view.* -import kotlinx.android.synthetic.main.row_title.view.* -import kotlinx.android.synthetic.main.row_title_switch.view.* -import kotlinx.android.synthetic.main.row_title_value.view.* -import kotlinx.android.synthetic.main.row_title_value_action.view.* import net.pokeranalytics.android.R import net.pokeranalytics.android.calculus.ComputedStat import net.pokeranalytics.android.calculus.Stat @@ -35,10 +26,12 @@ interface BindableHolder { enum class RowViewType { + + HEADER_TITLE, HEADER_TITLE_VALUE, HEADER_TITLE_AMOUNT, HEADER_TITLE_AMOUNT_BIG, - HEADER_TITLE, + EDIT_TEXT, TITLE, TITLE_ARROW, @@ -49,101 +42,104 @@ enum class RowViewType { BOTTOM_SHEET_DATA, TITLE_GRID, ROW_SESSION, - BUTTON, - FOLLOW_US, - STAT; + ROW_BUTTON, + ROW_FOLLOW_US, + STAT, + + SEPARATOR; /** * View holder */ fun viewHolder(parent: ViewGroup): RecyclerView.ViewHolder { return when (this) { - HEADER_TITLE_VALUE -> HeaderTitleValueViewHolder( + + // Header Row View Holder + HEADER_TITLE -> { + HeaderViewHolder( + LayoutInflater.from(parent.context).inflate( + R.layout.row_header_title, + parent, + false + ) + ) + } + HEADER_TITLE_VALUE -> HeaderViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_header_title_value, parent, false ) ) - HEADER_TITLE_AMOUNT -> HeaderTitleAmountViewHolder( + HEADER_TITLE_AMOUNT -> HeaderViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_header_title_amount, parent, false ) ) - HEADER_TITLE_AMOUNT_BIG -> HeaderTitleAmountViewHolder( + HEADER_TITLE_AMOUNT_BIG -> HeaderViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_header_title_amount_big, parent, false ) ) - TITLE -> TitleViewHolder( + + // Row View Holder + TITLE -> RowViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_title, parent, false ) ) - TITLE_ARROW -> TitleViewHolder( + TITLE_ARROW -> RowViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_title_arrow, parent, false ) ) - TITLE_VALUE -> TitleValueViewHolder( - LayoutInflater.from(parent.context).inflate( - R.layout.row_title_value, - parent, - false - ) - ) - TITLE_GRID -> TitleGridSessionViewHolder( + TITLE_GRID -> RowViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_bottom_sheet_grid_title, parent, false ) ) - TITLE_SWITCH -> TitleSwitchViewHolder( - LayoutInflater.from(parent.context).inflate( - R.layout.row_title_switch, - parent, - false - ) + DATA -> RowViewHolder( + LayoutInflater.from(parent.context).inflate(R.layout.row_title, parent, false) + ) + BOTTOM_SHEET_DATA -> RowViewHolder( + LayoutInflater.from(parent.context).inflate(R.layout.row_bottom_sheet_title, parent, false) ) - TITLE_VALUE_ACTION -> TitleValueActionViewHolder( + //TODO: Manage action + TITLE_VALUE_ACTION -> RowViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_title_value_action, parent, false ) ) - DATA -> DataViewHolder( + //TODO: Manage switch + TITLE_SWITCH -> RowViewHolder( LayoutInflater.from(parent.context).inflate( - R.layout.row_title, + R.layout.row_title_switch, parent, false ) ) - BOTTOM_SHEET_DATA -> BottomSheetDataViewHolder( + //TODO: Update layout container to ConstraintLayout and remove separator + TITLE_VALUE -> RowViewHolder( LayoutInflater.from(parent.context).inflate( - R.layout.row_bottom_sheet_title, + R.layout.row_title_value, parent, false ) ) - HEADER_TITLE -> { - HeaderSessionViewHolder( - LayoutInflater.from(parent.context).inflate( - R.layout.row_header_title, - parent, - false - ) - ) - } + + // Row Session ROW_SESSION -> RowSessionViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_history_session, @@ -151,8 +147,10 @@ enum class RowViewType { false ) ) - BUTTON -> { - ButtonViewHolder( + + // Row Button + ROW_BUTTON -> { + RowButtonViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_button, parent, @@ -160,8 +158,9 @@ enum class RowViewType { ) ) } - FOLLOW_US -> { - FollowUsViewHolder( + // Row Follow Us + ROW_FOLLOW_US -> { + RowFollowUsViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_follow_us, parent, @@ -169,6 +168,8 @@ enum class RowViewType { ) ) } + + // Row Stat STAT -> StatsTitleValueViewHolder( LayoutInflater.from(parent.context).inflate( R.layout.row_stats_title_value, @@ -176,75 +177,86 @@ enum class RowViewType { false ) ) + + // Separator + SEPARATOR -> SeparatorViewHolder( + LayoutInflater.from(parent.context).inflate( + R.layout.row_separator, + parent, + false + ) + ) + else -> throw Exception("Undefined rowViewType's holder") } } - inner class HeaderTitleValueViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), - BindableHolder { - override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { - itemView.rowHeaderTitleValue_title.text = row.localizedTitle(itemView.context) - adapter.dataSource.let { - itemView.rowHeaderTitleValue_value.text = it.stringForRow(row, itemView.context) - } - //val listener = View.OnClickListener { - // adapter.delegate?.onRowSelected(position, row) - //} - //itemView.rowHeaderTitleValue_container.setOnClickListener(listener) - itemView.rowHeaderTitleValue_separator.visibility = if (row.needSeparator) View.VISIBLE else View.GONE - } - } - inner class HeaderTitleAmountViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), - BindableHolder { + /** + * Display a header + */ + inner class HeaderViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { if (row is HeaderRowRepresentable) { - if (row.resId != null) { - itemView.rowHeaderTitleAmount_title.text = row.localizedTitle(itemView.context) - } else if (row.title != null) { - itemView.rowHeaderTitleAmount_title.text = row.title + // Title + itemView.findViewById(R.id.title)?.let { + it.text = row.localizedTitle(itemView.context) } - val value = try { - row.value?.toDouble() ?: 0.0 - } catch (e: Exception) { - 0.0 + // Value + itemView.findViewById(R.id.value)?.let { + val value = try { + row.value?.toDouble() ?: 0.0 + } catch (e: Exception) { + 0.0 + } + + //TODO: Manage multiple stat type + val stat = ComputedStat(Stat.NETRESULT, value) + it.textFormat = stat.format(itemView.context) + //it.text = adapter.dataSource.stringForRow(row, itemView.context) } - val stat = ComputedStat(Stat.NETRESULT, value) - itemView.rowHeaderTitleAmount_value.textFormat = stat.format(itemView.context) } } } - inner class TitleViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), - BindableHolder { + /** + * Display a generic row (title, value, container) + */ + inner class RowViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { - itemView.rowTitle_title.text = row.localizedTitle(itemView.context) - val listener = View.OnClickListener { - adapter.delegate?.onRowSelected(position, row) + + // Title + itemView.findViewById(R.id.title)?.let { + if (row.resId != null) { + it.text = row.localizedTitle(itemView.context) + } else { + it.text = row.getDisplayName() + } } - itemView.rowTitle_container.setOnClickListener(listener) - } - } - inner class TitleValueViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), - BindableHolder { - override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { - itemView.rowTitleValue_title.text = row.localizedTitle(itemView.context) - adapter.dataSource?.let { - itemView.rowTitleValue_value.text = it.stringForRow(row, itemView.context) + // Value + itemView.findViewById(R.id.value)?.let { + it.text = adapter.dataSource.stringForRow(row, itemView.context) } + + // Listener val listener = View.OnClickListener { adapter.delegate?.onRowSelected(position, row) } - itemView.rowTitleValue_container.setOnClickListener(listener) - itemView.rowTitleValue_separator.visibility = if (row.needSeparator) View.VISIBLE else View.GONE + + itemView.findViewById(R.id.container)?.let { + it.setOnClickListener(listener) + } } } - inner class FollowUsViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { + /** + * Display a follow us row + */ + inner class RowFollowUsViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { itemView.findViewById(R.id.icon1).setOnClickListener { adapter.delegate?.onRowSelected(0, row) @@ -261,6 +273,9 @@ enum class RowViewType { } } + /** + * Display a stat + */ inner class StatsTitleValueViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { @@ -277,83 +292,10 @@ enum class RowViewType { } } - inner class TitleGridSessionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { - override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { - itemView.title.text = row.localizedTitle(itemView.context) - val listener = View.OnClickListener { - adapter.delegate?.onRowSelected(position, row) - } - itemView.container.setOnClickListener(listener) - } - } - - inner class TitleSwitchViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), - BindableHolder { - override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { - itemView.rowTitleSwitch_title.text = row.localizedTitle(itemView.context) - - adapter.dataSource.let { - itemView.rowTitleSwitch_switch.isChecked = it.boolForRow(row) - itemView.rowTitleSwitch_switch.setOnCheckedChangeListener { buttonView, isChecked -> - adapter.delegate?.onRowValueChanged(isChecked, row) - } - } - - val listener = View.OnClickListener { - itemView.rowTitleSwitch_switch.isChecked = !itemView.rowTitleSwitch_switch.isChecked - } - itemView.rowTitleSwitch_container.setOnClickListener(listener) - itemView.rowTitleSwitch_separator.visibility = if (row.needSeparator) View.VISIBLE else View.GONE - - } - } - - inner class TitleValueActionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), - BindableHolder { - override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { - itemView.rowTitleValueAction_title.text = row.localizedTitle(itemView.context) - adapter.dataSource.let { rowDelegate -> - - val value = rowDelegate.stringForRow(row, itemView.context) - itemView.rowTitleValueAction_value.text = value - itemView.rowTitleValueAction_action.visibility = if (value == "--") View.GONE else View.VISIBLE - rowDelegate.actionIconForRow(row)?.let { icon -> - itemView.rowTitleValueAction_action.setImageResource(icon) - } - } - val listener = View.OnClickListener { - adapter.delegate?.onRowSelected(position, row) - } - val actionListener = View.OnClickListener { - adapter.delegate?.onRowSelected(position, row, true) - } - itemView.rowTitleValueAction_container.setOnClickListener(listener) - itemView.rowTitleValueAction_action.setOnClickListener(actionListener) - } - } - - inner class DataViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { - override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { - itemView.rowTitle_title.text = row.getDisplayName() - val listener = View.OnClickListener { - adapter.delegate?.onRowSelected(position, row) - } - itemView.rowTitle_container.setOnClickListener(listener) - } - } - - inner class BottomSheetDataViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { - override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { - itemView.rowBottomSheet_title.text = row.getDisplayName() - val listener = View.OnClickListener { - adapter.delegate?.onRowSelected(position, row) - } - itemView.rowBottomSheet_container.setOnClickListener(listener) - } - } - - inner class ButtonViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), - BindableHolder { + /** + * Display a button in a row + */ + inner class RowButtonViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { itemView.findViewById(R.id.title).text = row.localizedTitle(itemView.context) val listener = View.OnClickListener { @@ -363,26 +305,26 @@ enum class RowViewType { } } - inner class HeaderSessionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), - BindableHolder { - override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { - itemView.sessionHeaderTitle.text = row.localizedTitle(itemView.context) - } - } - - inner class RowSessionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), - BindableHolder { - + /** + * Display a session view + */ + inner class RowSessionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { - itemView.sessionRow.setData(row as Session) val listener = View.OnClickListener { adapter.delegate?.onRowSelected(position, row) } itemView.sessionRow.setOnClickListener(listener) - } } + /** + * Display a separator + */ + inner class SeparatorViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { + override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { + } + } + } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/LocationRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/LocationRow.kt index 6bdd45e2..188c51b9 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/LocationRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/LocationRow.kt @@ -22,7 +22,7 @@ enum class LocationRow : RowRepresentable { get() { return when (this) { ADDRESS -> RowViewType.TITLE_VALUE.ordinal - LOCATE_ME -> RowViewType.BUTTON.ordinal + LOCATE_ME -> RowViewType.ROW_BUTTON.ordinal } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SeparatorRowRepresentable.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SeparatorRowRepresentable.kt new file mode 100644 index 00000000..7497d908 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SeparatorRowRepresentable.kt @@ -0,0 +1,11 @@ +package net.pokeranalytics.android.ui.view.rowrepresentable + +import net.pokeranalytics.android.ui.view.RowRepresentable +import net.pokeranalytics.android.ui.view.RowViewType + +/** + * A class to display separator as row representable + */ +class SeparatorRowRepresentable(customViewType: RowViewType? = RowViewType.SEPARATOR) : RowRepresentable { + override val viewType: Int = customViewType?.ordinal ?: RowViewType.SEPARATOR.ordinal +} diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SessionRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SessionRow.kt index 9be81d54..5fe16f79 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SessionRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SessionRow.kt @@ -49,7 +49,9 @@ enum class SessionRow : RowRepresentable { SessionState.STARTED, SessionState.PAUSED, SessionState.FINISHED -> { arrayListOf( PRIZE, BUY_IN, POSITION, PLAYERS, TIPS, + SeparatorRowRepresentable(), GAME, INITIAL_BUY_IN, LOCATION, BANKROLL, TABLE_SIZE, TOURNAMENT_TYPE, + SeparatorRowRepresentable(), START_DATE, END_DATE, BREAK_TIME, COMMENT ) } @@ -66,11 +68,13 @@ enum class SessionRow : RowRepresentable { return if (liveBankroll) { arrayListOf( CASHED_OUT, BUY_IN, TIPS, + SeparatorRowRepresentable(), GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE, BREAK_TIME, COMMENT ) } else { arrayListOf( NET_RESULT, BUY_IN, TIPS, + SeparatorRowRepresentable(), GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE, BREAK_TIME, COMMENT ) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt index df23556a..94392a2d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt @@ -89,7 +89,7 @@ enum class SettingRow : RowRepresentable { get() { return when (this) { VERSION -> RowViewType.TITLE_VALUE.ordinal - FOLLOW_US -> RowViewType.FOLLOW_US.ordinal + FOLLOW_US -> RowViewType.ROW_FOLLOW_US.ordinal else -> RowViewType.TITLE_ARROW.ordinal } } diff --git a/app/src/main/res/color/bottom_navigation_item.xml b/app/src/main/res/color/bottom_navigation_item.xml index c4ff8e09..5c3998df 100644 --- a/app/src/main/res/color/bottom_navigation_item.xml +++ b/app/src/main/res/color/bottom_navigation_item.xml @@ -1,8 +1,8 @@ - - - + + + \ No newline at end of file diff --git a/app/src/main/res/layout/row_bottom_sheet_title.xml b/app/src/main/res/layout/row_bottom_sheet_title.xml index aae86c3d..4f2cb4f6 100644 --- a/app/src/main/res/layout/row_bottom_sheet_title.xml +++ b/app/src/main/res/layout/row_bottom_sheet_title.xml @@ -2,14 +2,14 @@ diff --git a/app/src/main/res/layout/row_header_title_amount_big.xml b/app/src/main/res/layout/row_header_title_amount_big.xml index 5c5d3ff6..b8a5c267 100644 --- a/app/src/main/res/layout/row_header_title_amount_big.xml +++ b/app/src/main/res/layout/row_header_title_amount_big.xml @@ -2,7 +2,7 @@ @@ -13,7 +13,7 @@ android:background="@color/green_header"> @@ -58,7 +58,7 @@ diff --git a/app/src/main/res/layout/row_title.xml b/app/src/main/res/layout/row_title.xml index 9365329e..84d4ebb4 100644 --- a/app/src/main/res/layout/row_title.xml +++ b/app/src/main/res/layout/row_title.xml @@ -2,13 +2,13 @@ @@ -13,7 +13,7 @@ android:background="?selectableItemBackground"> diff --git a/app/src/main/res/layout/row_title_value_action.xml b/app/src/main/res/layout/row_title_value_action.xml index a0f0ce3b..4e26243f 100644 --- a/app/src/main/res/layout/row_title_value_action.xml +++ b/app/src/main/res/layout/row_title_value_action.xml @@ -2,13 +2,13 @@