From 227a52d032a6c582e73f1a562468908e08c7beb1 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Fri, 25 Jan 2019 22:33:20 -0600 Subject: [PATCH] Add the methods to hide/show both merchants and tellers markers depending on the current switches selection in the corresponding popup menu. --- .../fragments/MerchantsFragment.kt | 49 ++++++++++++++++--- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/MerchantsFragment.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/MerchantsFragment.kt index 4bf1972..735af9f 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/MerchantsFragment.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/fragments/MerchantsFragment.kt @@ -15,6 +15,7 @@ import android.preference.PreferenceManager import android.view.* import android.widget.PopupWindow import android.widget.TextView +import androidx.appcompat.widget.SwitchCompat import androidx.appcompat.widget.Toolbar import androidx.core.content.ContextCompat import androidx.lifecycle.Observer @@ -64,6 +65,12 @@ class MerchantsFragment : Fragment(), OnMapReadyCallback { private var mToolbar: Toolbar? = null private var screenWidth: Int = 0 + // Variables used to decide whether or not to display the merchants and tellers markers on the map + private var merchants = ArrayList() + private var tellers = ArrayList() + private var showMerchantsMarkers = true + private var showTellerMarkers = false + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { setHasOptionsMenu(true) @@ -92,7 +99,19 @@ class MerchantsFragment : Fragment(), OnMapReadyCallback { private fun setupPopupWindow() { val popupView = layoutInflater?.inflate(R.layout.popup_menu_merchants, null) - // TODO get references to the popup menu items + val switchMerchants = popupView?.findViewById(R.id.switchMerchants) + switchMerchants?.isChecked = showMerchantsMarkers + switchMerchants?.setOnCheckedChangeListener { _, isChecked -> + showMerchantsMarkers = isChecked + showHideMerchantsMarkers() + } + + val switchTellers = popupView?.findViewById(R.id.switchTellers) + switchTellers?.isChecked = showTellerMarkers + switchTellers?.setOnCheckedChangeListener { _, isChecked -> + showTellerMarkers = isChecked + showHideTellersMarkers() + } val tvAbout = popupView?.findViewById(R.id.tvAbout) tvAbout?.setOnClickListener { @@ -225,9 +244,9 @@ class MerchantsFragment : Fragment(), OnMapReadyCallback { mMerchantClusterManager?.markerCollection?.setOnInfoWindowAdapter(MerchantInfoWindowAdapter()) mMerchantViewModel.getAllMerchants().observe(this, Observer> {merchants -> - mMerchantClusterManager?.clearItems() - mMerchantClusterManager?.addItems(merchants) - mMerchantClusterManager?.cluster() + this.merchants.clear() + this.merchants.addAll(merchants) + showHideMerchantsMarkers() }) } @@ -251,10 +270,28 @@ class MerchantsFragment : Fragment(), OnMapReadyCallback { mTellerClusterManager?.markerCollection?.setOnInfoWindowAdapter(TellerInfoWindowAdapter()) mMerchantViewModel.getAllTellers().observe(this, Observer> {tellers -> - mTellerClusterManager?.clearItems() + this.tellers.clear() + this.tellers.addAll(tellers) + showHideTellersMarkers() + }) + } + + private fun showHideMerchantsMarkers() { + mMerchantClusterManager?.clearItems() + mMerchantClusterManager?.cluster() + if (showMerchantsMarkers) { + mMerchantClusterManager?.addItems(merchants) + mMerchantClusterManager?.cluster() + } + } + + private fun showHideTellersMarkers() { + mTellerClusterManager?.clearItems() + mTellerClusterManager?.cluster() + if (showTellerMarkers) { mTellerClusterManager?.addItems(tellers) mTellerClusterManager?.cluster() - }) + } } /** Animates the camera update to focus on an area that shows all the items from the cluster that was tapped. */