Fix Bottom Sheet List behavior

feature/top10
Aurelien Hubert 7 years ago
parent f769f6da62
commit e9639ee81c
  1. 7
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  2. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt
  3. 13
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt
  4. 25
      app/src/main/res/layout/row_session_view.xml

@ -362,12 +362,7 @@ open class Session : RealmObject(), SessionInterface, Savable,
SessionRow.GAME -> { SessionRow.GAME -> {
// Add current game & games list // Add current game & games list
data.add(RowRepresentableEditDescriptor(limit)) data.add(RowRepresentableEditDescriptor(limit))
data.add( data.add(RowRepresentableEditDescriptor(game, data = LiveData.GAME.items(realm)))
RowRepresentableEditDescriptor(
game,
data = LiveData.GAME.items(realm)
)
)
} }
SessionRow.LOCATION -> { SessionRow.LOCATION -> {
// Add current location and locations list // Add current location and locations list

@ -60,7 +60,7 @@ class BottomSheetListFragment : BottomSheetFragment(), RowRepresentableDataSourc
realmData?.let { realmData?.let {
val selectedData = it[position] val selectedData = it[position]
selectedData?.let {data -> selectedData?.let {data ->
this.delegate.onRowValueChanged(data, row) this.delegate.onRowValueChanged(data, this.row)
dismiss() dismiss()
} }
} }

@ -15,13 +15,11 @@ import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType import net.pokeranalytics.android.ui.view.RowViewType
import timber.log.Timber
class BottomSheetListGameFragment : BottomSheetFragment(), class BottomSheetListGameFragment : BottomSheetFragment(), RowRepresentableDataSource, RowRepresentableDelegate {
RowRepresentableDataSource,
RowRepresentableDelegate {
private var limit: Int = -1
private var realmData: RealmResults<*>? = null private var realmData: RealmResults<*>? = null
private lateinit var dataAdapter: RowRepresentableAdapter private lateinit var dataAdapter: RowRepresentableAdapter
private val values = ArrayList<Any?>() private val values = ArrayList<Any?>()
@ -71,7 +69,7 @@ class BottomSheetListGameFragment : BottomSheetFragment(),
val selectedData = it[position] val selectedData = it[position]
selectedData?.let { data -> selectedData?.let { data ->
values[1] = data values[1] = data
this.delegate.onRowValueChanged(data, row) this.delegate.onRowValueChanged(values, this.row)
dismiss() dismiss()
} }
} }
@ -84,6 +82,7 @@ class BottomSheetListGameFragment : BottomSheetFragment(),
private fun initData() { private fun initData() {
val bottomSheetData = getData() val bottomSheetData = getData()
if (bottomSheetData.isNotEmpty() && bottomSheetData.size >= 2 && bottomSheetData[1].data != null) { if (bottomSheetData.isNotEmpty() && bottomSheetData.size >= 2 && bottomSheetData[1].data != null) {
this.limit = bottomSheetData[0].defaultValue as Int? ?: -1
this.realmData = bottomSheetData[1].data as RealmResults<*> this.realmData = bottomSheetData[1].data as RealmResults<*>
} }
} }
@ -95,7 +94,7 @@ class BottomSheetListGameFragment : BottomSheetFragment(),
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_game_list, view?.bottomSheetContainer, true) LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_game_list, view?.bottomSheetContainer, true)
values.add(0, null) values.add(0, if (limit == -1) null else limit)
values.add(1, null) values.add(1, null)
chipGroup.removeAllViews() chipGroup.removeAllViews()
@ -103,11 +102,11 @@ class BottomSheetListGameFragment : BottomSheetFragment(),
val chip = Chip(requireContext()) val chip = Chip(requireContext())
chip.text = it.shortName chip.text = it.shortName
chip.id = it.ordinal chip.id = it.ordinal
chip.isChecked = it.ordinal == limit
chipGroup.addView(chip) chipGroup.addView(chip)
} }
chipGroup.setOnCheckedChangeListener { _, i -> chipGroup.setOnCheckedChangeListener { _, i ->
Timber.d("Chip selected: $i")
values[0] = i values[0] = i
} }

@ -80,7 +80,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:ellipsize="end"
android:fontFamily="@font/roboto" android:fontFamily="@font/roboto"
android:maxLines="1"
android:textAllCaps="true" android:textAllCaps="true"
android:textColor="@color/kaki_lighter" android:textColor="@color/kaki_lighter"
android:textSize="12sp" android:textSize="12sp"
@ -103,7 +105,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:ellipsize="end"
android:fontFamily="@font/roboto" android:fontFamily="@font/roboto"
android:maxLines="1"
android:textColor="@color/kaki_lighter" android:textColor="@color/kaki_lighter"
android:textSize="12sp" android:textSize="12sp"
android:visibility="gone" android:visibility="gone"
@ -125,7 +129,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
android:ellipsize="end"
android:fontFamily="@font/roboto" android:fontFamily="@font/roboto"
android:maxLines="1"
android:textColor="@color/kaki_lighter" android:textColor="@color/kaki_lighter"
android:textSize="12sp" android:textSize="12sp"
android:visibility="gone" android:visibility="gone"
@ -134,22 +140,6 @@
</LinearLayout> </LinearLayout>
<!--
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/sessionSubtitle"
style="@style/PokerAnalyticsTheme.TextView.SessionRow.Subtitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/linearLayout"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@+id/sessionTitle"
app:layout_constraintTop_toBottomOf="@+id/sessionTitle"
tools:text="Settings of this game" /> -->
<LinearLayout <LinearLayout
android:id="@+id/linearLayout" android:id="@+id/linearLayout"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -167,7 +157,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="gone" android:visibility="gone"
tools:text="$500" /> tools:text="$1000"
tools:visibility="visible" />
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/playingIcon" android:id="@+id/playingIcon"

Loading…
Cancel
Save