diff --git a/app/build.gradle b/app/build.gradle index 758e8fb3..d8eda998 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,7 +28,7 @@ android { applicationId "net.pokeranalytics.android" minSdkVersion 23 targetSdkVersion 28 - versionCode 19 + versionCode 20 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt index 26ddf597..5a97d9b0 100644 --- a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt +++ b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt @@ -67,9 +67,9 @@ class PokerAnalyticsApplication : Application() { val sessionsCount = realm.where().findAll().size realm.close() - if (sessionsCount < 1) { + if (sessionsCount < 10) { GlobalScope.launch { - FakeDataManager.createFakeSessions(200) + FakeDataManager.createFakeSessions(1) } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt index 87c86d33..0e143ef1 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt @@ -6,12 +6,14 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.snackbar.Snackbar import io.realm.RealmObject import io.realm.RealmResults +import io.realm.kotlin.isValid import kotlinx.android.synthetic.main.fragment_data_list.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope @@ -92,6 +94,12 @@ class DataListFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSourc } override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { + + if (row is Identifiable && !row.isValid()) { + Toast.makeText(requireContext(), R.string.invalid_object, Toast.LENGTH_LONG) + return + } + this.dataType.relatedResultsRepresentable?.let { lastItemClickedPosition = position EditableDataActivity.newInstanceForResult( diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt index 1cf2b32c..0b26c7c1 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt @@ -47,6 +47,7 @@ class StatisticDetailsFragment : PokerAnalyticsFragment() { private lateinit var computableGroup: ComputableGroup private lateinit var graphFragment: GraphFragment private lateinit var selectedReport: Report + private lateinit var aggregationTypes: List private var title: String? = null private var reports: MutableMap = hashMapOf() @@ -99,16 +100,17 @@ class StatisticDetailsFragment : PokerAnalyticsFragment() { fragmentTransaction.add(R.id.graphContainer, graphFragment) fragmentTransaction.commit() - stat.aggregationTypes.firstOrNull()?.let { aggregationType -> + this.aggregationTypes = stat.aggregationTypes + + this.aggregationTypes.firstOrNull()?.let { aggregationType -> reports[aggregationType]?.let { report -> setGraphData(report, aggregationType) } } toolbar.title = this.title ?: stat.localizedTitle(requireContext()) - val aggregationTypes = stat.aggregationTypes - aggregationTypes.forEachIndexed { index, type -> + this.aggregationTypes.forEachIndexed { index, type -> val chip = Chip(requireContext()) chip.id = index chip.text = requireContext().getString(type.resId) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bd118771..e6405524 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,6 +10,8 @@ Lines Initial Value Can\'t show because there is less than two values to display! + The object you\'re trying to access is invalid +