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) }