Skip to content

Commit 7c43b4e

Browse files
authored
Merge pull request #83 from tappeddev/android-updates-and-null-pointer-fixes
2 parents 98858a9 + dbec6ec commit 7c43b4e

File tree

8 files changed

+68
-54
lines changed

8 files changed

+68
-54
lines changed

arcgis_map_sdk_android/android/build.gradle

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ group 'dev.fluttercommunity.arcgis_map_sdk_android'
22
version '1.0-SNAPSHOT'
33

44
buildscript {
5-
ext.kotlin_version = '1.6.10'
5+
ext.kotlin_version = '1.9.0'
66
repositories {
77
google()
88
mavenCentral()
99
}
1010

1111
dependencies {
12-
classpath 'com.android.tools.build:gradle:7.1.3'
12+
classpath 'com.android.tools.build:gradle:8.3.2'
1313
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
1414
}
1515
}
@@ -29,8 +29,7 @@ apply plugin: 'com.android.library'
2929
apply plugin: 'kotlin-android'
3030

3131
android {
32-
compileSdkVersion 31
33-
32+
compileSdkVersion 34
3433

3534
// Conditional for compatibility with AGP <4.2.
3635
if (project.android.hasProperty("namespace")) {
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
#Thu Oct 24 09:10:14 CEST 2024
12
distributionBase=GRADLE_USER_HOME
23
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
45
zipStoreBase=GRADLE_USER_HOME
56
zipStorePath=wrapper/dists

arcgis_map_sdk_android/android/src/main/kotlin/dev/fluttercommunity/arcgis_map_sdk_android/ArcgisMapView.kt

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,20 +101,24 @@ internal class ArcgisMapView(
101101
mapView.graphicsOverlays.add(defaultGraphicsOverlay)
102102

103103
mapView.addMapScaleChangedListener {
104-
val zoomLevel = getZoomLevel(mapView)
104+
if(mapView.mapScale.isNaN()) return@addMapScaleChangedListener
105105

106+
val zoomLevel = getZoomLevel(mapView)
106107
zoomStreamHandler.addZoom(zoomLevel)
107108
}
109+
108110
mapView.addViewpointChangedListener {
109-
val center = mapView.visibleArea.extent.center
110-
val wgs84Center =
111-
GeometryEngine.project(center, SpatialReferences.getWgs84()) as Point
112-
centerPositionStreamHandler.add(
113-
LatLng(
114-
longitude = wgs84Center.x,
115-
latitude = wgs84Center.y
116-
)
117-
)
111+
// The viewpoint listener is executed async which means that the map
112+
// can be altered when this is called. If we reload the map or dispose the map
113+
// we don't have a visibleArea or an extent which would throw null pointer in this case.
114+
val center = mapView.visibleArea?.extent?.center ?: return@addViewpointChangedListener
115+
val wgs84Center = GeometryEngine.project(center, SpatialReferences.getWgs84()) as? Point
116+
117+
val latLng = wgs84Center?.let {
118+
LatLng(longitude = it.x,latitude = it.y)
119+
} ?: return@addViewpointChangedListener
120+
121+
centerPositionStreamHandler.add(latLng)
118122
}
119123

120124
val viewPoint = Viewpoint(

example/android/app/build.gradle

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,19 @@ apply plugin: 'kotlin-android'
2626
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
2727

2828
android {
29+
2930
compileSdkVersion flutter.compileSdkVersion
30-
ndkVersion flutter.ndkVersion
31+
ndkVersion = "25.1.8937393"
32+
33+
namespace 'com.example.example'
3134

3235
compileOptions {
33-
sourceCompatibility JavaVersion.VERSION_11
34-
targetCompatibility "11"
36+
sourceCompatibility JavaVersion.VERSION_17
37+
targetCompatibility JavaVersion.VERSION_17
3538
}
3639

3740
kotlinOptions {
38-
jvmTarget = '11'
41+
jvmTarget = '17'
3942
}
4043

4144
// We had the following error during the compile process:
@@ -59,7 +62,7 @@ android {
5962
// You can update the following values to match your application needs.
6063
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
6164
minSdkVersion 23
62-
targetSdkVersion 33
65+
targetSdkVersion 34
6366
versionCode flutterVersionCode.toInteger()
6467
versionName flutterVersionName
6568
}

example/android/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2-
package="com.example.example">
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
32

43
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
54
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

example/android/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
buildscript {
2-
ext.kotlin_version = '1.7.20'
2+
ext.kotlin_version = '1.9.0'
33
repositories {
44
google()
55
mavenCentral()
66
}
77

88
dependencies {
9-
classpath 'com.android.tools.build:gradle:7.1.2'
9+
classpath 'com.android.tools.build:gradle:8.3.2'
1010
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
1111
}
1212
}

example/android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
33
zipStoreBase=GRADLE_USER_HOME
44
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
5+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip

example/pubspec.lock

Lines changed: 37 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -87,18 +87,18 @@ packages:
8787
dependency: transitive
8888
description:
8989
name: crypto
90-
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
90+
sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
9191
url: "https://pub.dev"
9292
source: hosted
93-
version: "3.0.3"
93+
version: "3.0.6"
9494
cupertino_icons:
9595
dependency: "direct main"
9696
description:
9797
name: cupertino_icons
98-
sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d
98+
sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
9999
url: "https://pub.dev"
100100
source: hosted
101-
version: "1.0.6"
101+
version: "1.0.8"
102102
fake_async:
103103
dependency: transitive
104104
description:
@@ -107,6 +107,14 @@ packages:
107107
url: "https://pub.dev"
108108
source: hosted
109109
version: "1.3.1"
110+
fixnum:
111+
dependency: transitive
112+
description:
113+
name: fixnum
114+
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
115+
url: "https://pub.dev"
116+
source: hosted
117+
version: "1.1.1"
110118
flutter:
111119
dependency: "direct main"
112120
description: flutter
@@ -126,58 +134,58 @@ packages:
126134
dependency: "direct main"
127135
description:
128136
name: geolocator
129-
sha256: e946395fc608842bb2f6c914807e9183f86f3cb787f6b8f832753e5251036f02
137+
sha256: f4efb8d3c4cdcad2e226af9661eb1a0dd38c71a9494b22526f9da80ab79520e5
130138
url: "https://pub.dev"
131139
source: hosted
132-
version: "10.1.0"
140+
version: "10.1.1"
133141
geolocator_android:
134142
dependency: transitive
135143
description:
136144
name: geolocator_android
137-
sha256: "741579fa6c9e412984d2bdb2fbaa54e3c3f7587c60aeacfe6e058358a11f40f8"
145+
sha256: "7aefc530db47d90d0580b552df3242440a10fe60814496a979aa67aa98b1fd47"
138146
url: "https://pub.dev"
139147
source: hosted
140-
version: "4.4.0"
148+
version: "4.6.1"
141149
geolocator_apple:
142150
dependency: transitive
143151
description:
144152
name: geolocator_apple
145-
sha256: ab90ae811c42ec2f6021e01eca71df00dee6ff1e69d2c2dafd4daeb0b793f73d
153+
sha256: bc2aca02423ad429cb0556121f56e60360a2b7d694c8570301d06ea0c00732fd
146154
url: "https://pub.dev"
147155
source: hosted
148-
version: "2.3.2"
156+
version: "2.3.7"
149157
geolocator_platform_interface:
150158
dependency: transitive
151159
description:
152160
name: geolocator_platform_interface
153-
sha256: "6c8d494d6948757c56720b778af742f6973f31fca1f702a7539b8917e4a2468a"
161+
sha256: "386ce3d9cce47838355000070b1d0b13efb5bc430f8ecda7e9238c8409ace012"
154162
url: "https://pub.dev"
155163
source: hosted
156-
version: "4.2.0"
164+
version: "4.2.4"
157165
geolocator_web:
158166
dependency: transitive
159167
description:
160168
name: geolocator_web
161-
sha256: "59083f7e0871b78299918d92bf930a14377f711d2d1156c558cd5ebae6c20d58"
169+
sha256: "102e7da05b48ca6bf0a5bda0010f886b171d1a08059f01bfe02addd0175ebece"
162170
url: "https://pub.dev"
163171
source: hosted
164-
version: "2.2.0"
172+
version: "2.2.1"
165173
geolocator_windows:
166174
dependency: transitive
167175
description:
168176
name: geolocator_windows
169-
sha256: a92fae29779d5c6dc60e8411302f5221ade464968fe80a36d330e80a71f087af
177+
sha256: "53da08937d07c24b0d9952eb57a3b474e29aae2abf9dd717f7e1230995f13f0e"
170178
url: "https://pub.dev"
171179
source: hosted
172-
version: "0.2.2"
180+
version: "0.2.3"
173181
intl:
174182
dependency: transitive
175183
description:
176184
name: intl
177-
sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
185+
sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
178186
url: "https://pub.dev"
179187
source: hosted
180-
version: "0.18.1"
188+
version: "0.19.0"
181189
js:
182190
dependency: "direct main"
183191
description:
@@ -190,10 +198,10 @@ packages:
190198
dependency: transitive
191199
description:
192200
name: latlong2
193-
sha256: "18712164760cee655bc790122b0fd8f3d5b3c36da2cb7bf94b68a197fbb0811b"
201+
sha256: "98227922caf49e6056f91b6c56945ea1c7b166f28ffcd5fb8e72fc0b453cc8fe"
194202
url: "https://pub.dev"
195203
source: hosted
196-
version: "0.9.0"
204+
version: "0.9.1"
197205
leak_tracker:
198206
dependency: transitive
199207
description:
@@ -222,10 +230,10 @@ packages:
222230
dependency: "direct dev"
223231
description:
224232
name: lint
225-
sha256: "77b3777e8e9adca8e942da1e835882ae3248dfa00488a2ebbdbc1f1a4aa3f4a7"
233+
sha256: d758a5211fce7fd3f5e316f804daefecdc34c7e53559716125e6da7388ae8565
226234
url: "https://pub.dev"
227235
source: hosted
228-
version: "2.2.0"
236+
version: "2.3.0"
229237
matcher:
230238
dependency: transitive
231239
description:
@@ -262,10 +270,10 @@ packages:
262270
dependency: transitive
263271
description:
264272
name: plugin_platform_interface
265-
sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d
273+
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
266274
url: "https://pub.dev"
267275
source: hosted
268-
version: "2.1.6"
276+
version: "2.1.8"
269277
sky_engine:
270278
dependency: transitive
271279
description: flutter
@@ -331,18 +339,18 @@ packages:
331339
dependency: transitive
332340
description:
333341
name: typed_data
334-
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
342+
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
335343
url: "https://pub.dev"
336344
source: hosted
337-
version: "1.3.2"
345+
version: "1.4.0"
338346
uuid:
339347
dependency: transitive
340348
description:
341349
name: uuid
342-
sha256: df5a4d8f22ee4ccd77f8839ac7cb274ebc11ef9adcce8b92be14b797fe889921
350+
sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
343351
url: "https://pub.dev"
344352
source: hosted
345-
version: "4.2.1"
353+
version: "4.5.1"
346354
vector_math:
347355
dependency: transitive
348356
description:
@@ -360,5 +368,5 @@ packages:
360368
source: hosted
361369
version: "14.2.5"
362370
sdks:
363-
dart: ">=3.3.0 <4.0.0"
371+
dart: ">=3.5.0 <4.0.0"
364372
flutter: ">=3.18.0-18.0.pre.54"

0 commit comments

Comments
 (0)