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" /> + +