Add map theme preference

pull/1375/head
Alex Baker 5 years ago
parent 9096c5a687
commit fd23ae705f

@ -16,6 +16,7 @@ import org.tasks.data.LocationDao
import org.tasks.data.Place import org.tasks.data.Place
import org.tasks.filters.PlaceFilter import org.tasks.filters.PlaceFilter
import org.tasks.location.MapFragment import org.tasks.location.MapFragment
import org.tasks.preferences.Preferences
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
@ -30,6 +31,7 @@ class PlaceSettingsActivity : BaseListSettingsActivity(), MapFragment.MapFragmen
@Inject lateinit var locationDao: LocationDao @Inject lateinit var locationDao: LocationDao
@Inject lateinit var map: MapFragment @Inject lateinit var map: MapFragment
@Inject lateinit var preferences: Preferences
private lateinit var place: Place private lateinit var place: Place
@ -54,7 +56,10 @@ class PlaceSettingsActivity : BaseListSettingsActivity(), MapFragment.MapFragmen
selectedIcon = place.getIcon()!! 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() updateTheme()
} }

@ -49,6 +49,7 @@ import org.tasks.location.MapFragment.MapFragmentCallback
import org.tasks.preferences.ActivityPermissionRequestor import org.tasks.preferences.ActivityPermissionRequestor
import org.tasks.preferences.PermissionChecker import org.tasks.preferences.PermissionChecker
import org.tasks.preferences.PermissionRequestor import org.tasks.preferences.PermissionRequestor
import org.tasks.preferences.Preferences
import org.tasks.themes.ColorProvider import org.tasks.themes.ColorProvider
import org.tasks.themes.Theme import org.tasks.themes.Theme
import org.tasks.ui.Toaster import org.tasks.ui.Toaster
@ -95,7 +96,8 @@ class LocationPickerActivity : InjectingAppCompatActivity(), Toolbar.OnMenuItemC
@Inject lateinit var colorProvider: ColorProvider @Inject lateinit var colorProvider: ColorProvider
@Inject lateinit var locationProvider: LocationProvider @Inject lateinit var locationProvider: LocationProvider
@Inject lateinit var firebase: Firebase @Inject lateinit var firebase: Firebase
@Inject lateinit var preferences: Preferences
private var disposables: CompositeDisposable? = null private var disposables: CompositeDisposable? = null
private var mapPosition: MapPosition? = null private var mapPosition: MapPosition? = null
private var recentsAdapter: LocationPickerAdapter? = null private var recentsAdapter: LocationPickerAdapter? = null
@ -137,7 +139,8 @@ class LocationPickerActivity : InjectingAppCompatActivity(), Toolbar.OnMenuItemC
themeColor.applyToNavigationBar(this) themeColor.applyToNavigationBar(this)
themeColor.setStatusBarColor(toolbarLayout) themeColor.setStatusBarColor(toolbarLayout)
themeColor.apply(toolbar) 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) map.init(this, this, dark)
val params = appBarLayout.layoutParams as CoordinatorLayout.LayoutParams val params = appBarLayout.layoutParams as CoordinatorLayout.LayoutParams
val behavior = AppBarLayout.Behavior() val behavior = AppBarLayout.Behavior()

@ -205,6 +205,9 @@ class Preferences @JvmOverloads constructor(
val fontSize: Int val fontSize: Int
get() = getInt(R.string.p_fontSize, 16) 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 = fun getIntegerFromString(keyResource: Int, defaultValue: Int): Int =
getIntegerFromString(context.getString(keyResource), defaultValue) getIntegerFromString(context.getString(keyResource), defaultValue)

@ -268,6 +268,18 @@
<item>1</item> <item>1</item>
</string-array> </string-array>
<string-array name="map_theme_names">
<item>@string/map_theme_use_app_theme</item>
<item>@string/theme_light</item>
<item>@string/theme_dark</item>
</string-array>
<string-array name="map_theme_values">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="map_search_provider_names"> <string-array name="map_search_provider_names">
<item>@string/mapbox</item> <item>@string/mapbox</item>
<item>@string/map_search_google_places</item> <item>@string/map_search_google_places</item>

@ -448,4 +448,5 @@
<string name="legacy_etesync">legacy_etesync</string> <string name="legacy_etesync">legacy_etesync</string>
<string name="param_type">type</string> <string name="param_type">type</string>
<string name="p_map_tiles">map_tiles</string> <string name="p_map_tiles">map_tiles</string>
<string name="p_map_theme">map_theme</string>
</resources> </resources>

@ -403,6 +403,7 @@ File %1$s contained %2$s.\n\n
<string name="opacity_row">Row opacity</string> <string name="opacity_row">Row opacity</string>
<string name="opacity_footer">Footer opacity</string> <string name="opacity_footer">Footer opacity</string>
<string name="theme">Theme</string> <string name="theme">Theme</string>
<string name="map_theme">Map theme</string>
<string name="color">Color</string> <string name="color">Color</string>
<string name="icon">Icon</string> <string name="icon">Icon</string>
<string name="accent">Accent</string> <string name="accent">Accent</string>
@ -700,4 +701,5 @@ File %1$s contained %2$s.\n\n
<string name="account_not_included">Not included with \'Name your price\' subscriptions</string> <string name="account_not_included">Not included with \'Name your price\' subscriptions</string>
<string name="maps">Maps</string> <string name="maps">Maps</string>
<string name="map_tiles">Map tiles</string> <string name="map_tiles">Map tiles</string>
<string name="map_theme_use_app_theme">Use app theme</string>
</resources> </resources>

@ -14,6 +14,14 @@
android:entryValues="@array/map_tile_values" android:entryValues="@array/map_tile_values"
android:summary="%s" /> android:summary="%s" />
<ListPreference
android:defaultValue="0"
android:key="@string/p_map_theme"
android:title="@string/map_theme"
android:entries="@array/map_theme_names"
android:entryValues="@array/map_theme_values"
android:summary="%s" />
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory

Loading…
Cancel
Save