Manage loader when looking for places

feature/top10
Aurelien Hubert 7 years ago
parent c25b5e96c3
commit d19259a108
  1. 11
      app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt
  2. 15
      app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
  3. 4
      app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.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<RowRepresentableEditDescriptor> {
val data = java.util.ArrayList<RowRepresentableEditDescriptor>()
when (row) {

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

@ -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<AppCompatTextView>(R.id.title).text = row.localizedTitle(itemView.context)
itemView.findViewById<AppCompatTextView>(R.id.title).isVisible = !adapter.dataSource.boolForRow(row)
itemView.findViewById<ContentLoadingProgressBar>(R.id.progressBar).isVisible = adapter.dataSource.boolForRow(row)
val listener = View.OnClickListener {
adapter.delegate?.onRowSelected(position, row)
}

Loading…
Cancel
Save