Add reverse geocoder preference

pull/1375/head
Alex Baker 5 years ago
parent fd23ae705f
commit 9f2401e927

@ -5,16 +5,11 @@ import dagger.Provides
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import org.tasks.location.AndroidGeofencing import org.tasks.location.AndroidGeofencing
import org.tasks.location.Geocoder
import org.tasks.location.GeocoderNominatim
import org.tasks.location.Geofencing import org.tasks.location.Geofencing
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)
class FlavorModule { class FlavorModule {
@Provides
fun getGeocoder(geocoder: GeocoderNominatim): Geocoder = geocoder
@Provides @Provides
fun getGeofencing(geofencing: AndroidGeofencing): Geofencing = geofencing fun getGeofencing(geofencing: AndroidGeofencing): Geofencing = geofencing
} }

@ -6,5 +6,6 @@
<!--suppress CheckTagEmptyBody --> <!--suppress CheckTagEmptyBody -->
<string name="manage_subscription_url">%s</string> <string name="manage_subscription_url">%s</string>
<string name="support_email">support@tasks.org</string> <string name="support_email">support@tasks.org</string>
<string name="default_reverse_geocoder">1</string> <!-- Nominatim -->
<string name="default_maps">1</string> <!-- OpenStreetMaps --> <string name="default_maps">1</string> <!-- OpenStreetMaps -->
</resources> </resources>

@ -4,14 +4,12 @@ import dagger.Module
import dagger.Provides import dagger.Provides
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import org.tasks.location.* import org.tasks.location.Geofencing
import org.tasks.location.GoogleGeofencing
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)
class FlavorModule { class FlavorModule {
@Provides
fun getGeocoder(geocoder: GeocoderMapbox): Geocoder = geocoder
@Provides @Provides
fun getGeofencing(geofencing: GoogleGeofencing): Geofencing = geofencing fun getGeofencing(geofencing: GoogleGeofencing): Geofencing = geofencing
} }

@ -6,5 +6,6 @@
<string name="p_purchases">purchases</string> <string name="p_purchases">purchases</string>
<string name="manage_subscription_url">https://play.google.com/store/account/subscriptions?sku=%s&amp;package=org.tasks</string> <string name="manage_subscription_url">https://play.google.com/store/account/subscriptions?sku=%s&amp;package=org.tasks</string>
<string name="support_email">play-support@tasks.org</string> <string name="support_email">play-support@tasks.org</string>
<string name="default_reverse_geocoder">0</string> <!-- Mapbox -->
<string name="default_maps">0</string> <!-- Google Maps --> <string name="default_maps">0</string> <!-- Google Maps -->
</resources> </resources>

@ -7,13 +7,21 @@ import dagger.Provides
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import org.tasks.DebugNetworkInterceptor
import org.tasks.R
import org.tasks.analytics.Firebase import org.tasks.analytics.Firebase
import org.tasks.billing.BillingClient import org.tasks.billing.BillingClient
import org.tasks.billing.BillingClientImpl import org.tasks.billing.BillingClientImpl
import org.tasks.billing.Inventory import org.tasks.billing.Inventory
import org.tasks.data.* import org.tasks.data.*
import org.tasks.http.HttpClientFactory
import org.tasks.locale.Locale import org.tasks.locale.Locale
import org.tasks.location.Geocoder
import org.tasks.location.GeocoderAndroid
import org.tasks.location.GeocoderMapbox
import org.tasks.location.GeocoderNominatim
import org.tasks.notifications.NotificationDao import org.tasks.notifications.NotificationDao
import org.tasks.preferences.Preferences
import javax.inject.Singleton import javax.inject.Singleton
@Module @Module
@ -94,4 +102,16 @@ class ApplicationModule {
@Provides @Provides
fun getBillingClient(@ApplicationContext context: Context, inventory: Inventory, firebase: Firebase): BillingClient fun getBillingClient(@ApplicationContext context: Context, inventory: Inventory, firebase: Firebase): BillingClient
= BillingClientImpl(context, inventory, firebase) = BillingClientImpl(context, inventory, firebase)
@Provides
fun getGeocoder(
@ApplicationContext context: Context,
httpClientFactory: HttpClientFactory,
preferences: Preferences,
interceptor: DebugNetworkInterceptor,
): Geocoder = when (preferences.getIntegerFromString(R.string.p_reverse_geocoder, 0)) {
1 -> GeocoderNominatim(context, httpClientFactory)
2 -> GeocoderAndroid(context)
else -> GeocoderMapbox(context, preferences, interceptor)
}
} }

@ -258,6 +258,18 @@
<item>@drawable/ic_octocat</item> <item>@drawable/ic_octocat</item>
</array> </array>
<string-array name="reverse_geocoder_names">
<item>@string/mapbox</item>
<item>@string/nominatim</item>
<item>@string/android</item>
</string-array>
<string-array name="reverse_geocoder_values">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="map_tile_names"> <string-array name="map_tile_names">
<item>@string/google_maps</item> <item>@string/google_maps</item>
<item>@string/openstreetmap</item> <item>@string/openstreetmap</item>

@ -398,8 +398,10 @@
<string name="p_linkify_task_edit">linkify_task_edit</string> <string name="p_linkify_task_edit">linkify_task_edit</string>
<string name="mapbox">Mapbox</string> <string name="mapbox">Mapbox</string>
<string name="map_search_google_places">Google Places</string> <string name="map_search_google_places">Google Places</string>
<string name="nominatim">Nominatim</string>
<string name="google_maps">Google Maps</string> <string name="google_maps">Google Maps</string>
<string name="openstreetmap">OpenStreetMap</string> <string name="openstreetmap">OpenStreetMap</string>
<string name="android">Android</string>
<string name="p_place_provider">place_provider_v2</string> <string name="p_place_provider">place_provider_v2</string>
<string name="preference_screen">preference_screen</string> <string name="preference_screen">preference_screen</string>
<string name="p_add_to_top">google_tasks_add_to_top</string> <string name="p_add_to_top">google_tasks_add_to_top</string>
@ -447,6 +449,7 @@
<string name="event_sync_add_account">sync_add_account</string> <string name="event_sync_add_account">sync_add_account</string>
<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_reverse_geocoder">reverse_geocoder</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> <string name="p_map_theme">map_theme</string>
</resources> </resources>

@ -699,6 +699,7 @@ File %1$s contained %2$s.\n\n
<string name="tasks_org_account">Tasks.org account</string> <string name="tasks_org_account">Tasks.org account</string>
<string name="get_tasks_org_account">Get Tasks.org account</string> <string name="get_tasks_org_account">Get Tasks.org account</string>
<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="reverse_geocoder">Reverse geocoder</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> <string name="map_theme_use_app_theme">Use app theme</string>

@ -28,6 +28,14 @@
android:key="@string/places" android:key="@string/places"
android:title="@string/places"> android:title="@string/places">
<ListPreference
android:defaultValue="@string/default_reverse_geocoder"
android:key="@string/p_reverse_geocoder"
android:title="@string/reverse_geocoder"
android:entries="@array/reverse_geocoder_names"
android:entryValues="@array/reverse_geocoder_values"
android:summary="%s"/>
<ListPreference <ListPreference
android:defaultValue="0" android:defaultValue="0"
android:key="@string/p_place_provider" android:key="@string/p_place_provider"

Loading…
Cancel
Save