diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4f2253e..f5e5313 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,7 +33,8 @@ + android:label="@string/title_activity_main" + > diff --git a/app/src/main/java/com/lucasmontano/openweathermap/map/ui/MapsFragment.kt b/app/src/main/java/com/lucasmontano/openweathermap/map/ui/MapsFragment.kt index dbf3c89..5bb7f8c 100644 --- a/app/src/main/java/com/lucasmontano/openweathermap/map/ui/MapsFragment.kt +++ b/app/src/main/java/com/lucasmontano/openweathermap/map/ui/MapsFragment.kt @@ -1,5 +1,6 @@ package com.lucasmontano.openweathermap.map.ui +import android.content.res.Configuration import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -16,6 +17,7 @@ import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.OnMapReadyCallback import com.google.android.gms.maps.SupportMapFragment import com.google.android.gms.maps.model.LatLng +import com.google.android.gms.maps.model.MapStyleOptions import com.google.android.gms.maps.model.MarkerOptions import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.card.MaterialCardView @@ -80,12 +82,24 @@ class MapsFragment : Fragment(), OnMapReadyCallback, GoogleMap.OnCameraMoveListe mapFragment.getMapAsync(this) } + override fun onConfigurationChanged(config: Configuration) { + super.onConfigurationChanged(config) + mMap.setMapStyle(getMapStyle(config)) + } + + private fun getMapStyle(config: Configuration): MapStyleOptions? { + return when(config.uiMode and Configuration.UI_MODE_NIGHT_MASK){ + Configuration.UI_MODE_NIGHT_YES -> MapStyleOptions.loadRawResourceStyle(context, R.raw.dark_style) + else -> null + } + } + override fun onMapReady(googleMap: GoogleMap) { mMap = googleMap - mMap.setOnCameraMoveListener(this) mMap.setOnCameraIdleListener(this) mMap.setOnMapClickListener(this) + mMap.setMapStyle(getMapStyle(resources.configuration)) mMap.setOnInfoWindowClickListener { if (it.tag is LocationWeatherModel) { expandMarker(it.tag as LocationWeatherModel) diff --git a/app/src/main/res/raw/dark_style.txt b/app/src/main/res/raw/dark_style.txt new file mode 100644 index 0000000..c938c6f --- /dev/null +++ b/app/src/main/res/raw/dark_style.txt @@ -0,0 +1,233 @@ +[ + { + "elementType": "geometry", + "stylers": [ + { + "color": "#1d2c4d" + } + ] + }, + { + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#8ec3b9" + } + ] + }, + { + "elementType": "labels.text.stroke", + "stylers": [ + { + "color": "#1a3646" + } + ] + }, + { + "featureType": "administrative.country", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#4b6878" + } + ] + }, + { + "featureType": "administrative.land_parcel", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#64779e" + } + ] + }, + { + "featureType": "administrative.province", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#4b6878" + } + ] + }, + { + "featureType": "landscape.man_made", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#334e87" + } + ] + }, + { + "featureType": "landscape.natural", + "elementType": "geometry", + "stylers": [ + { + "color": "#023e58" + } + ] + }, + { + "featureType": "poi", + "elementType": "geometry", + "stylers": [ + { + "color": "#283d6a" + } + ] + }, + { + "featureType": "poi", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#6f9ba5" + } + ] + }, + { + "featureType": "poi", + "elementType": "labels.text.stroke", + "stylers": [ + { + "color": "#1d2c4d" + } + ] + }, + { + "featureType": "poi.park", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#023e58" + } + ] + }, + { + "featureType": "poi.park", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#3C7680" + } + ] + }, + { + "featureType": "road", + "elementType": "geometry", + "stylers": [ + { + "color": "#304a7d" + } + ] + }, + { + "featureType": "road", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#98a5be" + } + ] + }, + { + "featureType": "road", + "elementType": "labels.text.stroke", + "stylers": [ + { + "color": "#1d2c4d" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "geometry", + "stylers": [ + { + "color": "#2c6675" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "geometry.stroke", + "stylers": [ + { + "color": "#255763" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#b0d5ce" + } + ] + }, + { + "featureType": "road.highway", + "elementType": "labels.text.stroke", + "stylers": [ + { + "color": "#023e58" + } + ] + }, + { + "featureType": "transit", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#98a5be" + } + ] + }, + { + "featureType": "transit", + "elementType": "labels.text.stroke", + "stylers": [ + { + "color": "#1d2c4d" + } + ] + }, + { + "featureType": "transit.line", + "elementType": "geometry.fill", + "stylers": [ + { + "color": "#283d6a" + } + ] + }, + { + "featureType": "transit.station", + "elementType": "geometry", + "stylers": [ + { + "color": "#3a4762" + } + ] + }, + { + "featureType": "water", + "elementType": "geometry", + "stylers": [ + { + "color": "#0e1626" + } + ] + }, + { + "featureType": "water", + "elementType": "labels.text.fill", + "stylers": [ + { + "color": "#4e6d70" + } + ] + } +] \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index e900484..c9e625b 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -15,7 +15,7 @@ @color/color_on_secondary @color/color_on_error @color/color_on_surface - + @color/primary_color @color/primary_variant_color @style/ShapeAppearance.SmallComponent