From 9096c5a687a503cedb16f16b22a66000e05d4881 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 16 Feb 2021 09:41:25 -0600 Subject: [PATCH] Choose OpenStreetMaps or Google Maps --- app/build.gradle.kts | 3 +-- app/licenses.yml | 6 +++++ app/src/generic/res/values/keys.xml | 1 + .../org/tasks/injection/LocationModule.kt | 12 +++++++--- app/src/googleplay/res/values/keys.xml | 1 + app/src/main/assets/licenses.json | 14 +++++++++++ .../java/org/tasks/location/OsmMapFragment.kt | 0 .../fragments/LocationPreferences.kt | 1 + app/src/main/res/values/arrays.xml | 10 ++++++++ app/src/main/res/values/keys.xml | 3 +++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/preferences_location.xml | 14 +++++++++++ deps_fdroid.txt | 24 +++++++++---------- deps_googleplay.txt | 23 +++++++++--------- 14 files changed, 86 insertions(+), 28 deletions(-) rename app/src/{generic => main}/java/org/tasks/location/OsmMapFragment.kt (100%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 153895e6e..e6552d33e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -206,8 +206,7 @@ dependencies { implementation("com.etebase:client:2.3.2") implementation("com.github.QuadFlask:colorpicker:0.0.15") implementation("com.github.openid:AppAuth-Android:0.8.0") - - genericImplementation("org.osmdroid:osmdroid-android:6.1.10@aar") + implementation("org.osmdroid:osmdroid-android:6.1.10@aar") googleplayImplementation("com.google.firebase:firebase-crashlytics:${Versions.crashlytics}") googleplayImplementation("com.google.firebase:firebase-analytics:${Versions.analytics}") { diff --git a/app/licenses.yml b/app/licenses.yml index 3d64430d0..1eb7d54db 100644 --- a/app/licenses.yml +++ b/app/licenses.yml @@ -814,3 +814,9 @@ name: google-http-client-gson copyrightHolder: Google Inc. license: The Apache Software License, Version 2.0 +- artifact: org.osmdroid:osmdroid-android:+ + name: osmdroid-android + copyrightHolder: The OsmDroid Authors + license: The Apache Software License, Version 2.0 + licenseUrl: http://www.apache.org/licenses/LICENSE-2.0 + url: https://github.com/osmdroid/osmdroid diff --git a/app/src/generic/res/values/keys.xml b/app/src/generic/res/values/keys.xml index de721def8..e48055de9 100644 --- a/app/src/generic/res/values/keys.xml +++ b/app/src/generic/res/values/keys.xml @@ -6,4 +6,5 @@ %s support@tasks.org + 1 \ No newline at end of file diff --git a/app/src/googleplay/java/org/tasks/injection/LocationModule.kt b/app/src/googleplay/java/org/tasks/injection/LocationModule.kt index 8aec5746b..fbf009cf5 100644 --- a/app/src/googleplay/java/org/tasks/injection/LocationModule.kt +++ b/app/src/googleplay/java/org/tasks/injection/LocationModule.kt @@ -9,6 +9,7 @@ import dagger.hilt.android.components.ViewModelComponent import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.scopes.ActivityScoped import dagger.hilt.android.scopes.ViewModelScoped +import org.tasks.R import org.tasks.billing.Inventory import org.tasks.gtasks.PlayServices import org.tasks.location.* @@ -42,6 +43,11 @@ internal class LocationModule { @Provides @ActivityScoped - fun getMapFragment(@ApplicationContext context: Context): MapFragment = - GoogleMapFragment(context) -} \ No newline at end of file + fun getMapFragment( + preferences: Preferences, + @ApplicationContext context: Context + ): MapFragment = when (preferences.getIntegerFromString(R.string.p_map_tiles, 0)) { + 1 -> OsmMapFragment(context) + else -> GoogleMapFragment(context) + } +} diff --git a/app/src/googleplay/res/values/keys.xml b/app/src/googleplay/res/values/keys.xml index a1b4aebbb..de9827a18 100644 --- a/app/src/googleplay/res/values/keys.xml +++ b/app/src/googleplay/res/values/keys.xml @@ -6,4 +6,5 @@ purchases https://play.google.com/store/account/subscriptions?sku=%s&package=org.tasks play-support@tasks.org + 0 \ No newline at end of file diff --git a/app/src/main/assets/licenses.json b/app/src/main/assets/licenses.json index 99bdee7ad..72c706a8c 100644 --- a/app/src/main/assets/licenses.json +++ b/app/src/main/assets/licenses.json @@ -1949,6 +1949,20 @@ "license": "The Apache Software License, Version 2.0", "normalizedLicense": "apache2", "libraryName": "google-http-client-gson" + }, + { + "artifactId": { + "name": "osmdroid-android", + "group": "org.osmdroid", + "version": "+" + }, + "copyrightHolder": "The OsmDroid Authors", + "copyrightStatement": "Copyright © The OsmDroid Authors. All rights reserved.", + "license": "The Apache Software License, Version 2.0", + "licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0", + "normalizedLicense": "apache2", + "url": "https://github.com/osmdroid/osmdroid", + "libraryName": "osmdroid-android" } ] } \ No newline at end of file diff --git a/app/src/generic/java/org/tasks/location/OsmMapFragment.kt b/app/src/main/java/org/tasks/location/OsmMapFragment.kt similarity index 100% rename from app/src/generic/java/org/tasks/location/OsmMapFragment.kt rename to app/src/main/java/org/tasks/location/OsmMapFragment.kt diff --git a/app/src/main/java/org/tasks/preferences/fragments/LocationPreferences.kt b/app/src/main/java/org/tasks/preferences/fragments/LocationPreferences.kt index 42a46b438..38b83d36a 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/LocationPreferences.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/LocationPreferences.kt @@ -26,6 +26,7 @@ class LocationPreferences : InjectingPreferenceFragment() { .setOnPreferenceChangeListener(this::onPlaceSearchChanged) } else { disable( + R.string.p_map_tiles, R.string.p_place_provider, ) } diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index b2794520f..8daa56553 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -258,6 +258,16 @@ @drawable/ic_octocat + + @string/google_maps + @string/openstreetmap + + + + 0 + 1 + + @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 aa7abab16..6290d72f3 100644 --- a/app/src/main/res/values/keys.xml +++ b/app/src/main/res/values/keys.xml @@ -398,6 +398,8 @@ linkify_task_edit Mapbox Google Places + Google Maps + OpenStreetMap place_provider_v2 preference_screen google_tasks_add_to_top @@ -445,4 +447,5 @@ sync_add_account legacy_etesync type + map_tiles diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 67c074ffd..76ae11a52 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -698,4 +698,6 @@ File %1$s contained %2$s.\n\n Tasks.org account Get Tasks.org account Not included with \'Name your price\' subscriptions + Maps + Map tiles diff --git a/app/src/main/res/xml/preferences_location.xml b/app/src/main/res/xml/preferences_location.xml index 2ad070272..a73ae5bee 100644 --- a/app/src/main/res/xml/preferences_location.xml +++ b/app/src/main/res/xml/preferences_location.xml @@ -2,6 +2,20 @@ + + + + + + diff --git a/deps_fdroid.txt b/deps_fdroid.txt index 97eb14380..bbf86a1e3 100644 --- a/deps_fdroid.txt +++ b/deps_fdroid.txt @@ -15,7 +15,6 @@ ++--- androidx.databinding:databinding-adapters:4.1.2 +| +--- androidx.databinding:databinding-common:4.1.2 +| \--- androidx.databinding:databinding-runtime:4.1.2 (*) -++--- org.osmdroid:osmdroid-android:6.1.10 ++--- com.gitlab.bitfireAT:dav4jvm:2.1.1 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 -> 1.4.30 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.30 @@ -364,14 +363,15 @@ +| \--- com.squareup.okhttp3:logging-interceptor:3.12.1 (*) ++--- com.github.QuadFlask:colorpicker:0.0.15 +| \--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) -+\--- com.github.openid:AppAuth-Android:0.8.0 -+ +--- androidx.browser:browser:1.2.0 -+ | +--- androidx.core:core:1.1.0 -> 1.3.2 (*) -+ | +--- androidx.annotation:annotation:1.1.0 -+ | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava -+ | +--- androidx.collection:collection:1.1.0 (*) -+ | +--- androidx.concurrent:concurrent-futures:1.0.0 -+ | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava -+ | | \--- androidx.annotation:annotation:1.1.0 -+ | \--- androidx.interpolator:interpolator:1.0.0 (*) -+ \--- androidx.annotation:annotation:1.1.0 +++--- com.github.openid:AppAuth-Android:0.8.0 ++| +--- androidx.browser:browser:1.2.0 ++| | +--- androidx.core:core:1.1.0 -> 1.3.2 (*) ++| | +--- androidx.annotation:annotation:1.1.0 ++| | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava ++| | +--- androidx.collection:collection:1.1.0 (*) ++| | +--- androidx.concurrent:concurrent-futures:1.0.0 ++| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava ++| | | \--- androidx.annotation:annotation:1.1.0 ++| | \--- androidx.interpolator:interpolator:1.0.0 (*) ++| \--- androidx.annotation:annotation:1.1.0 ++\--- org.osmdroid:osmdroid-android:6.1.10 diff --git a/deps_googleplay.txt b/deps_googleplay.txt index dc0a0babc..44c113a3c 100644 --- a/deps_googleplay.txt +++ b/deps_googleplay.txt @@ -494,14 +494,15 @@ +| \--- com.squareup.okhttp3:logging-interceptor:3.12.1 (*) ++--- com.github.QuadFlask:colorpicker:0.0.15 +| \--- androidx.appcompat:appcompat:1.1.0 -> 1.2.0 (*) -+\--- com.github.openid:AppAuth-Android:0.8.0 -+ +--- androidx.browser:browser:1.2.0 -+ | +--- androidx.core:core:1.1.0 -> 1.3.2 (*) -+ | +--- androidx.annotation:annotation:1.1.0 -+ | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava -+ | +--- androidx.collection:collection:1.1.0 (*) -+ | +--- androidx.concurrent:concurrent-futures:1.0.0 -+ | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava -+ | | \--- androidx.annotation:annotation:1.1.0 -+ | \--- androidx.interpolator:interpolator:1.0.0 (*) -+ \--- androidx.annotation:annotation:1.1.0 +++--- com.github.openid:AppAuth-Android:0.8.0 ++| +--- androidx.browser:browser:1.2.0 ++| | +--- androidx.core:core:1.1.0 -> 1.3.2 (*) ++| | +--- androidx.annotation:annotation:1.1.0 ++| | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava ++| | +--- androidx.collection:collection:1.1.0 (*) ++| | +--- androidx.concurrent:concurrent-futures:1.0.0 ++| | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava ++| | | \--- androidx.annotation:annotation:1.1.0 ++| | \--- androidx.interpolator:interpolator:1.0.0 (*) ++| \--- androidx.annotation:annotation:1.1.0 ++\--- org.osmdroid:osmdroid-android:6.1.10