diff --git a/build.gradle b/build.gradle index e9c7dde8b..c4cb757eb 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,13 @@ buildscript { + ext.kotlin_version = '1.3.41' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:3.4.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -25,9 +27,9 @@ project.ext.preDexLibs = !project.hasProperty('disablePreDex') subprojects { project.plugins.whenPluginAdded { plugin -> if (rootProject.ext.has('preDexLibs')) { - if ("com.android.build.gradle.AppPlugin".equals(plugin.class.name)) { + if ("com.android.build.gradle.AppPlugin" == plugin.class.name) { project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs - } else if ("com.android.build.gradle.LibraryPlugin".equals(plugin.class.name)) { + } else if ("com.android.build.gradle.LibraryPlugin" == plugin.class.name) { project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs } } diff --git a/demo/AndroidManifest.xml b/demo/AndroidManifest.xml index 72cd50aff..8e7d5ea1d 100644 --- a/demo/AndroidManifest.xml +++ b/demo/AndroidManifest.xml @@ -1,62 +1,63 @@ + package="com.google.maps.android.utils.demo" + android:versionCode="1" + android:versionName="1.0"> - + android:name="com.google.maps.android.utils.permission.MAPS_RECEIVE" + android:protectionLevel="signature" /> - - - - + - - + + + + + + + + android:glEsVersion="0x00020000" + android:required="true" /> + android:allowBackup="false" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/LightThemeSelector"> + android:name="com.google.android.gms.version" + android:value="@integer/google_play_services_version" /> + android:name="com.google.android.geo.API_KEY" + android:value="AIzaSyDCa5WRSMk3CrNSf3y5xbyQTvp1_zwuTtE" /> + android:name=".MainActivity" + android:label="@string/app_name"> - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/demo/build.gradle b/demo/build.gradle index 8b9ebde3d..ddd13878d 100644 --- a/demo/build.gradle +++ b/demo/build.gradle @@ -1,10 +1,16 @@ apply plugin: 'com.android.application' dependencies { -// implementation project(':library') + implementation project(':library') + + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + // Or, fetch from Maven: - implementation 'com.google.maps.android:android-maps-utils:0.3+' - implementation 'com.google.android.gms:play-services-maps:16.1.0' +// implementation 'com.google.maps.android:android-maps-utils:0.5' + implementation 'com.google.android.gms:play-services-maps:17.0.0' + + implementation 'androidx.appcompat:appcompat:1.0.2' + implementation 'androidx.core:core-ktx:1.0.2' } buildscript { @@ -13,7 +19,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:3.4.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/demo/src/com/google/maps/android/utils/demo/BaseDemoActivity.java b/demo/src/com/google/maps/android/utils/demo/BaseDemoActivity.java index bde7ebe31..5c8718a65 100644 --- a/demo/src/com/google/maps/android/utils/demo/BaseDemoActivity.java +++ b/demo/src/com/google/maps/android/utils/demo/BaseDemoActivity.java @@ -17,7 +17,7 @@ package com.google.maps.android.utils.demo; import android.os.Bundle; -import android.support.v4.app.FragmentActivity; +import androidx.fragment.app.FragmentActivity; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; diff --git a/demo/src/com/google/maps/android/utils/demo/BigClusteringDemoActivity.java b/demo/src/com/google/maps/android/utils/demo/BigClusteringDemoActivity.java index def7d6806..7ce311cf4 100644 --- a/demo/src/com/google/maps/android/utils/demo/BigClusteringDemoActivity.java +++ b/demo/src/com/google/maps/android/utils/demo/BigClusteringDemoActivity.java @@ -16,11 +16,6 @@ package com.google.maps.android.utils.demo; -import java.io.InputStream; -import java.util.List; - -import org.json.JSONException; - import android.widget.Toast; import com.google.android.gms.maps.CameraUpdateFactory; @@ -28,6 +23,11 @@ import com.google.maps.android.clustering.ClusterManager; import com.google.maps.android.utils.demo.model.MyItem; +import org.json.JSONException; + +import java.io.InputStream; +import java.util.List; + public class BigClusteringDemoActivity extends BaseDemoActivity { private ClusterManager mClusterManager; @@ -35,7 +35,7 @@ public class BigClusteringDemoActivity extends BaseDemoActivity { protected void startDemo() { getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(51.503186, -0.126446), 10)); - mClusterManager = new ClusterManager(this, getMap()); + mClusterManager = new ClusterManager<>(this, getMap()); getMap().setOnCameraIdleListener(mClusterManager); try { diff --git a/demo/src/com/google/maps/android/utils/demo/ClusteringDemoActivity.java b/demo/src/com/google/maps/android/utils/demo/ClusteringDemoActivity.java index 61f46fa8a..70a55bd96 100644 --- a/demo/src/com/google/maps/android/utils/demo/ClusteringDemoActivity.java +++ b/demo/src/com/google/maps/android/utils/demo/ClusteringDemoActivity.java @@ -38,7 +38,7 @@ public class ClusteringDemoActivity extends BaseDemoActivity { protected void startDemo() { getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(51.503186, -0.126446), 10)); - mClusterManager = new ClusterManager(this, getMap()); + mClusterManager = new ClusterManager<>(this, getMap()); getMap().setOnCameraIdleListener(mClusterManager); try { diff --git a/demo/src/com/google/maps/android/utils/demo/DistanceDemoActivity.java b/demo/src/com/google/maps/android/utils/demo/DistanceDemoActivity.java index 5e5935db3..250eb83f1 100644 --- a/demo/src/com/google/maps/android/utils/demo/DistanceDemoActivity.java +++ b/demo/src/com/google/maps/android/utils/demo/DistanceDemoActivity.java @@ -43,7 +43,7 @@ protected int getLayoutId() { @Override protected void startDemo() { - mTextView = (TextView) findViewById(R.id.textView); + mTextView = findViewById(R.id.textView); getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(-33.8256, 151.2395), 10)); getMap().setOnMarkerDragListener(this); diff --git a/demo/src/com/google/maps/android/utils/demo/HeatmapsDemoActivity.java b/demo/src/com/google/maps/android/utils/demo/HeatmapsDemoActivity.java index c568c0ee8..acbb741fe 100644 --- a/demo/src/com/google/maps/android/utils/demo/HeatmapsDemoActivity.java +++ b/demo/src/com/google/maps/android/utils/demo/HeatmapsDemoActivity.java @@ -89,7 +89,7 @@ public class HeatmapsDemoActivity extends BaseDemoActivity { * Maps name of data set to data (list of LatLngs) * Also maps to the URL of the data set for attribution */ - private HashMap mLists = new HashMap(); + private HashMap mLists = new HashMap<>(); @Override protected int getLayoutId() { @@ -101,7 +101,7 @@ protected void startDemo() { getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(-25, 143), 4)); // Set up the spinner/dropdown list - Spinner spinner = (Spinner) findViewById(R.id.spinner); + Spinner spinner = findViewById(R.id.spinner); ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.heatmaps_datasets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); @@ -159,7 +159,7 @@ public void onItemSelected(AdapterView parent, View view, int pos, long id) { String dataset = parent.getItemAtPosition(pos).toString(); - TextView attribution = ((TextView) findViewById(R.id.attribution)); + TextView attribution = findViewById(R.id.attribution); // Check if need to instantiate (avoid setData etc twice) if (mProvider == null) { diff --git a/demo/src/com/google/maps/android/utils/demo/KmlDemoActivity.java b/demo/src/com/google/maps/android/utils/demo/KmlDemoActivity.java index abc45f5ff..058515bad 100644 --- a/demo/src/com/google/maps/android/utils/demo/KmlDemoActivity.java +++ b/demo/src/com/google/maps/android/utils/demo/KmlDemoActivity.java @@ -118,6 +118,8 @@ public void onFeatureClick(Feature feature) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); + } catch (NullPointerException e) { + e.printStackTrace(); } } } diff --git a/demo/src/com/google/maps/android/utils/demo/VisibleClusteringDemoActivity.java b/demo/src/com/google/maps/android/utils/demo/VisibleClusteringDemoActivity.java index 715a62361..eff69ec8b 100644 --- a/demo/src/com/google/maps/android/utils/demo/VisibleClusteringDemoActivity.java +++ b/demo/src/com/google/maps/android/utils/demo/VisibleClusteringDemoActivity.java @@ -40,7 +40,7 @@ protected void startDemo() { getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(51.503186, -0.126446), 10)); - mClusterManager = new ClusterManager(this, getMap()); + mClusterManager = new ClusterManager<>(this, getMap()); mClusterManager.setAlgorithm(new NonHierarchicalViewBasedAlgorithm( metrics.widthPixels, metrics.heightPixels)); diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 01186c38d..777a489b4 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip diff --git a/library/build.gradle b/library/build.gradle index ab2ea3fd9..af7a51544 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,10 +1,16 @@ apply plugin: 'com.android.library' dependencies { - androidTestImplementation 'junit:junit:4.12' + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'com.google.android.gms:play-services-maps:17.0.0' + implementation 'androidx.appcompat:appcompat:1.0.2' + implementation 'androidx.core:core-ktx:1.0.2' + testImplementation 'junit:junit:4.12' - androidTestImplementation 'com.android.support.test:runner:0.5' - implementation 'com.google.android.gms:play-services-maps:16.1.0' + androidTestImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test:runner:1.2.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' } android { diff --git a/library/src/com/google/maps/android/clustering/algo/GridBasedAlgorithm.java b/library/src/com/google/maps/android/clustering/algo/GridBasedAlgorithm.java index 5bf5c6b10..28257f995 100644 --- a/library/src/com/google/maps/android/clustering/algo/GridBasedAlgorithm.java +++ b/library/src/com/google/maps/android/clustering/algo/GridBasedAlgorithm.java @@ -16,13 +16,12 @@ package com.google.maps.android.clustering.algo; +import androidx.collection.LongSparseArray; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Set; -import android.support.v4.util.LongSparseArray; - import com.google.maps.android.clustering.Cluster; import com.google.maps.android.clustering.ClusterItem; import com.google.maps.android.geometry.Point; diff --git a/library/src/com/google/maps/android/clustering/algo/PreCachingAlgorithmDecorator.java b/library/src/com/google/maps/android/clustering/algo/PreCachingAlgorithmDecorator.java index 23d8edd92..ca6b18c1b 100644 --- a/library/src/com/google/maps/android/clustering/algo/PreCachingAlgorithmDecorator.java +++ b/library/src/com/google/maps/android/clustering/algo/PreCachingAlgorithmDecorator.java @@ -16,7 +16,7 @@ package com.google.maps.android.clustering.algo; -import android.support.v4.util.LruCache; +import androidx.collection.LruCache; import com.google.maps.android.clustering.Cluster; import com.google.maps.android.clustering.ClusterItem; diff --git a/library/src/com/google/maps/android/data/Renderer.java b/library/src/com/google/maps/android/data/Renderer.java index 7efde2f26..0e83fdd4c 100644 --- a/library/src/com/google/maps/android/data/Renderer.java +++ b/library/src/com/google/maps/android/data/Renderer.java @@ -18,12 +18,13 @@ import android.content.Context; import android.graphics.Bitmap; -import android.support.v4.util.LruCache; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.widget.TextView; +import androidx.collection.LruCache; + import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.GroundOverlay; diff --git a/library/src/com/google/maps/android/heatmaps/HeatmapTileProvider.java b/library/src/com/google/maps/android/heatmaps/HeatmapTileProvider.java index d89740915..c1c0d5fbd 100644 --- a/library/src/com/google/maps/android/heatmaps/HeatmapTileProvider.java +++ b/library/src/com/google/maps/android/heatmaps/HeatmapTileProvider.java @@ -18,7 +18,7 @@ import android.graphics.Bitmap; import android.graphics.Color; -import android.support.v4.util.LongSparseArray; +import androidx.collection.LongSparseArray; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Tile;