diff --git a/app/build.gradle b/app/build.gradle index e26912d2..132504f6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -68,7 +68,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'com.google.maps.android:android-maps-utils:0.5' - implementation 'com.github.johan12345:CustomBottomSheetBehavior:c2dcf0dc' + implementation 'com.github.johan12345:CustomBottomSheetBehavior:8ec7fee516' implementation 'com.google.android.gms:play-services-maps:17.0.0' implementation 'com.google.android.gms:play-services-location:17.0.0' implementation 'com.google.android.libraries.places:places:2.2.0' 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 c5870997..d19166ea 100644 --- a/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt +++ b/app/src/main/java/net/vonforst/evmap/fragment/MapFragment.kt @@ -9,6 +9,7 @@ import android.content.res.Configuration import android.os.Bundle import android.view.* import androidx.core.content.ContextCompat +import androidx.core.view.updateLayoutParams import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels @@ -33,6 +34,7 @@ import com.google.android.libraries.places.widget.Autocomplete import com.google.android.libraries.places.widget.model.AutocompleteActivityMode import com.google.android.material.snackbar.Snackbar import com.mahc.custombottomsheetbehavior.BottomSheetBehaviorGoogleMapsLike +import com.mahc.custombottomsheetbehavior.MergedAppBarLayoutBehavior import kotlinx.android.synthetic.main.fragment_map.* import net.vonforst.evmap.MapsActivity import net.vonforst.evmap.R @@ -69,6 +71,7 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac private var map: GoogleMap? = null private lateinit var fusedLocationClient: FusedLocationProviderClient private lateinit var bottomSheetBehavior: BottomSheetBehaviorGoogleMapsLike + private lateinit var detailAppBarBehavior: MergedAppBarLayoutBehavior private var markers: Map = emptyMap() private var clusterMarkers: List = emptyList() @@ -93,6 +96,16 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac setHasOptionsMenu(true) postponeEnterTransition() + binding.toolbarContainer.viewTreeObserver.addOnGlobalLayoutListener { + + } + binding.root.setOnApplyWindowInsetsListener { v, insets -> + binding.detailAppBar.toolbar.updateLayoutParams { + topMargin = insets.systemWindowInsetTop + } + insets + } + return binding.root } @@ -100,6 +113,7 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac val mapFragment = childFragmentManager.findFragmentById(R.id.map) as SupportMapFragment mapFragment.getMapAsync(this) bottomSheetBehavior = BottomSheetBehaviorGoogleMapsLike.from(binding.bottomSheet) + detailAppBarBehavior = MergedAppBarLayoutBehavior.from(binding.detailAppBar) setupObservers() setupClickListeners() @@ -156,6 +170,9 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac .addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) startActivityForResult(intent, REQUEST_AUTOCOMPLETE) } + binding.detailAppBar.toolbar.setNavigationOnClickListener { + bottomSheetBehavior.state = BottomSheetBehaviorGoogleMapsLike.STATE_COLLAPSED + } } private fun setupObservers() { @@ -175,6 +192,7 @@ class MapFragment : Fragment(), OnMapReadyCallback, MapsActivity.FragmentCallbac bottomSheetBehavior.state = BottomSheetBehaviorGoogleMapsLike.STATE_COLLAPSED } binding.fabDirections.show() + detailAppBarBehavior.setToolbarTitle(it.name) } else { bottomSheetBehavior.state = BottomSheetBehaviorGoogleMapsLike.STATE_HIDDEN } diff --git a/app/src/main/res/layout/fragment_map.xml b/app/src/main/res/layout/fragment_map.xml index c42984d1..de29d9a8 100644 --- a/app/src/main/res/layout/fragment_map.xml +++ b/app/src/main/res/layout/fragment_map.xml @@ -27,13 +27,13 @@ tools:context=".MapsActivity" /> - + app:layout_behavior="@string/MergedAppBarLayoutBehavior"> \ No newline at end of file