From 9f2401e927a5ebbd36ec8566296ef992739b5880 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 16 Feb 2021 12:07:11 -0600 Subject: [PATCH] Add reverse geocoder preference --- .../java/org/tasks/injection/FlavorModule.kt | 5 ----- app/src/generic/res/values/keys.xml | 1 + .../java/org/tasks/injection/FlavorModule.kt | 6 ++---- app/src/googleplay/res/values/keys.xml | 1 + .../org/tasks/injection/ApplicationModule.kt | 20 +++++++++++++++++++ app/src/main/res/values/arrays.xml | 12 +++++++++++ app/src/main/res/values/keys.xml | 3 +++ app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/preferences_location.xml | 8 ++++++++ 9 files changed, 48 insertions(+), 9 deletions(-) diff --git a/app/src/generic/java/org/tasks/injection/FlavorModule.kt b/app/src/generic/java/org/tasks/injection/FlavorModule.kt index c324e6fdb..c9c4d414c 100644 --- a/app/src/generic/java/org/tasks/injection/FlavorModule.kt +++ b/app/src/generic/java/org/tasks/injection/FlavorModule.kt @@ -5,16 +5,11 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import org.tasks.location.AndroidGeofencing -import org.tasks.location.Geocoder -import org.tasks.location.GeocoderNominatim import org.tasks.location.Geofencing @Module @InstallIn(SingletonComponent::class) class FlavorModule { - @Provides - fun getGeocoder(geocoder: GeocoderNominatim): Geocoder = geocoder - @Provides fun getGeofencing(geofencing: AndroidGeofencing): Geofencing = geofencing } \ No newline at end of file diff --git a/app/src/generic/res/values/keys.xml b/app/src/generic/res/values/keys.xml index e48055de9..3fd676e37 100644 --- a/app/src/generic/res/values/keys.xml +++ b/app/src/generic/res/values/keys.xml @@ -6,5 +6,6 @@ %s support@tasks.org + 1 1 \ No newline at end of file diff --git a/app/src/googleplay/java/org/tasks/injection/FlavorModule.kt b/app/src/googleplay/java/org/tasks/injection/FlavorModule.kt index 06976c881..bac8386d5 100644 --- a/app/src/googleplay/java/org/tasks/injection/FlavorModule.kt +++ b/app/src/googleplay/java/org/tasks/injection/FlavorModule.kt @@ -4,14 +4,12 @@ import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent -import org.tasks.location.* +import org.tasks.location.Geofencing +import org.tasks.location.GoogleGeofencing @Module @InstallIn(SingletonComponent::class) class FlavorModule { - @Provides - fun getGeocoder(geocoder: GeocoderMapbox): Geocoder = geocoder - @Provides fun getGeofencing(geofencing: GoogleGeofencing): Geofencing = geofencing } \ No newline at end of file diff --git a/app/src/googleplay/res/values/keys.xml b/app/src/googleplay/res/values/keys.xml index de9827a18..c05fcdd8b 100644 --- a/app/src/googleplay/res/values/keys.xml +++ b/app/src/googleplay/res/values/keys.xml @@ -6,5 +6,6 @@ purchases https://play.google.com/store/account/subscriptions?sku=%s&package=org.tasks play-support@tasks.org + 0 0 \ No newline at end of file diff --git a/app/src/main/java/org/tasks/injection/ApplicationModule.kt b/app/src/main/java/org/tasks/injection/ApplicationModule.kt index e48d589d0..e03eac6be 100644 --- a/app/src/main/java/org/tasks/injection/ApplicationModule.kt +++ b/app/src/main/java/org/tasks/injection/ApplicationModule.kt @@ -7,13 +7,21 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent +import org.tasks.DebugNetworkInterceptor +import org.tasks.R import org.tasks.analytics.Firebase import org.tasks.billing.BillingClient import org.tasks.billing.BillingClientImpl import org.tasks.billing.Inventory import org.tasks.data.* +import org.tasks.http.HttpClientFactory 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.preferences.Preferences import javax.inject.Singleton @Module @@ -94,4 +102,16 @@ class ApplicationModule { @Provides fun getBillingClient(@ApplicationContext context: Context, inventory: Inventory, firebase: Firebase): BillingClient = 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) + } } \ No newline at end of file diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index eaa8f187a..0801ef310 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -258,6 +258,18 @@ @drawable/ic_octocat + + @string/mapbox + @string/nominatim + @string/android + + + + 0 + 1 + 2 + + @string/google_maps @string/openstreetmap diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml index b8fc888aa..e01953eda 100644 --- a/app/src/main/res/values/keys.xml +++ b/app/src/main/res/values/keys.xml @@ -398,8 +398,10 @@ linkify_task_edit Mapbox Google Places + Nominatim Google Maps OpenStreetMap + Android place_provider_v2 preference_screen google_tasks_add_to_top @@ -447,6 +449,7 @@ sync_add_account legacy_etesync type + reverse_geocoder map_tiles map_theme diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9d805a9bf..74477aba2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -699,6 +699,7 @@ File %1$s contained %2$s.\n\n Tasks.org account Get Tasks.org account Not included with \'Name your price\' subscriptions + Reverse geocoder 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 4d7f21b2e..2e94e7203 100644 --- a/app/src/main/res/xml/preferences_location.xml +++ b/app/src/main/res/xml/preferences_location.xml @@ -28,6 +28,14 @@ android:key="@string/places" android:title="@string/places"> + +