From c598211c15132cb93922bef96146fcef4bd95eaa Mon Sep 17 00:00:00 2001 From: Laurent Date: Tue, 28 May 2019 16:59:45 +0200 Subject: [PATCH] Fixes multiselection issue --- .../pokeranalytics/android/PokerAnalyticsApplication.kt | 2 +- .../android/ui/adapter/RowRepresentableAdapter.kt | 3 ++- .../components/bottomsheet/BottomSheetListFragment.kt | 8 ++++++-- .../bottomsheet/BottomSheetListGameFragment.kt | 5 ++--- .../bottomsheet/BottomSheetMultiSelectionFragment.kt | 9 +++++---- .../android/ui/view/RowRepresentableEditDescriptor.kt | 2 +- .../android/ui/view/rowrepresentable/SessionRow.kt | 4 ++-- .../android/ui/view/rowrepresentable/TransactionRow.kt | 4 ++-- 8 files changed, 21 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt index da13bd7e..8ec3a204 100644 --- a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt +++ b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt @@ -61,7 +61,7 @@ class PokerAnalyticsApplication : Application() { if (BuildConfig.DEBUG) { Timber.d("UserPreferences.defaultCurrency: ${UserDefaults.currency.symbol}") - this.createFakeSessions() +// this.createFakeSessions() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt index 701a8a0f..ad37ff4f 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt @@ -55,7 +55,8 @@ class RowRepresentableAdapter( return } - val index = this.dataSource.adapterRows()?.indexOf(row) ?: -1 + val rows = this.dataSource.adapterRows() + val index = rows?.indexOf(row) ?: -1 if (index >= 0) { notifyItemChanged(index) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt index 3595e37d..eeece10e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt @@ -18,7 +18,11 @@ import net.pokeranalytics.android.ui.view.RowViewType open class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentableDataSource, RowRepresentableDelegate { lateinit var dataAdapter: RowRepresentableAdapter - var realmData: RealmResults<*>? = null + var realmData: RealmResults? = null + + override fun adapterRows(): List? { + return this.realmData + } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -71,7 +75,7 @@ open class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentable if (bottomSheetData.first().data == null) { throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency") } - this.realmData = bottomSheetData.first().data as RealmResults<*> + this.realmData = bottomSheetData.first().data as RealmResults } /** diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt index 3782f246..9c3b7ca8 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt @@ -6,15 +6,14 @@ import android.view.View import androidx.core.view.get import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.chip.Chip -import io.realm.RealmResults import kotlinx.android.synthetic.main.bottom_sheet_game_list.* import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* import net.pokeranalytics.android.R import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException import net.pokeranalytics.android.model.Limit import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter -import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.extensions.px +import net.pokeranalytics.android.ui.view.RowRepresentable /** * Bottom Sheet List Game Fragment @@ -58,7 +57,7 @@ class BottomSheetListGameFragment : BottomSheetListFragment() { throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency") } this.limit = bottomSheetData[0].defaultValue as Int? - this.realmData = bottomSheetData[1].data as RealmResults<*> + this.realmData = bottomSheetData[1].data } /** diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt index 5798656c..7bbe3c9e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetMultiSelectionFragment.kt @@ -53,14 +53,15 @@ open class BottomSheetMultiSelectionFragment : BottomSheetListFragment() { override fun initData() { super.initData() - val bottomSheetData = getData()?:throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found") + val bottomSheetData = + getData() ?: throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found") if (bottomSheetData.size != 1) { throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency") } bottomSheetData.first().defaultValue?.let { - (it as RealmList<*>).forEach{row -> - this.selectedRows.add(row as RowRepresentable) - } + (it as RealmList<*>).forEach { row -> + this.selectedRows.add(row as RowRepresentable) + } } } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentableEditDescriptor.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentableEditDescriptor.kt index 9d18652c..bdb6bf4b 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentableEditDescriptor.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentableEditDescriptor.kt @@ -9,6 +9,6 @@ class RowRepresentableEditDescriptor( var defaultValue: Any? = null, var hint: Int? = null, var inputType: Int? = null, - var data: RealmResults<*>? = null, + var data: RealmResults? = null, var staticData: List? = null ) \ No newline at end of file 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 40a49efe..f41ea396 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 @@ -255,7 +255,7 @@ enum class SessionRow : RowRepresentable { GAME -> { val limit: Int? by map val defaultValue: Any? by map - val data: RealmResults<*>? by map + val data: RealmResults? by map arrayListOf( RowRepresentableEditDescriptor(limit), RowRepresentableEditDescriptor(defaultValue, data = data) @@ -269,7 +269,7 @@ enum class SessionRow : RowRepresentable { } BANKROLL, LOCATION, TOURNAMENT_FEATURE, TOURNAMENT_NAME -> { val defaultValue: Any? by map - val data: RealmResults<*>? by map + val data: RealmResults? by map arrayListOf( RowRepresentableEditDescriptor(defaultValue, data = data) ) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/TransactionRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/TransactionRow.kt index 3092bd22..c1cb566a 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/TransactionRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/TransactionRow.kt @@ -54,14 +54,14 @@ enum class TransactionRow : RowRepresentable, DefaultEditDataSource { return when (this) { BANKROLL -> { val defaultValue : Any? by map - val data : RealmResults<*>? by map + val data : RealmResults? by map arrayListOf( RowRepresentableEditDescriptor(defaultValue, data = data) ) } TYPE -> { val defaultValue : Any? by map - val data : RealmResults<*>? by map + val data : RealmResults? by map arrayListOf( RowRepresentableEditDescriptor(defaultValue, data = data) )