diff --git a/app/src/main/java/org/tasks/activities/PlaceSettingsActivity.kt b/app/src/main/java/org/tasks/activities/PlaceSettingsActivity.kt
index 7e724c2fe..6910e1f7d 100644
--- a/app/src/main/java/org/tasks/activities/PlaceSettingsActivity.kt
+++ b/app/src/main/java/org/tasks/activities/PlaceSettingsActivity.kt
@@ -16,6 +16,7 @@ import org.tasks.data.LocationDao
import org.tasks.data.Place
import org.tasks.filters.PlaceFilter
import org.tasks.location.MapFragment
+import org.tasks.preferences.Preferences
import javax.inject.Inject
@AndroidEntryPoint
@@ -30,6 +31,7 @@ class PlaceSettingsActivity : BaseListSettingsActivity(), MapFragment.MapFragmen
@Inject lateinit var locationDao: LocationDao
@Inject lateinit var map: MapFragment
+ @Inject lateinit var preferences: Preferences
private lateinit var place: Place
@@ -54,7 +56,10 @@ class PlaceSettingsActivity : BaseListSettingsActivity(), MapFragment.MapFragmen
selectedIcon = place.getIcon()!!
}
- map.init(this, this, tasksTheme.themeBase.isDarkTheme(this))
+ val dark = preferences.mapTheme == 2
+ || preferences.mapTheme == 0 && tasksTheme.themeBase.isDarkTheme(this)
+
+ map.init(this, this, dark)
updateTheme()
}
diff --git a/app/src/main/java/org/tasks/location/LocationPickerActivity.kt b/app/src/main/java/org/tasks/location/LocationPickerActivity.kt
index 0e3bc0e0b..526f2b0c7 100644
--- a/app/src/main/java/org/tasks/location/LocationPickerActivity.kt
+++ b/app/src/main/java/org/tasks/location/LocationPickerActivity.kt
@@ -49,6 +49,7 @@ import org.tasks.location.MapFragment.MapFragmentCallback
import org.tasks.preferences.ActivityPermissionRequestor
import org.tasks.preferences.PermissionChecker
import org.tasks.preferences.PermissionRequestor
+import org.tasks.preferences.Preferences
import org.tasks.themes.ColorProvider
import org.tasks.themes.Theme
import org.tasks.ui.Toaster
@@ -95,7 +96,8 @@ class LocationPickerActivity : InjectingAppCompatActivity(), Toolbar.OnMenuItemC
@Inject lateinit var colorProvider: ColorProvider
@Inject lateinit var locationProvider: LocationProvider
@Inject lateinit var firebase: Firebase
-
+ @Inject lateinit var preferences: Preferences
+
private var disposables: CompositeDisposable? = null
private var mapPosition: MapPosition? = null
private var recentsAdapter: LocationPickerAdapter? = null
@@ -137,7 +139,8 @@ class LocationPickerActivity : InjectingAppCompatActivity(), Toolbar.OnMenuItemC
themeColor.applyToNavigationBar(this)
themeColor.setStatusBarColor(toolbarLayout)
themeColor.apply(toolbar)
- val dark = theme.themeBase.isDarkTheme(this)
+ val dark = preferences.mapTheme == 2
+ || preferences.mapTheme == 0 && theme.themeBase.isDarkTheme(this)
map.init(this, this, dark)
val params = appBarLayout.layoutParams as CoordinatorLayout.LayoutParams
val behavior = AppBarLayout.Behavior()
diff --git a/app/src/main/java/org/tasks/preferences/Preferences.kt b/app/src/main/java/org/tasks/preferences/Preferences.kt
index 68f939478..3340cae52 100644
--- a/app/src/main/java/org/tasks/preferences/Preferences.kt
+++ b/app/src/main/java/org/tasks/preferences/Preferences.kt
@@ -205,6 +205,9 @@ class Preferences @JvmOverloads constructor(
val fontSize: Int
get() = getInt(R.string.p_fontSize, 16)
+ val mapTheme: Int
+ get() = getIntegerFromString(R.string.p_map_theme, 0)
+
fun getIntegerFromString(keyResource: Int, defaultValue: Int): Int =
getIntegerFromString(context.getString(keyResource), defaultValue)
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 8daa56553..eaa8f187a 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -268,6 +268,18 @@
- 1
+
+ - @string/map_theme_use_app_theme
+ - @string/theme_light
+ - @string/theme_dark
+
+
+
+ - 0
+ - 1
+ - 2
+
+
- @string/mapbox
- @string/map_search_google_places
diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml
index 6290d72f3..b8fc888aa 100644
--- a/app/src/main/res/values/keys.xml
+++ b/app/src/main/res/values/keys.xml
@@ -448,4 +448,5 @@
legacy_etesync
type
map_tiles
+ map_theme
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 76ae11a52..9d805a9bf 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -403,6 +403,7 @@ File %1$s contained %2$s.\n\n
Row opacity
Footer opacity
Theme
+ Map theme
Color
Icon
Accent
@@ -700,4 +701,5 @@ File %1$s contained %2$s.\n\n
Not included with \'Name your price\' subscriptions
Maps
Map tiles
+ Use app theme
diff --git a/app/src/main/res/xml/preferences_location.xml b/app/src/main/res/xml/preferences_location.xml
index a73ae5bee..4d7f21b2e 100644
--- a/app/src/main/res/xml/preferences_location.xml
+++ b/app/src/main/res/xml/preferences_location.xml
@@ -14,6 +14,14 @@
android:entryValues="@array/map_tile_values"
android:summary="%s" />
+
+