diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/SettingsAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/SettingsAdapter.kt deleted file mode 100644 index ff7d8e5f..00000000 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/SettingsAdapter.kt +++ /dev/null @@ -1,79 +0,0 @@ -package net.pokeranalytics.android.ui.adapter - -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -import kotlinx.android.synthetic.main.row_data_cell.view.* -import kotlinx.android.synthetic.main.row_history_session.view.* -import net.pokeranalytics.android.R - -class SettingsAdapter() : RecyclerView.Adapter() { - - companion object { - const val ROW_DATA: Int = 100 - enum class DataType { - BANKROLL { - override fun localizedName(): String { - return "Bankroll" - } - }, - GAME { - override fun localizedName(): String { - return "Game" - } - }, - LOCATION { - override fun localizedName(): String { - return "Location" - } - }, - TOURNAMENT_TYPE { - override fun localizedName(): String { - return "Tournament Type" - } - }, - TRANSACTION_TYPE { - override fun localizedName(): String { - return "Transaction" - } - }; - - abstract fun localizedName(): String - } - } - - var onClickOnData: ((position: Int, dataType: DataType) -> Unit)? = null - - inner class RowDataViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - fun bind(dataType: DataType) { - itemView.dataRow.setData(dataType.localizedName()) - itemView.dataRow.setOnClickListener { - onClickOnData?.invoke(adapterPosition, dataType) - } - } - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - when (viewType) { - ROW_DATA -> return RowDataViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.row_data_cell, parent, false)) - else -> throw IllegalStateException("Need to implement type $viewType in Settings Adapter") - } - } - - override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { - when (getItemViewType(position)) { - ROW_DATA -> (holder as SettingsAdapter.RowDataViewHolder).bind(enumValues()[position]) - } - } - - override fun getItemCount(): Int { - return enumValues().count() - } - - override fun getItemViewType(position: Int): Int { - return ROW_DATA - } - - -} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicListAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicListAdapter.kt index 3def04b0..4b047693 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicListAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicListAdapter.kt @@ -4,8 +4,9 @@ import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.recyclerview.widget.RecyclerView +import io.realm.Realm.init -interface EditableDataDelegate : DynamicRowDelegate { +interface EditableDataDelegate { fun setValue(value: Any, row: DynamicRowInterface) } @@ -13,8 +14,8 @@ interface DynamicRowDelegate { fun adapterRows() : ArrayList - fun boolForRow(row: DynamicRowInterface) : Boolean - fun stringForRow(row: DynamicRowInterface) : String + fun boolForRow(row: DynamicRowInterface) : Boolean { return false } + fun stringForRow(row: DynamicRowInterface) : String { return "" } /** * Manages: @@ -27,16 +28,13 @@ interface DynamicRowDelegate { } - interface DynamicRowCallback { fun onRowSelected(row: DynamicRowInterface) } -class DynamicListAdapter(delegate: DynamicRowDelegate) : RecyclerView.Adapter() { +class DynamicListAdapter(var delegate: DynamicRowDelegate, var callBackDelegate: DynamicRowCallback? = null) : RecyclerView.Adapter() { private var rows: ArrayList = ArrayList() - private var delegate: DynamicRowDelegate = delegate - var callback: ((row: DynamicRowInterface) -> Unit)? = null init { this.rows = delegate.adapterRows() @@ -58,7 +56,7 @@ class DynamicListAdapter(delegate: DynamicRowDelegate) : RecyclerView.Adapter RowViewType.TITLE_VALUE.ordinal + } + } + + override var bottomSheetType: BottomSheetType = BottomSheetType.NONE + get() { + return when (this) { + BLINDS -> BottomSheetType.BLINDS + GAME -> BottomSheetType.GAME + DATE -> BottomSheetType.DATE + } + } +} - override fun localizedTitle(context: Context): String { - return context.getString(this.resId) - } +enum class BankrollRow(val resId: Int) : DynamicRowInterface { + NAME(R.string.app_name), + LIVE(R.string.app_name), + CURRENCY(R.string.app_name); - override var viewType: Int = RowViewType.HEADER.ordinal - get() { - return when (this) { - BLINDS, GAME, DATE -> RowViewType.TITLE_VALUE.ordinal - } - } + override fun localizedTitle(context: Context): String { + return context.getString(this.resId) + } + override var viewType: Int = 1 + override var bottomSheetType: BottomSheetType = BottomSheetType.NONE } -enum class BankrollRow(val resId: Int) : DynamicRowInterface { - NAME(R.string.app_name), - LIVE(R.string.app_name), - CURRENCY(R.string.app_name); - - override fun localizedTitle(context: Context): String { - return context.getString(this.resId) - } +enum class BusinessObjectRowType(val resId: Int) : DynamicRowInterface { + BANKROLL(R.string.bankroll), + GAME(R.string.game), + LOCATION(R.string.location), + TOURNAMENT_TYPE(R.string.tournament_type), + TRANSACTION_TYPE(R.string.transaction_type); - override var viewType: Int = 1 + override fun localizedTitle(context: Context): String { + return context.getString(this.resId) + } -} \ No newline at end of file + override var viewType: Int = RowViewType.TITLE.ordinal + override var bottomSheetType: BottomSheetType = BottomSheetType.NONE +} diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/RowViewType.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/RowViewType.kt index a0e4365f..6a2b3640 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/RowViewType.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/RowViewType.kt @@ -17,6 +17,7 @@ interface DynamicHolder { enum class RowViewType { HEADER, EDIT_TEXT, + TITLE, TITLE_VALUE; inner class FakeViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), DynamicHolder { @@ -32,6 +33,14 @@ enum class RowViewType { } } + inner class TitleViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), DynamicHolder { + override fun bind(row: DynamicRowInterface, delegate: DynamicRowDelegate, listener: View.OnClickListener) { + itemView.title.text = row.localizedTitle(itemView.context) + itemView.container.setOnClickListener(listener) + } + } + + fun viewHolder(parent: ViewGroup): RecyclerView.ViewHolder { return when (this) { TITLE_VALUE -> TitleValueViewHolder( @@ -41,6 +50,14 @@ enum class RowViewType { false ) ) + TITLE -> TitleViewHolder( + LayoutInflater.from(parent.context).inflate( + R.layout.row_title, + parent, + false + ) + ) + else -> FakeViewHolder(parent) } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/BottomSheetFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/BottomSheetFragment.kt index d81ac3e2..b306cdfd 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/BottomSheetFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/BottomSheetFragment.kt @@ -1,17 +1,76 @@ package net.pokeranalytics.android.ui.fragment +import android.app.DatePickerDialog import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import kotlinx.android.synthetic.main.fragment_bottom_sheet_container.* -import net.pokeranalytics.android.R +import android.content.DialogInterface +import android.view.* +import androidx.constraintlayout.widget.ConstraintLayout +import kotlinx.android.synthetic.main.bottom_sheet_blinds.* +import kotlinx.android.synthetic.main.bottom_sheet_date.* +import kotlinx.android.synthetic.main.fragment_bottom_sheet.* +import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* +import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface +import net.pokeranalytics.android.ui.adapter.components.EditableDataDelegate +import net.pokeranalytics.android.ui.fragment.components.BottomSheetType +import timber.log.Timber +import android.widget.DatePicker +import net.pokeranalytics.android.util.DatePickerFragment +import net.pokeranalytics.android.util.TimePickerFragment +import java.util.* + class BottomSheetFragment : BottomSheetDialogFragment() { + private var row: DynamicRowInterface? = null + private var valueDelegate: EditableDataDelegate? = null + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(R.layout.fragment_bottom_sheet_container, container, false) + + val view = inflater.inflate( + net.pokeranalytics.android.R.layout.fragment_bottom_sheet, + container, + false + ) as ConstraintLayout + + row?.let { + when (it.bottomSheetType) { + BottomSheetType.BANKROLL -> inflater.inflate( + net.pokeranalytics.android.R.layout.bottom_sheet_bankroll, + view.bottomSheetContainer, + true + ) + BottomSheetType.BLINDS -> inflater.inflate( + net.pokeranalytics.android.R.layout.bottom_sheet_blinds, + view.bottomSheetContainer, + true + ) + BottomSheetType.DATE -> inflater.inflate( + net.pokeranalytics.android.R.layout.bottom_sheet_date, + view.bottomSheetContainer, + true + ) + BottomSheetType.GAME -> inflater.inflate( + net.pokeranalytics.android.R.layout.bottom_sheet_game, + view.bottomSheetContainer, + true + ) + BottomSheetType.LOCATION -> inflater.inflate( + net.pokeranalytics.android.R.layout.bottom_sheet_location, + view.bottomSheetContainer, + true + ) + BottomSheetType.TABLE_SIZE -> inflater.inflate( + net.pokeranalytics.android.R.layout.bottom_sheet_table_size, + view.bottomSheetContainer, + true + ) + else -> { + } + } + } + + return view } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -19,13 +78,80 @@ class BottomSheetFragment : BottomSheetDialogFragment() { initUI() } + override fun onActivityCreated(savedInstanceState: Bundle?) { + super.onActivityCreated(savedInstanceState) + // To display correctly the keyboard + dialog?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE) + } + + override fun onStart() { + super.onStart() + + // Open the keyboard + row?.let { + when (it.bottomSheetType) { + BottomSheetType.BLINDS -> { + smallBlind.requestFocus() + } + else -> { + } + } + } + } + + override fun onDismiss(dialog: DialogInterface?) { + super.onDismiss(dialog) + + // Return the value + row?.let { + valueDelegate?.setValue("Test", it) + } + } + /** * Init UI */ private fun initUI() { - close.setOnClickListener { - dismiss() + + row?.let { + //bottomSheetToolbar.title = row?.localizedTitle(requireContext()) + bottomSheetToolbar.inflateMenu(net.pokeranalytics.android.R.menu.bottom_sheet_menu) + bottomSheetToolbar.setOnMenuItemClickListener { + false + } + } + + row?.let { + when (it.bottomSheetType) { + BottomSheetType.DATE -> initDateUI() + else -> {} + } + } + } + + /** + * Init date UI + */ + private fun initDateUI() { + + startDate.setOnClickListener { + val dateFragment = DatePickerFragment() + dateFragment.show(fragmentManager, "datePicker") + } + + endDate.setOnClickListener { + val timeFragment = TimePickerFragment() + timeFragment.show(fragmentManager, "timePicker") } + + } + + /** + * Init + */ + fun init(row: DynamicRowInterface, valueDelegate: EditableDataDelegate) { + this.row = row + this.valueDelegate = valueDelegate } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt index 55fb8e64..2daa7e57 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt @@ -18,9 +18,10 @@ import net.pokeranalytics.android.ui.adapter.NewSessionAdapter import net.pokeranalytics.android.ui.adapter.components.DynamicListAdapter import net.pokeranalytics.android.ui.adapter.components.DynamicRowCallback import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface +import net.pokeranalytics.android.ui.adapter.components.EditableDataDelegate import net.pokeranalytics.android.util.PokerAnalyticsFragment -class NewSessionFragment : PokerAnalyticsFragment() { +class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, EditableDataDelegate { private lateinit var newSession: Session @@ -30,11 +31,19 @@ class NewSessionFragment : PokerAnalyticsFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - initData() initUI() } + override fun onRowSelected(row: DynamicRowInterface) { + val bottomSheetFragment = openBottomSheet() + bottomSheetFragment.init(row, this) + } + + override fun setValue(value: Any, row: DynamicRowInterface) { + Toast.makeText(requireContext(), "Callback for ${row.localizedTitle(requireContext())} ($value)", Toast.LENGTH_SHORT).show() + } + private fun initData() { newSession = Session() } @@ -45,11 +54,7 @@ class NewSessionFragment : PokerAnalyticsFragment() { private fun initUI() { val viewManager = LinearLayoutManager(requireContext()) - val newSessionAdapter = DynamicListAdapter(newSession) - - newSessionAdapter.callback = { - val bottomSheetFragment = openBottomSheet() - } + val newSessionAdapter = DynamicListAdapter(newSession, this) recyclerView.apply { setHasFixedSize(true) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt index 4923fbdf..e6ee295c 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt @@ -4,51 +4,64 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_settings.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.ui.adapter.SettingsAdapter +import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.util.PokerAnalyticsFragment -class SettingsFragment : PokerAnalyticsFragment() { +class SettingsFragment : PokerAnalyticsFragment(), DynamicRowDelegate, DynamicRowCallback { - companion object { + companion object { - /** - * Create new instance - */ - fun newInstance(): SettingsFragment { - val fragment = SettingsFragment() - val bundle = Bundle() - fragment.arguments = bundle - return fragment - } - } + /** + * Create new instance + */ + fun newInstance(): SettingsFragment { + val fragment = SettingsFragment() + val bundle = Bundle() + fragment.arguments = bundle + return fragment + } + } - private lateinit var settingsAdapter: SettingsAdapter + private lateinit var settingsAdapter: DynamicListAdapter - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(R.layout.fragment_settings, container, false) - } + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_settings, container, false) + } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - initData() - } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initData() + } - /** - * Init data - */ - private fun initData() { + override fun adapterRows(): ArrayList { + val rows = ArrayList() + rows.addAll(BusinessObjectRowType.values()) + return rows + } - val viewManager = LinearLayoutManager(requireContext()) - settingsAdapter = SettingsAdapter() + override fun onRowSelected(row: DynamicRowInterface) { + //val bottomSheetFragment = openBottomSheet(row) + } - recyclerView.apply { - setHasFixedSize(true) - layoutManager = viewManager - adapter = settingsAdapter - } - } + /** + * Init data + */ + private fun initData() { + + val viewManager = LinearLayoutManager(requireContext()) + settingsAdapter = DynamicListAdapter( + this, this + ) + + recyclerView.apply { + setHasFixedSize(true) + layoutManager = viewManager + adapter = settingsAdapter + } + } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetType.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetType.kt new file mode 100644 index 00000000..61127db5 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetType.kt @@ -0,0 +1,13 @@ +package net.pokeranalytics.android.ui.fragment.components + +enum class BottomSheetType { + + NONE, + GAME, + BLINDS, + LOCATION, + BANKROLL, + TABLE_SIZE, + DATE + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/DataRowView.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/DataRowView.kt deleted file mode 100644 index def52bde..00000000 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/DataRowView.kt +++ /dev/null @@ -1,55 +0,0 @@ -package net.pokeranalytics.android.ui.view - -import android.widget.FrameLayout -import android.content.Context -import android.util.AttributeSet -import android.view.LayoutInflater -import androidx.constraintlayout.widget.ConstraintLayout -import kotlinx.android.synthetic.main.row_data_cell.view.* -import kotlinx.android.synthetic.main.row_data_content_view.view.* -import net.pokeranalytics.android.R - - -class DataRowView : FrameLayout { - - private lateinit var rowDataCell: ConstraintLayout - - /** - * Constructors - */ - constructor(context: Context) : super(context) { - init() - } - - constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { - init() - } - - constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) { - init() - } - - /** - * Init - * - * @param attrs - */ - private fun init() { - val layoutInflater = LayoutInflater.from(context) - rowDataCell = layoutInflater.inflate(R.layout.row_data_content_view, this, false) as ConstraintLayout - val layoutParams = FrameLayout.LayoutParams( - FrameLayout.LayoutParams.MATCH_PARENT, - FrameLayout.LayoutParams.WRAP_CONTENT - ) - - addView(rowDataCell, layoutParams) - } - - /** - * Set the session data to the view - */ - fun setData(title: String) { - rowDataCell.rowTitle.text = title - } - -} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/util/DatePickerFragment.kt b/app/src/main/java/net/pokeranalytics/android/util/DatePickerFragment.kt new file mode 100644 index 00000000..dd81a825 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/util/DatePickerFragment.kt @@ -0,0 +1,26 @@ +package net.pokeranalytics.android.util + +import android.app.DatePickerDialog +import android.app.Dialog +import android.os.Bundle +import android.widget.DatePicker +import androidx.fragment.app.DialogFragment +import java.util.* + +class DatePickerFragment : DialogFragment(), DatePickerDialog.OnDateSetListener { + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + // Use the current date as the default date in the picker + val c = Calendar.getInstance() + val year = c.get(Calendar.YEAR) + val month = c.get(Calendar.MONTH) + val day = c.get(Calendar.DAY_OF_MONTH) + + // Create a new instance of DatePickerDialog and return it + return DatePickerDialog(activity, this, year, month, day) + } + + override fun onDateSet(view: DatePicker, year: Int, month: Int, day: Int) { + // Do something with the date chosen by the user + } +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/util/PokerAnalyticsFragment.kt b/app/src/main/java/net/pokeranalytics/android/util/PokerAnalyticsFragment.kt index 08d4ee07..754429c3 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/PokerAnalyticsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/PokerAnalyticsFragment.kt @@ -3,6 +3,7 @@ package net.pokeranalytics.android.util import android.os.Bundle import androidx.fragment.app.Fragment import io.realm.Realm +import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface import net.pokeranalytics.android.ui.fragment.BottomSheetFragment open class PokerAnalyticsFragment: Fragment() { @@ -27,7 +28,6 @@ open class PokerAnalyticsFragment: Fragment() { * Open the bottom sheet */ fun openBottomSheet(): BottomSheetFragment { - //TODO: Give the data to display in the bottom sheet here val bottomSheetFragment = BottomSheetFragment() bottomSheetFragment.show(fragmentManager, "bottomSheet") return bottomSheetFragment diff --git a/app/src/main/java/net/pokeranalytics/android/util/TimePickerFragment.kt b/app/src/main/java/net/pokeranalytics/android/util/TimePickerFragment.kt new file mode 100644 index 00000000..aeae4652 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/util/TimePickerFragment.kt @@ -0,0 +1,26 @@ +package net.pokeranalytics.android.util + +import android.app.Dialog +import android.app.TimePickerDialog +import android.os.Bundle +import android.text.format.DateFormat +import android.widget.TimePicker +import androidx.fragment.app.DialogFragment +import java.util.* + +class TimePickerFragment : DialogFragment(), TimePickerDialog.OnTimeSetListener { + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + // Use the current time as the default values for the picker + val c = Calendar.getInstance() + val hour = c.get(Calendar.HOUR_OF_DAY) + val minute = c.get(Calendar.MINUTE) + + // Create a new instance of TimePickerDialog and return it + return TimePickerDialog(activity, this, hour, minute, DateFormat.is24HourFormat(activity)) + } + + override fun onTimeSet(view: TimePicker, hourOfDay: Int, minute: Int) { + // Do something with the time chosen by the user + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add_white_24dp.xml b/app/src/main/res/drawable/ic_add_white_24dp.xml new file mode 100644 index 00000000..e3979cd7 --- /dev/null +++ b/app/src/main/res/drawable/ic_add_white_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_check_white_24dp.xml b/app/src/main/res/drawable/ic_check_white_24dp.xml new file mode 100644 index 00000000..17aca2af --- /dev/null +++ b/app/src/main/res/drawable/ic_check_white_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_close_white_24dp.xml b/app/src/main/res/drawable/ic_close_white_24dp.xml new file mode 100644 index 00000000..0c8775c4 --- /dev/null +++ b/app/src/main/res/drawable/ic_close_white_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_delete_white_24dp.xml b/app/src/main/res/drawable/ic_delete_white_24dp.xml new file mode 100644 index 00000000..8bed121a --- /dev/null +++ b/app/src/main/res/drawable/ic_delete_white_24dp.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/bottom_sheet_bankroll.xml b/app/src/main/res/layout/bottom_sheet_bankroll.xml new file mode 100644 index 00000000..56b38a58 --- /dev/null +++ b/app/src/main/res/layout/bottom_sheet_bankroll.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/bottom_sheet_blinds.xml b/app/src/main/res/layout/bottom_sheet_blinds.xml new file mode 100644 index 00000000..c0d86a55 --- /dev/null +++ b/app/src/main/res/layout/bottom_sheet_blinds.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/bottom_sheet_date.xml b/app/src/main/res/layout/bottom_sheet_date.xml new file mode 100644 index 00000000..d04e9d17 --- /dev/null +++ b/app/src/main/res/layout/bottom_sheet_date.xml @@ -0,0 +1,32 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/bottom_sheet_game.xml b/app/src/main/res/layout/bottom_sheet_game.xml new file mode 100644 index 00000000..5a052178 --- /dev/null +++ b/app/src/main/res/layout/bottom_sheet_game.xml @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/bottom_sheet_location.xml b/app/src/main/res/layout/bottom_sheet_location.xml new file mode 100644 index 00000000..7546616e --- /dev/null +++ b/app/src/main/res/layout/bottom_sheet_location.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/bottom_sheet_table_size.xml b/app/src/main/res/layout/bottom_sheet_table_size.xml new file mode 100644 index 00000000..7546616e --- /dev/null +++ b/app/src/main/res/layout/bottom_sheet_table_size.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bottom_sheet.xml b/app/src/main/res/layout/fragment_bottom_sheet.xml new file mode 100644 index 00000000..76eabc63 --- /dev/null +++ b/app/src/main/res/layout/fragment_bottom_sheet.xml @@ -0,0 +1,28 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bottom_sheet_container.xml b/app/src/main/res/layout/fragment_bottom_sheet_container.xml deleted file mode 100644 index a848e2d5..00000000 --- a/app/src/main/res/layout/fragment_bottom_sheet_container.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index ecd6264b..6202c2e5 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -3,19 +3,29 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:id="@+id/container" android:layout_width="match_parent" - android:layout_height="match_parent" - tools:context=".ui.activity.HomeActivity"> + android:layout_height="match_parent"> + + + android:layout_marginTop="8dp"/> \ No newline at end of file diff --git a/app/src/main/res/layout/row_data_cell.xml b/app/src/main/res/layout/row_data_cell.xml deleted file mode 100644 index bfe6f84a..00000000 --- a/app/src/main/res/layout/row_data_cell.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/row_data_content_view.xml b/app/src/main/res/layout/row_title.xml similarity index 89% rename from app/src/main/res/layout/row_data_content_view.xml rename to app/src/main/res/layout/row_title.xml index 6cc65075..44662103 100644 --- a/app/src/main/res/layout/row_data_content_view.xml +++ b/app/src/main/res/layout/row_title.xml @@ -5,10 +5,12 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="?selectableItemBackground" + android:id="@+id/container" android:padding="16dp"> + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 29ecc5a1..dfc3bef0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5,4 +5,10 @@ Stats Settings + Bankroll + Game + Location + Tournament Type + Transaction Type + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1c56072b..9d7c9fb5 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -8,4 +8,10 @@ @color/colorAccent + + +