From 0908500317c07d385ad5204f5612c42d54e3f0c1 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 8 Mar 2019 14:52:06 +0100 Subject: [PATCH 1/6] Clean code --- .../net/pokeranalytics/android/ui/fragment/StatsFragment.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt index a5cfe15a..86b7ae1d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt @@ -21,7 +21,7 @@ import net.pokeranalytics.android.util.NULL_TEXT class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSource { - private var rowRepresentables: ArrayList = ArrayList() + private var rowRepresentables: ArrayList = ArrayList() private lateinit var statsAdapter: RowRepresentableAdapter @@ -56,7 +56,7 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc } override fun contentDescriptorForRow(row: RowRepresentable): DisplayDescriptor? { - var dc = DisplayDescriptor() + val dc = DisplayDescriptor() dc.textFormat = TextFormat(NULL_TEXT) if (row is StatRepresentable) { context?.let { context -> From 3a9afc267103989f4ca3576d16e30974650a1d23 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 8 Mar 2019 15:35:31 +0100 Subject: [PATCH 2/6] Fix max results for places picker --- .../pokeranalytics/android/ui/helpers/PlacePickerManager.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/helpers/PlacePickerManager.kt b/app/src/main/java/net/pokeranalytics/android/ui/helpers/PlacePickerManager.kt index cb4adbcc..e31127a8 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/helpers/PlacePickerManager.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/helpers/PlacePickerManager.kt @@ -16,14 +16,14 @@ class PlacePickerManager { activity: PokerAnalyticsActivity, row: RowRepresentable, delegate: RowRepresentableDelegate, - maxResults: Int? = 2 + maxResults: Int? = 3 ) { activity.askForPlacesRequest { success, places -> if (success && places.size > 0) { val placesArray = ArrayList() for ((index, place) in places.withIndex()) { placesArray.add(place.place.name.toString()) - if (index == maxResults) { + if (index == (maxResults ?: 3) - 1) { break } } From c25b5e96c3c87fe6ae420255817f993c2f75db15 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 8 Mar 2019 15:35:38 +0100 Subject: [PATCH 3/6] Add loader --- app/src/main/res/layout/row_button.xml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/layout/row_button.xml b/app/src/main/res/layout/row_button.xml index 88759911..3a06d293 100644 --- a/app/src/main/res/layout/row_button.xml +++ b/app/src/main/res/layout/row_button.xml @@ -4,23 +4,36 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="56dp" android:background="?selectableItemBackground"> + + Date: Fri, 8 Mar 2019 15:36:24 +0100 Subject: [PATCH 4/6] Manage loader when looking for places --- .../android/model/realm/Location.kt | 11 +++++++++++ .../android/ui/fragment/EditableDataFragment.kt | 15 +++++++++------ .../pokeranalytics/android/ui/view/RowViewType.kt | 4 ++++ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt index f9cf1250..17e4cfca 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt @@ -2,6 +2,7 @@ package net.pokeranalytics.android.model.realm import com.google.android.libraries.places.api.model.Place import io.realm.RealmObject +import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey import net.pokeranalytics.android.model.interfaces.Savable import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource @@ -30,6 +31,9 @@ open class Location : RealmObject(), Savable, StaticRowRepresentableDataSource, // the latitude of the location var latitude: Double? = null + @Ignore + var isLookingForPlaces = false + override fun getDisplayName(): String { return this.name } @@ -53,6 +57,13 @@ open class Location : RealmObject(), Savable, StaticRowRepresentableDataSource, } } + override fun boolForRow(row: RowRepresentable): Boolean { + return when(row) { + LocationRow.LOCATE_ME -> return isLookingForPlaces + else -> super.boolForRow(row) + } + } + override fun editDescriptors(row: RowRepresentable): ArrayList { val data = java.util.ArrayList() when (row) { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt index 7ccfca7a..425aba0d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt @@ -69,12 +69,12 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { when (row) { - LocationRow.LOCATE_ME -> PlacePickerManager.create(parentActivity, row, this) - else -> { - BottomSheetFragment.create( - fragmentManager, row, this, (this.item as RowRepresentableDataSource).editDescriptors(row) - ) + LocationRow.LOCATE_ME -> { + (item as Location).isLookingForPlaces = true + PlacePickerManager.create(parentActivity, row, this) + rowRepresentableAdapter.refreshRow(row) } + else -> BottomSheetFragment.create(fragmentManager, row, this, (this.item as RowRepresentableDataSource).editDescriptors(row)) } } @@ -87,7 +87,10 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, (this.item as Savable).updateValue(value, row) } when (row) { - LocationRow.LOCATE_ME -> rowRepresentableAdapter.notifyDataSetChanged() + LocationRow.LOCATE_ME -> { + (item as Location).isLookingForPlaces = false + rowRepresentableAdapter.notifyDataSetChanged() + } else -> rowRepresentableAdapter.refreshRow(row) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt index e56829b7..086b172e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt @@ -7,6 +7,8 @@ import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatTextView import androidx.appcompat.widget.SwitchCompat import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.view.isVisible +import androidx.core.widget.ContentLoadingProgressBar import androidx.recyclerview.widget.RecyclerView import kotlinx.android.synthetic.main.row_history_session.view.* import kotlinx.android.synthetic.main.row_stats_title_value.view.* @@ -205,6 +207,8 @@ enum class RowViewType(private var layoutRes: Int) { inner class RowButtonViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView), BindableHolder { override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) { itemView.findViewById(R.id.title).text = row.localizedTitle(itemView.context) + itemView.findViewById(R.id.title).isVisible = !adapter.dataSource.boolForRow(row) + itemView.findViewById(R.id.progressBar).isVisible = adapter.dataSource.boolForRow(row) val listener = View.OnClickListener { adapter.delegate?.onRowSelected(position, row) } From c5d43b46a4e3e110f6f7b246e6f3c52898519adf Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 8 Mar 2019 15:53:55 +0100 Subject: [PATCH 5/6] Improve loader when looking for places --- .../java/net/pokeranalytics/android/model/realm/Location.kt | 1 + .../android/ui/fragment/EditableDataFragment.kt | 1 - .../pokeranalytics/android/ui/helpers/PlacePickerManager.kt | 4 ++++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt index 17e4cfca..501d43dc 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt @@ -89,6 +89,7 @@ open class Location : RealmObject(), Savable, StaticRowRepresentableDataSource, SimpleRow.NAME -> this.name = value as String? ?: "" LocationRow.ADDRESS -> this.address = value as String? ?: "" LocationRow.LOCATE_ME -> { + isLookingForPlaces = false if (value is Place) { setPlace(value) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt index 425aba0d..eec7dc61 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt @@ -88,7 +88,6 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, } when (row) { LocationRow.LOCATE_ME -> { - (item as Location).isLookingForPlaces = false rowRepresentableAdapter.notifyDataSetChanged() } else -> rowRepresentableAdapter.refreshRow(row) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/helpers/PlacePickerManager.kt b/app/src/main/java/net/pokeranalytics/android/ui/helpers/PlacePickerManager.kt index e31127a8..919653c2 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/helpers/PlacePickerManager.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/helpers/PlacePickerManager.kt @@ -30,8 +30,12 @@ class PlacePickerManager { val builder = AlertDialog.Builder(activity) builder.setItems(placesArray.toTypedArray()) { _, which -> delegate.onRowValueChanged(places[which].place, row) + }.setOnCancelListener { + delegate.onRowValueChanged(null, row) } builder.show() + } else { + delegate.onRowValueChanged(null, row) } } } From 78d4277b618cc13173d15d2ce7220d2adc466221 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 8 Mar 2019 16:04:18 +0100 Subject: [PATCH 6/6] Update bankroll live settings --- .../net/pokeranalytics/android/model/realm/Bankroll.kt | 7 ++++--- .../android/ui/view/rowrepresentable/BankrollRow.kt | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt index 420a58f2..83337bbe 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt @@ -63,7 +63,7 @@ open class Bankroll(name: String = "") : RealmObject(), Savable, override fun boolForRow(row: RowRepresentable): Boolean { when (row) { - BankrollRow.LIVE -> return this.live + BankrollRow.LIVE -> return !this.live else -> return super.boolForRow(row) } } @@ -84,8 +84,9 @@ open class Bankroll(name: String = "") : RealmObject(), Savable, override fun updateValue(value: Any?, row: RowRepresentable) { when (row) { SimpleRow.NAME -> this.name = value as String? ?: "" - BankrollRow.LIVE -> this.live = value as Boolean? ?: false - + BankrollRow.LIVE -> { + this.live = if (value is Boolean) !value else false + } } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/BankrollRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/BankrollRow.kt index 68eb181d..851e6375 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/BankrollRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/BankrollRow.kt @@ -12,7 +12,7 @@ enum class BankrollRow : RowRepresentable { override val resId: Int? get() { return when (this) { - LIVE -> R.string.live + LIVE -> R.string.online } }