diff --git a/app/src/main/java/net/vonforst/evmap/adapter/DataBindingAdapters.kt b/app/src/main/java/net/vonforst/evmap/adapter/DataBindingAdapters.kt index 61e027b3..e5cb7bbb 100644 --- a/app/src/main/java/net/vonforst/evmap/adapter/DataBindingAdapters.kt +++ b/app/src/main/java/net/vonforst/evmap/adapter/DataBindingAdapters.kt @@ -174,7 +174,8 @@ fun buildDetails( R.plurals.charge_cards_compatible_num, loc.chargecards.size, loc.chargecards.size ), - formatChargeCards(loc.chargecards, chargeCards, ctx) + formatChargeCards(loc.chargecards, chargeCards, ctx), + clickable = true ) else null, DetailAdapter.Detail( R.drawable.ic_location, diff --git a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt index 89da6250..1e5140af 100644 --- a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt +++ b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt @@ -14,6 +14,7 @@ import android.view.* import android.view.inputmethod.InputMethodManager import android.widget.TextView import androidx.activity.OnBackPressedCallback +import androidx.appcompat.app.AlertDialog import androidx.appcompat.widget.PopupMenu import androidx.core.app.SharedElementCallback import androidx.core.content.ContextCompat @@ -472,7 +473,7 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac binding.detailView.details.apply { adapter = DetailAdapter().apply { onClickListener = { - val charger = vm.chargerSparse.value + val charger = vm.chargerDetails.value?.data if (charger != null) { when (it.icon) { R.drawable.ic_location -> { @@ -481,6 +482,9 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac R.drawable.ic_fault_report -> { (activity as? MapsActivity)?.openUrl("https:${charger.url}") } + R.drawable.ic_payment -> { + showPaymentMethodsDialog(charger) + } } } } @@ -497,6 +501,21 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac } } + private fun showPaymentMethodsDialog(charger: ChargeLocation) { + val activity = activity ?: return + val chargecardData = vm.chargeCardMap.value ?: return + val chargecards = charger.chargecards ?: return + + val data = chargecards.map { chargecardData[it.id] }.sortedBy { it?.name } + val names = data.map { it?.name ?: "" } + AlertDialog.Builder(activity) + .setTitle(R.string.charge_cards) + .setItems(names.toTypedArray()) { _, i -> + val card = data[i] ?: return@setItems + (activity as? MapsActivity)?.openUrl("https:${card.url}") + }.show() + } + override fun onMapReady(map: GoogleMap) { this.map = map map.uiSettings.isTiltGesturesEnabled = false