From 857d307799895dba7b9bd6f541d31a048d2be92f Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 19 Feb 2019 11:04:25 +0100 Subject: [PATCH 1/2] Add Bottom Sheet Edit Text management & session comment example --- .../android/model/realm/Session.kt | 4 +++ .../adapter/components/DynamicRowInterface.kt | 12 ++++---- .../android/ui/fragment/NewSessionFragment.kt | 2 ++ .../components/BottomSheetEditTextFragment.kt | 23 ++++++++++++++- .../components/BottomSheetFragment.kt | 1 + .../res/layout/bottom_sheet_edit_text.xml | 29 ++++--------------- app/src/main/res/values/strings.xml | 1 + 7 files changed, 41 insertions(+), 31 deletions(-) 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 c57fba5f..c519214e 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 @@ -142,6 +142,7 @@ open class Session : RealmObject(), SessionInterface, DynamicRowDelegate, Displa SessionRow.LOCATION -> location?.title ?: "--" SessionRow.BANKROLL -> bankroll?.title ?: "--" SessionRow.DATE -> if (timeFrame != null) timeFrame?.startDate.toString() else "--" + SessionRow.COMMENT -> if (comment.isNotEmpty()) comment else "--" else -> "--" } } @@ -172,6 +173,9 @@ open class Session : RealmObject(), SessionInterface, DynamicRowDelegate, Displa data.add(BottomSheetData(cgSmallBlind, "Small blind", InputType.TYPE_CLASS_NUMBER)) data.add(BottomSheetData(cgBigBlind, "Big blind", InputType.TYPE_CLASS_NUMBER)) } + SessionRow.COMMENT -> { + data.add(BottomSheetData(comment, "Comment", InputType.TYPE_CLASS_TEXT)) + } } return data diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt index bff7f869..0a350580 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt @@ -1,12 +1,8 @@ package net.pokeranalytics.android.ui.adapter.components import android.content.Context -import io.realm.Realm -import io.realm.RealmObject -import io.realm.RealmResults -import io.realm.Sort import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.realm.* +import net.pokeranalytics.android.model.realm.DataList import net.pokeranalytics.android.ui.fragment.components.BottomSheetType @@ -42,7 +38,8 @@ enum class SessionRow(val resId: Int) : DynamicRowInterface { BLINDS(R.string.blinds), LOCATION(R.string.location), BANKROLL(R.string.bankroll), - DATE(R.string.date); + DATE(R.string.date), + COMMENT(R.string.comment); override fun localizedTitle(context: Context): String { return context.getString(this.resId) @@ -51,7 +48,7 @@ enum class SessionRow(val resId: Int) : DynamicRowInterface { override val viewType: Int get() { return when (this) { - BLINDS, GAME, DATE, BANKROLL, LOCATION -> RowViewType.TITLE_VALUE.ordinal + BLINDS, GAME, DATE, BANKROLL, LOCATION, COMMENT -> RowViewType.TITLE_VALUE.ordinal } } @@ -63,6 +60,7 @@ enum class SessionRow(val resId: Int) : DynamicRowInterface { LOCATION -> BottomSheetType.LIST BANKROLL -> BottomSheetType.LIST DATE -> BottomSheetType.DATE + COMMENT -> BottomSheetType.EDIT_TEXT } } 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 ae0c5d3c..0a7f4d55 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 @@ -56,6 +56,7 @@ class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomS currentSession.cgSmallBlind = null currentSession.cgBigBlind = null } + SessionRow.COMMENT -> currentSession.comment = "" } sessionAdapter.notifyItemChanged(SessionRow.values().indexOf(row)) } @@ -73,6 +74,7 @@ class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomS currentSession.cgSmallBlind = (value[0] as String? ?: "0").toDouble() currentSession.cgBigBlind = (value[1] as String? ?: "0").toDouble() } + SessionRow.COMMENT -> if (value is String) currentSession.comment = value } sessionAdapter.notifyItemChanged(SessionRow.values().indexOf(row)) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt index 2e66c999..fbe15f63 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetEditTextFragment.kt @@ -1,8 +1,10 @@ package net.pokeranalytics.android.ui.fragment.components import android.os.Bundle +import android.text.InputType import android.view.LayoutInflater import android.view.View +import android.view.inputmethod.EditorInfo import kotlinx.android.synthetic.main.bottom_sheet_edit_text.* import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* import net.pokeranalytics.android.R @@ -25,7 +27,6 @@ class BottomSheetEditTextFragment : BottomSheetFragment() { * Init data */ private fun initData() { - val data = getData() } /** @@ -33,8 +34,28 @@ class BottomSheetEditTextFragment : BottomSheetFragment() { */ private fun initUI() { + setAddButtonVisible(false) + LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_edit_text, view?.bottomSheetContainer, true) + val data = getData() + + if (data.size == 1) { + editText1.hint = data[0].hint + editText1.setText((data[0].defaultValue ?: "").toString()) + editText1.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT + + editText1.setOnEditorActionListener { v, actionId, event -> + if (actionId == EditorInfo.IME_ACTION_DONE) { + val value = editText1.text.toString() + bottomSheetDelegate.setValue(value, row) + dismiss() + true + } else { + false + } + } + } } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt index 7b93338e..01d27d32 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetFragment.kt @@ -48,6 +48,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment() { BottomSheetType.DATE -> BottomSheetDateFragment() BottomSheetType.LIST -> BottomSheetListFragment() BottomSheetType.DOUBLE_LIST -> BottomSheetDoubleListFragment() + BottomSheetType.EDIT_TEXT -> BottomSheetEditTextFragment() BottomSheetType.DOUBLE_EDIT_TEXT -> BottomSheetDoubleEditTextFragment() else -> BottomSheetFragment() } diff --git a/app/src/main/res/layout/bottom_sheet_edit_text.xml b/app/src/main/res/layout/bottom_sheet_edit_text.xml index 108f9885..d32697a2 100644 --- a/app/src/main/res/layout/bottom_sheet_edit_text.xml +++ b/app/src/main/res/layout/bottom_sheet_edit_text.xml @@ -7,37 +7,20 @@ android:orientation="vertical" tools:background="@color/gray_darker"> - - - + tools:text="10" /> \ 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 5ddb57d2..457e0d52 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -13,6 +13,7 @@ Session Tournament Type Transaction Type + Comment Name Live From 5acf6970eb20e693c4b382b15d0f918e491ca070 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 19 Feb 2019 11:09:27 +0100 Subject: [PATCH 2/2] Add row_title_value layout for RowViewType --- .../ui/adapter/components/RowViewType.kt | 2 +- app/src/main/res/layout/row_title_value.xml | 44 +++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/layout/row_title_value.xml 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 2f104040..89782d78 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 @@ -47,7 +47,7 @@ enum class RowViewType { return when (this) { TITLE_VALUE -> TitleValueViewHolder( LayoutInflater.from(parent.context).inflate( - R.layout.row_session, + R.layout.row_title_value, parent, false ) diff --git a/app/src/main/res/layout/row_title_value.xml b/app/src/main/res/layout/row_title_value.xml new file mode 100644 index 00000000..079f9c7f --- /dev/null +++ b/app/src/main/res/layout/row_title_value.xml @@ -0,0 +1,44 @@ + + + + + + + + \ No newline at end of file