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.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
}

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

@ -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
}

@ -6,5 +6,6 @@
<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="support_email">play-support@tasks.org</string>
<string name="default_reverse_geocoder">0</string> <!-- Mapbox -->
<string name="default_maps">0</string> <!-- Google Maps -->
</resources>

@ -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)
}
}

@ -258,6 +258,18 @@
<item>@drawable/ic_octocat</item>
</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">
<item>@string/google_maps</item>
<item>@string/openstreetmap</item>

@ -398,8 +398,10 @@
<string name="p_linkify_task_edit">linkify_task_edit</string>
<string name="mapbox">Mapbox</string>
<string name="map_search_google_places">Google Places</string>
<string name="nominatim">Nominatim</string>
<string name="google_maps">Google Maps</string>
<string name="openstreetmap">OpenStreetMap</string>
<string name="android">Android</string>
<string name="p_place_provider">place_provider_v2</string>
<string name="preference_screen">preference_screen</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="legacy_etesync">legacy_etesync</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_theme">map_theme</string>
</resources>

@ -699,6 +699,7 @@ File %1$s contained %2$s.\n\n
<string name="tasks_org_account">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="reverse_geocoder">Reverse geocoder</string>
<string name="maps">Maps</string>
<string name="map_tiles">Map tiles</string>
<string name="map_theme_use_app_theme">Use app theme</string>

@ -28,6 +28,14 @@
android:key="@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
android:defaultValue="0"
android:key="@string/p_place_provider"

Loading…
Cancel
Save