From 647a804a0384eec99c962485ae354f7417aa0c7d Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Wed, 29 Jul 2026 13:58:34 +0100 Subject: [PATCH 1/8] docs: Remove mention of androidxCoreVersion Because that comes in the Android template's default `variable.gradle`, and since we're not including those in the readme in general for plugins, it can be ommited. It was there before because it was androidCoreKTXVersion, but since with #171 it no longer is, then it's not needed there. --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index d162cf2c..fe54426e 100644 --- a/README.md +++ b/README.md @@ -65,8 +65,6 @@ This plugin will use the following project variables (defined in your app's `var - `googleMapsKtxVersion`: version of `com.google.maps.android:maps-ktx` (default: `5.2.1`) - `googleMapsUtilsKtxVersion`: version of `com.google.maps.android:maps-utils-ktx` (default: `5.2.1`) - `kotlinxCoroutinesVersion`: version of `org.jetbrains.kotlinx:kotlinx-coroutines-android` and `org.jetbrains.kotlinx:kotlinx-coroutines-core` (default: `1.10.2`) -- `androidxCoreVersion`: version of `androidx.core:core` (default: `1.19.0`) - ## Usage From 14378e880ae8fd29bce7800b7e840ae46b1478bd Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Wed, 29 Jul 2026 17:18:20 +0100 Subject: [PATCH 2/8] chore(android): maps dependency updates that don't require code changes --- README.md | 4 ++-- plugin/android/build.gradle | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fe54426e..94755cce 100644 --- a/README.md +++ b/README.md @@ -60,11 +60,11 @@ To use certain location features, the SDK requires the following permissions to This plugin will use the following project variables (defined in your app's `variables.gradle` file): -- `googleMapsPlayServicesVersion`: version of `com.google.android.gms:play-services-maps` (default: `19.2.0`) +- `googleMapsPlayServicesVersion`: version of `com.google.android.gms:play-services-maps` (default: `20.0.0`) - `googleMapsUtilsVersion`: version of `com.google.maps.android:android-maps-utils` (default: `3.19.1`) - `googleMapsKtxVersion`: version of `com.google.maps.android:maps-ktx` (default: `5.2.1`) - `googleMapsUtilsKtxVersion`: version of `com.google.maps.android:maps-utils-ktx` (default: `5.2.1`) -- `kotlinxCoroutinesVersion`: version of `org.jetbrains.kotlinx:kotlinx-coroutines-android` and `org.jetbrains.kotlinx:kotlinx-coroutines-core` (default: `1.10.2`) +- `kotlinxCoroutinesVersion`: version of `org.jetbrains.kotlinx:kotlinx-coroutines-android` and `org.jetbrains.kotlinx:kotlinx-coroutines-core` (default: `1.11.0`) ## Usage diff --git a/plugin/android/build.gradle b/plugin/android/build.gradle index f93bf927..dfb85e6e 100644 --- a/plugin/android/build.gradle +++ b/plugin/android/build.gradle @@ -5,7 +5,7 @@ ext { androidxJunitVersion = project.hasProperty('androidxJunitVersion') ? rootProject.ext.androidxJunitVersion : '1.3.0' androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.7.0' androidxCoreVersion = project.hasProperty('androidxCoreVersion') ? rootProject.ext.androidxCoreVersion : '1.19.0' - googleMapsPlayServicesVersion = project.hasProperty('googleMapsPlayServicesVersion') ? rootProject.ext.googleMapsPlayServicesVersion : '19.2.0' + googleMapsPlayServicesVersion = project.hasProperty('googleMapsPlayServicesVersion') ? rootProject.ext.googleMapsPlayServicesVersion : '20.0.0' googleMapsUtilsVersion = project.hasProperty('googleMapsUtilsVersion') ? rootProject.ext.googleMapsUtilsVersion : '3.19.1' googleMapsKtxVersion = project.hasProperty('googleMapsKtxVersion') ? rootProject.ext.googleMapsKtxVersion : '5.2.1' googleMapsUtilsKtxVersion = project.hasProperty('googleMapsUtilsKtxVersion') ? rootProject.ext.googleMapsUtilsKtxVersion : '5.2.1' From 7d96bfcb0302e0de03771cadf529aacfce7ba547 Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Wed, 29 Jul 2026 17:27:18 +0100 Subject: [PATCH 3/8] chore(android): fix several warnings in Android Studio --- .../plugins/googlemaps/CapacitorGoogleMap.kt | 58 ++++++++----------- .../googlemaps/CapacitorGoogleMapPolyline.kt | 11 ++-- .../googlemaps/CapacitorGoogleMapsBounds.kt | 33 ----------- .../googlemaps/CapacitorGoogleMapsCircle.kt | 6 +- .../googlemaps/CapacitorGoogleMapsPlugin.kt | 14 ++--- .../googlemaps/CapacitorGoogleMapsPoint.kt | 2 +- .../googlemaps/CapacitorGoogleMapsPolygon.kt | 6 +- .../CapacitorGoogleMapsStyleSpan.kt | 2 - 8 files changed, 43 insertions(+), 89 deletions(-) delete mode 100644 plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsBounds.kt diff --git a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMap.kt b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMap.kt index c0bc416b..4256b21c 100644 --- a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMap.kt +++ b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMap.kt @@ -20,6 +20,7 @@ import kotlinx.coroutines.* import kotlinx.coroutines.channels.Channel import java.io.InputStream import java.net.URL +import kotlin.time.Duration.Companion.milliseconds class CapacitorGoogleMap( val id: String, @@ -116,10 +117,10 @@ class CapacitorGoogleMap( if (config.mapTypeId != null) { when (config.mapTypeId!!) { - "hybrid" -> googleMap?.mapType = GoogleMap.MAP_TYPE_HYBRID - "roadmap" -> googleMap?.mapType = GoogleMap.MAP_TYPE_NORMAL - "satellite" -> googleMap?.mapType = GoogleMap.MAP_TYPE_SATELLITE - "terrain" -> googleMap?.mapType = GoogleMap.MAP_TYPE_TERRAIN + "hybrid" -> googleMap?.mapType = MAP_TYPE_HYBRID + "roadmap" -> googleMap?.mapType = MAP_TYPE_NORMAL + "satellite" -> googleMap?.mapType = MAP_TYPE_SATELLITE + "terrain" -> googleMap?.mapType = MAP_TYPE_TERRAIN } } @@ -152,7 +153,7 @@ class CapacitorGoogleMap( CoroutineScope(Dispatchers.Main).launch { val bridge = delegate.bridge val mapRect = getScaledRect(bridge, updatedBounds) - val mapView = this@CapacitorGoogleMap.mapView; + val mapView = this@CapacitorGoogleMap.mapView mapView.x = mapRect.left mapView.y = mapRect.top if (mapView.layoutParams.width != config.width || mapView.layoutParams.height != config.height) { @@ -176,16 +177,6 @@ class CapacitorGoogleMap( } } - fun bringToFront() { - CoroutineScope(Dispatchers.Main).launch { - val mapViewParent = - ((delegate.bridge.webView.parent) as ViewGroup).findViewWithTag( - this@CapacitorGoogleMap.id - ) - mapViewParent.bringToFront() - } - } - fun destroy() { runBlocking { val job = @@ -215,7 +206,7 @@ class CapacitorGoogleMap( CoroutineScope(Dispatchers.Main).launch { val tileProvider = object : UrlTileProvider(256, 256) { - override fun getTileUrl(x: Int, y: Int, zoom: Int): URL? { + override fun getTileUrl(x: Int, y: Int, zoom: Int): URL { return URL(tileOverlay.url .replace("{x}", "$x") .replace("{y}", "$y") @@ -223,7 +214,7 @@ class CapacitorGoogleMap( ) } } - var tileOverlayOptions = TileOverlayOptions().tileProvider(tileProvider) + val tileOverlayOptions = TileOverlayOptions().tileProvider(tileProvider) if (tileOverlay.zIndex != null) { tileOverlayOptions.zIndex(tileOverlay.zIndex!!) } @@ -369,7 +360,7 @@ class CapacitorGoogleMap( CoroutineScope(Dispatchers.Main).launch { newCircles.forEach { - var circleOptions: Deferred = CoroutineScope(Dispatchers.IO).async { + val circleOptions: Deferred = CoroutineScope(Dispatchers.IO).async { this@CapacitorGoogleMap.buildCircle(it) } @@ -667,7 +658,7 @@ class CapacitorGoogleMap( "Normal" } } - callback(mapType, null); + callback(mapType, null) } } catch (e: GoogleMapsError) { callback("", e) @@ -815,14 +806,14 @@ class CapacitorGoogleMap( polygonOptions.clickable(polygon.clickable) var shapeCounter = 0 - polygon.shapes.forEach { + polygon.shapes.forEach { pointList -> if (shapeCounter == 0) { // outer shape - it.forEach { + pointList.forEach { polygonOptions.add(it) } } else { - polygonOptions.addHole(it) + polygonOptions.addHole(pointList) } shapeCounter += 1 @@ -874,13 +865,12 @@ class CapacitorGoogleMap( markerOptions.icon(getResizedIcon(cachedBitmap!!, marker)) } else { try { - var stream: InputStream? = null - if (marker.iconUrl!!.startsWith("https:")) { - stream = URL(marker.iconUrl).openConnection().getInputStream() + val stream: InputStream? = if (marker.iconUrl!!.startsWith("https:")) { + URL(marker.iconUrl).openConnection().getInputStream() } else { - stream = this.delegate.context.assets.open("public/${marker.iconUrl}") + this.delegate.context.assets.open("public/${marker.iconUrl}") } - var bitmap = BitmapFactory.decodeStream(stream) + val bitmap = BitmapFactory.decodeStream(stream) this.markerIcons[marker.iconUrl!!] = bitmap markerOptions.icon(getResizedIcon(bitmap, marker)) } catch (e: Exception) { @@ -907,20 +897,20 @@ class CapacitorGoogleMap( } private fun getResizedIcon( - _bitmap: Bitmap, - marker: CapacitorGoogleMapMarker + bitmap: Bitmap, + marker: CapacitorGoogleMapMarker ): BitmapDescriptor { - var bitmap = _bitmap + var updatedBitmap = bitmap if (marker.iconSize != null) { - bitmap = + updatedBitmap = Bitmap.createScaledBitmap( - bitmap, + updatedBitmap, (marker.iconSize!!.width * this.config.devicePixelRatio).toInt(), (marker.iconSize!!.height * this.config.devicePixelRatio).toInt(), false ) } - return BitmapDescriptorFactory.fromBitmap(bitmap) + return BitmapDescriptorFactory.fromBitmap(updatedBitmap) } fun onStart() { @@ -1142,7 +1132,7 @@ class CapacitorGoogleMap( override fun onCameraMove() { debounceJob?.cancel() debounceJob = CoroutineScope(Dispatchers.Main).launch { - delay(100) + delay(100.milliseconds) clusterManager?.cluster() } } diff --git a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapPolyline.kt b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapPolyline.kt index ab893554..178fce33 100644 --- a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapPolyline.kt +++ b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapPolyline.kt @@ -1,14 +1,13 @@ package com.capacitorjs.plugins.googlemaps import android.graphics.Color -import androidx.core.graphics.toColor import com.google.android.gms.maps.model.LatLng import com.google.android.gms.maps.model.Polyline import org.json.JSONObject class CapacitorGoogleMapPolyline(fromJSONObject: JSONObject) { - var path: MutableList = mutableListOf() - var styleSpans: MutableList = mutableListOf() + var path: MutableList = mutableListOf() + var styleSpans: MutableList = mutableListOf() var strokeWidth: Float = 1.0f var strokeColor: Int = Color.BLUE var clickable: Boolean @@ -68,9 +67,9 @@ class CapacitorGoogleMapPolyline(fromJSONObject: JSONObject) { val colorInt = Color.parseColor(hex) val alpha = (opacity * 255.0).toInt() - val red = android.graphics.Color.red(colorInt) - val green = android.graphics.Color.green(colorInt) - val blue = android.graphics.Color.blue(colorInt) + val red = Color.red(colorInt) + val green = Color.green(colorInt) + val blue = Color.blue(colorInt) return Color.argb(alpha, red, green, blue) } diff --git a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsBounds.kt b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsBounds.kt deleted file mode 100644 index ab757e94..00000000 --- a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsBounds.kt +++ /dev/null @@ -1,33 +0,0 @@ -package com.capacitorjs.plugins.googlemaps - -import org.json.JSONObject - -class CapacitorGoogleMapsBounds(fromJSONObject: JSONObject) { - var width: Int = 0 - var height: Int = 0 - var x: Int = 0 - var y: Int = 0 - - init { - if(!fromJSONObject.has("width")) { - throw InvalidArgumentsError("GoogleMapConfig object is missing the required 'width' property") - } - - if(!fromJSONObject.has("height")) { - throw InvalidArgumentsError("GoogleMapConfig object is missing the required 'height' property") - } - - if(!fromJSONObject.has("x")) { - throw InvalidArgumentsError("GoogleMapConfig object is missing the required 'x' property") - } - - if(!fromJSONObject.has("y")) { - throw InvalidArgumentsError("GoogleMapConfig object is missing the required 'y' property") - } - - width = fromJSONObject.getInt("width") - height = fromJSONObject.getInt("height") - x = fromJSONObject.getInt("x") - y = fromJSONObject.getInt("y") - } -} \ No newline at end of file diff --git a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsCircle.kt b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsCircle.kt index 0463c3df..ca0ae31d 100644 --- a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsCircle.kt +++ b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsCircle.kt @@ -54,9 +54,9 @@ class CapacitorGoogleMapsCircle(fromJSONObject: JSONObject) { val colorInt = Color.parseColor(hex) val alpha = (opacity * 255.0).toInt() - val red = android.graphics.Color.red(colorInt) - val green = android.graphics.Color.green(colorInt) - val blue = android.graphics.Color.blue(colorInt) + val red = Color.red(colorInt) + val green = Color.green(colorInt) + val blue = Color.blue(colorInt) return Color.argb(alpha, red, green, blue) } diff --git a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPlugin.kt b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPlugin.kt index 06ecab29..fa2d698d 100644 --- a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPlugin.kt +++ b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPlugin.kt @@ -66,7 +66,7 @@ class CapacitorGoogleMapsPlugin : Plugin(), OnMapsSdkInitializedCallback { if (mapRect.contains(touchX.toInt(), touchY.toInt())) { if (event.action == MotionEvent.ACTION_DOWN) { if (cachedTouchEvents[id] == null) { - cachedTouchEvents[id] = mutableListOf() + cachedTouchEvents[id] = mutableListOf() } cachedTouchEvents[id]?.clear() @@ -129,7 +129,7 @@ class CapacitorGoogleMapsPlugin : Plugin(), OnMapsSdkInitializedCallback { try { val id = call.getString("id") - if (null == id || id.isEmpty()) { + if (id.isNullOrEmpty()) { throw InvalidMapIdError() } @@ -167,7 +167,7 @@ class CapacitorGoogleMapsPlugin : Plugin(), OnMapsSdkInitializedCallback { try { val id = call.getString("id") - if (null == id || id.isEmpty()) { + if (id.isNullOrEmpty()) { throw InvalidMapIdError() } @@ -546,13 +546,13 @@ class CapacitorGoogleMapsPlugin : Plugin(), OnMapsSdkInitializedCallback { val map = maps[id] map ?: throw MapNotFoundError() - map.enableClustering(minClusterSize, { err -> + map.enableClustering(minClusterSize) { err -> if (err != null) { throw err } call.resolve() - }) + } } catch (e: GoogleMapsError) { handleError(call, e) } catch (e: Exception) { @@ -721,7 +721,7 @@ class CapacitorGoogleMapsPlugin : Plugin(), OnMapsSdkInitializedCallback { val map = maps[id] map ?: throw MapNotFoundError() - map.getMapType() { type, err -> + map.getMapType { type, err -> if (err != null) { throw err @@ -934,7 +934,7 @@ class CapacitorGoogleMapsPlugin : Plugin(), OnMapsSdkInitializedCallback { val events = cachedTouchEvents[id] if (events != null) { - while(events.size > 0) { + while(events.isNotEmpty()) { val event = events.first() if (focus) { map.dispatchTouchEvent(event) diff --git a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPoint.kt b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPoint.kt index c3708719..564f90f5 100644 --- a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPoint.kt +++ b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPoint.kt @@ -17,7 +17,7 @@ class CapacitorGoogleMapsPoint() { } constructor(x: Float, y: Float) : this() { - this.x = x; + this.x = x this.y = y } } \ No newline at end of file diff --git a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPolygon.kt b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPolygon.kt index fba296dd..5e517808 100644 --- a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPolygon.kt +++ b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsPolygon.kt @@ -71,9 +71,9 @@ class CapacitorGoogleMapsPolygon(fromJSONObject: JSONObject) { val colorInt = Color.parseColor(hex) val alpha = (opacity * 255.0).toInt() - val red = android.graphics.Color.red(colorInt) - val green = android.graphics.Color.green(colorInt) - val blue = android.graphics.Color.blue(colorInt) + val red = Color.red(colorInt) + val green = Color.green(colorInt) + val blue = Color.blue(colorInt) return Color.argb(alpha, red, green, blue) } diff --git a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsStyleSpan.kt b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsStyleSpan.kt index 68ba0f49..a4b2955d 100644 --- a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsStyleSpan.kt +++ b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapsStyleSpan.kt @@ -1,5 +1,3 @@ package com.capacitorjs.plugins.googlemaps -import android.graphics.Color - data class CapacitorGoogleMapsStyleSpan(val color: Int, val segments: Double?) From 160a79e2121596a6594dde1fdc0331b39a509ee1 Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Wed, 29 Jul 2026 17:53:24 +0100 Subject: [PATCH 4/8] chore(android): update googleMapsUtils and fix breaking changes --- README.md | 2 +- plugin/android/build.gradle | 2 +- .../CapacitorClusterManagerRenderer.kt | 6 ++--- .../plugins/googlemaps/CapacitorGoogleMap.kt | 14 ++++++----- .../googlemaps/CapacitorGoogleMapMarker.kt | 25 ++++--------------- 5 files changed, 18 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 94755cce..cc566720 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ To use certain location features, the SDK requires the following permissions to This plugin will use the following project variables (defined in your app's `variables.gradle` file): - `googleMapsPlayServicesVersion`: version of `com.google.android.gms:play-services-maps` (default: `20.0.0`) -- `googleMapsUtilsVersion`: version of `com.google.maps.android:android-maps-utils` (default: `3.19.1`) +- `googleMapsUtilsVersion`: version of `com.google.maps.android:android-maps-utils` (default: `5.0.0`) - `googleMapsKtxVersion`: version of `com.google.maps.android:maps-ktx` (default: `5.2.1`) - `googleMapsUtilsKtxVersion`: version of `com.google.maps.android:maps-utils-ktx` (default: `5.2.1`) - `kotlinxCoroutinesVersion`: version of `org.jetbrains.kotlinx:kotlinx-coroutines-android` and `org.jetbrains.kotlinx:kotlinx-coroutines-core` (default: `1.11.0`) diff --git a/plugin/android/build.gradle b/plugin/android/build.gradle index dfb85e6e..1c64bf7d 100644 --- a/plugin/android/build.gradle +++ b/plugin/android/build.gradle @@ -6,7 +6,7 @@ ext { androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.7.0' androidxCoreVersion = project.hasProperty('androidxCoreVersion') ? rootProject.ext.androidxCoreVersion : '1.19.0' googleMapsPlayServicesVersion = project.hasProperty('googleMapsPlayServicesVersion') ? rootProject.ext.googleMapsPlayServicesVersion : '20.0.0' - googleMapsUtilsVersion = project.hasProperty('googleMapsUtilsVersion') ? rootProject.ext.googleMapsUtilsVersion : '3.19.1' + googleMapsUtilsVersion = project.hasProperty('googleMapsUtilsVersion') ? rootProject.ext.googleMapsUtilsVersion : '5.0.0' googleMapsKtxVersion = project.hasProperty('googleMapsKtxVersion') ? rootProject.ext.googleMapsKtxVersion : '5.2.1' googleMapsUtilsKtxVersion = project.hasProperty('googleMapsUtilsKtxVersion') ? rootProject.ext.googleMapsUtilsKtxVersion : '5.2.1' kotlinxCoroutinesVersion = project.hasProperty('kotlinxCoroutinesVersion') ? rootProject.ext.kotlinxCoroutinesVersion : '1.10.2' diff --git a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorClusterManagerRenderer.kt b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorClusterManagerRenderer.kt index 990e83b4..2e53c289 100644 --- a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorClusterManagerRenderer.kt +++ b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorClusterManagerRenderer.kt @@ -8,14 +8,14 @@ import com.google.maps.android.clustering.view.DefaultClusterRenderer class CapacitorClusterManagerRenderer( context: Context, - map: GoogleMap?, - clusterManager: ClusterManager?, + map: GoogleMap, + clusterManager: ClusterManager, minClusterSize: Int? ) : DefaultClusterRenderer(context, map, clusterManager) { init { if(minClusterSize != null && minClusterSize > 0) { - super.setMinClusterSize(minClusterSize) + super.minClusterSize = minClusterSize } } diff --git a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMap.kt b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMap.kt index 4256b21c..893394a7 100644 --- a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMap.kt +++ b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMap.kt @@ -407,10 +407,12 @@ class CapacitorGoogleMap( } private fun setClusterManagerRenderer(minClusterSize: Int?) { - clusterManager?.renderer = CapacitorClusterManagerRenderer( + val map = googleMap ?: return + val manager = clusterManager ?: return + manager.renderer = CapacitorClusterManagerRenderer( delegate.bridge.context, - googleMap, - clusterManager, + map, + manager, minClusterSize ) } @@ -418,7 +420,7 @@ class CapacitorGoogleMap( @SuppressLint("PotentialBehaviorOverride") fun enableClustering(minClusterSize: Int?, callback: (error: GoogleMapsError?) -> Unit) { try { - googleMap ?: throw GoogleMapNotAvailable() + val map = googleMap ?: throw GoogleMapNotAvailable() CoroutineScope(Dispatchers.Main).launch { if (clusterManager != null) { @@ -428,7 +430,7 @@ class CapacitorGoogleMap( } val bridge = delegate.bridge - clusterManager = ClusterManager(bridge.context, googleMap) + clusterManager = ClusterManager(bridge.context, map) setClusterManagerRenderer(minClusterSize) setClusterListeners() @@ -847,7 +849,7 @@ class CapacitorGoogleMap( private fun buildMarker(marker: CapacitorGoogleMapMarker): MarkerOptions { val markerOptions = MarkerOptions() - markerOptions.position(marker.coordinate) + markerOptions.position(marker.position) markerOptions.title(marker.title) markerOptions.snippet(marker.snippet) markerOptions.alpha(marker.opacity) diff --git a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapMarker.kt b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapMarker.kt index d99781ef..21e43dee 100644 --- a/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapMarker.kt +++ b/plugin/android/src/main/java/com/capacitorjs/plugins/googlemaps/CapacitorGoogleMapMarker.kt @@ -9,11 +9,12 @@ import org.json.JSONObject class CapacitorGoogleMapMarker(fromJSONObject: JSONObject): ClusterItem { - var coordinate: LatLng = LatLng(0.0, 0.0) + private var coordinate: LatLng = LatLng(0.0, 0.0) var opacity: Float = 1.0f - private var title: String - private var snippet: String - private var zIndex: Float = 0.0f + override var title: String + override var snippet: String + override var zIndex: Float = 0.0f + override val position: LatLng get() = LatLng(coordinate.latitude, coordinate.longitude) var isFlat: Boolean = false var iconUrl: String? = null var iconSize: Size? = null @@ -66,22 +67,6 @@ class CapacitorGoogleMapMarker(fromJSONObject: JSONObject): ClusterItem { zIndex = fromJSONObject.optLong("zIndex").toFloat() } - override fun getPosition(): LatLng { - return LatLng(coordinate.latitude, coordinate.longitude) - } - - override fun getTitle(): String { - return title - } - - override fun getSnippet(): String { - return snippet - } - - override fun getZIndex(): Float { - return zIndex - } - private fun buildIconAnchorPoint(iconAnchor: CapacitorGoogleMapsPoint): CapacitorGoogleMapsPoint? { iconSize ?: return null From bf48da90ad575244e54ecd1defe025be4e6fcdc6 Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Thu, 30 Jul 2026 10:46:40 +0100 Subject: [PATCH 5/8] chore(android): update google maps ktx to 6.0.1 Couldn't update to latest (6.2.0) because kotlin version required (2.4) is higher than what AGP 9 ships (kotlin 2.2) --- README.md | 4 ++-- plugin/android/build.gradle | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index cc566720..0320e954 100644 --- a/README.md +++ b/README.md @@ -62,8 +62,8 @@ This plugin will use the following project variables (defined in your app's `var - `googleMapsPlayServicesVersion`: version of `com.google.android.gms:play-services-maps` (default: `20.0.0`) - `googleMapsUtilsVersion`: version of `com.google.maps.android:android-maps-utils` (default: `5.0.0`) -- `googleMapsKtxVersion`: version of `com.google.maps.android:maps-ktx` (default: `5.2.1`) -- `googleMapsUtilsKtxVersion`: version of `com.google.maps.android:maps-utils-ktx` (default: `5.2.1`) +- `googleMapsKtxVersion`: version of `com.google.maps.android:maps-ktx` (default: `6.0.1`) +- `googleMapsUtilsKtxVersion`: version of `com.google.maps.android:maps-utils-ktx` (default: `6.0.1`) - `kotlinxCoroutinesVersion`: version of `org.jetbrains.kotlinx:kotlinx-coroutines-android` and `org.jetbrains.kotlinx:kotlinx-coroutines-core` (default: `1.11.0`) ## Usage diff --git a/plugin/android/build.gradle b/plugin/android/build.gradle index 1c64bf7d..72d48ad2 100644 --- a/plugin/android/build.gradle +++ b/plugin/android/build.gradle @@ -7,8 +7,8 @@ ext { androidxCoreVersion = project.hasProperty('androidxCoreVersion') ? rootProject.ext.androidxCoreVersion : '1.19.0' googleMapsPlayServicesVersion = project.hasProperty('googleMapsPlayServicesVersion') ? rootProject.ext.googleMapsPlayServicesVersion : '20.0.0' googleMapsUtilsVersion = project.hasProperty('googleMapsUtilsVersion') ? rootProject.ext.googleMapsUtilsVersion : '5.0.0' - googleMapsKtxVersion = project.hasProperty('googleMapsKtxVersion') ? rootProject.ext.googleMapsKtxVersion : '5.2.1' - googleMapsUtilsKtxVersion = project.hasProperty('googleMapsUtilsKtxVersion') ? rootProject.ext.googleMapsUtilsKtxVersion : '5.2.1' + googleMapsKtxVersion = project.hasProperty('googleMapsKtxVersion') ? rootProject.ext.googleMapsKtxVersion : '6.0.1' + googleMapsUtilsKtxVersion = project.hasProperty('googleMapsUtilsKtxVersion') ? rootProject.ext.googleMapsUtilsKtxVersion : '6.0.1' kotlinxCoroutinesVersion = project.hasProperty('kotlinxCoroutinesVersion') ? rootProject.ext.kotlinxCoroutinesVersion : '1.10.2' } From 4fd1d5bfc1d9949f2919e53437f524c9ee00a8d5 Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Thu, 30 Jul 2026 10:52:08 +0100 Subject: [PATCH 6/8] chore: re-add kotlin coroutines 1.11 --- plugin/android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/android/build.gradle b/plugin/android/build.gradle index 72d48ad2..c37c3cd3 100644 --- a/plugin/android/build.gradle +++ b/plugin/android/build.gradle @@ -9,7 +9,7 @@ ext { googleMapsUtilsVersion = project.hasProperty('googleMapsUtilsVersion') ? rootProject.ext.googleMapsUtilsVersion : '5.0.0' googleMapsKtxVersion = project.hasProperty('googleMapsKtxVersion') ? rootProject.ext.googleMapsKtxVersion : '6.0.1' googleMapsUtilsKtxVersion = project.hasProperty('googleMapsUtilsKtxVersion') ? rootProject.ext.googleMapsUtilsKtxVersion : '6.0.1' - kotlinxCoroutinesVersion = project.hasProperty('kotlinxCoroutinesVersion') ? rootProject.ext.kotlinxCoroutinesVersion : '1.10.2' + kotlinxCoroutinesVersion = project.hasProperty('kotlinxCoroutinesVersion') ? rootProject.ext.kotlinxCoroutinesVersion : '1.11.0' } buildscript { From d9cf36ea3265a23c93e33efb2eab940b964c0b28 Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Mon, 3 Aug 2026 17:23:30 +0100 Subject: [PATCH 7/8] chore: run build --- plugin/README.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/plugin/README.md b/plugin/README.md index d162cf2c..0320e954 100644 --- a/plugin/README.md +++ b/plugin/README.md @@ -60,13 +60,11 @@ To use certain location features, the SDK requires the following permissions to This plugin will use the following project variables (defined in your app's `variables.gradle` file): -- `googleMapsPlayServicesVersion`: version of `com.google.android.gms:play-services-maps` (default: `19.2.0`) -- `googleMapsUtilsVersion`: version of `com.google.maps.android:android-maps-utils` (default: `3.19.1`) -- `googleMapsKtxVersion`: version of `com.google.maps.android:maps-ktx` (default: `5.2.1`) -- `googleMapsUtilsKtxVersion`: version of `com.google.maps.android:maps-utils-ktx` (default: `5.2.1`) -- `kotlinxCoroutinesVersion`: version of `org.jetbrains.kotlinx:kotlinx-coroutines-android` and `org.jetbrains.kotlinx:kotlinx-coroutines-core` (default: `1.10.2`) -- `androidxCoreVersion`: version of `androidx.core:core` (default: `1.19.0`) - +- `googleMapsPlayServicesVersion`: version of `com.google.android.gms:play-services-maps` (default: `20.0.0`) +- `googleMapsUtilsVersion`: version of `com.google.maps.android:android-maps-utils` (default: `5.0.0`) +- `googleMapsKtxVersion`: version of `com.google.maps.android:maps-ktx` (default: `6.0.1`) +- `googleMapsUtilsKtxVersion`: version of `com.google.maps.android:maps-utils-ktx` (default: `6.0.1`) +- `kotlinxCoroutinesVersion`: version of `org.jetbrains.kotlinx:kotlinx-coroutines-android` and `org.jetbrains.kotlinx:kotlinx-coroutines-core` (default: `1.11.0`) ## Usage From 07204ae72c0354a0fdb12e47d573f61635f8d5a3 Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Tue, 4 Aug 2026 14:35:40 +0100 Subject: [PATCH 8/8] chore: update dependencies Particularly keyboard and haptics for example apps. --- .../ios/App/CapApp-SPM/Package.swift | 4 +- example-app/android/capacitor.settings.gradle | 4 +- example-app/ios/App/Podfile | 4 +- plugin/package.json | 2 +- pnpm-lock.yaml | 133 ++++++++++++------ 5 files changed, 97 insertions(+), 50 deletions(-) diff --git a/example-app-spm/ios/App/CapApp-SPM/Package.swift b/example-app-spm/ios/App/CapApp-SPM/Package.swift index 6c376c0e..ec4f3e9e 100644 --- a/example-app-spm/ios/App/CapApp-SPM/Package.swift +++ b/example-app-spm/ios/App/CapApp-SPM/Package.swift @@ -14,8 +14,8 @@ let package = Package( .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", exact: "9.0.0-alpha.5"), .package(name: "CapacitorApp", path: "../../../../node_modules/.pnpm/@capacitor+app@9.0.0-alpha.1_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/app"), .package(name: "CapacitorGoogleMaps", path: "../../../../plugin"), - .package(name: "CapacitorHaptics", path: "../../../../node_modules/.pnpm/@capacitor+haptics@8.0.0-next.3_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/haptics"), - .package(name: "CapacitorKeyboard", path: "../../../../node_modules/.pnpm/@capacitor+keyboard@8.0.0-next.4_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/keyboard"), + .package(name: "CapacitorHaptics", path: "../../../../node_modules/.pnpm/@capacitor+haptics@9.0.0-next.1_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/haptics"), + .package(name: "CapacitorKeyboard", path: "../../../../node_modules/.pnpm/@capacitor+keyboard@9.0.0-next.1_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/keyboard"), .package(name: "CapacitorStatusBar", path: "../../../../node_modules/.pnpm/@capacitor+status-bar@9.0.0-alpha.1_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/status-bar") ], targets: [ diff --git a/example-app/android/capacitor.settings.gradle b/example-app/android/capacitor.settings.gradle index 8d21c63f..482f7a9c 100644 --- a/example-app/android/capacitor.settings.gradle +++ b/example-app/android/capacitor.settings.gradle @@ -10,10 +10,10 @@ include ':capacitor-google-maps' project(':capacitor-google-maps').projectDir = new File('../../plugin/android') include ':capacitor-haptics' -project(':capacitor-haptics').projectDir = new File('../../node_modules/.pnpm/@capacitor+haptics@8.0.0-next.3_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/haptics/android') +project(':capacitor-haptics').projectDir = new File('../../node_modules/.pnpm/@capacitor+haptics@9.0.0-next.1_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/haptics/android') include ':capacitor-keyboard' -project(':capacitor-keyboard').projectDir = new File('../../node_modules/.pnpm/@capacitor+keyboard@8.0.0-next.4_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/keyboard/android') +project(':capacitor-keyboard').projectDir = new File('../../node_modules/.pnpm/@capacitor+keyboard@9.0.0-next.1_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/keyboard/android') include ':capacitor-status-bar' project(':capacitor-status-bar').projectDir = new File('../../node_modules/.pnpm/@capacitor+status-bar@9.0.0-alpha.1_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/status-bar/android') diff --git a/example-app/ios/App/Podfile b/example-app/ios/App/Podfile index 4f877b27..2e5386fa 100644 --- a/example-app/ios/App/Podfile +++ b/example-app/ios/App/Podfile @@ -12,8 +12,8 @@ def capacitor_pods pod 'Capacitor', :path => '../../../node_modules/.pnpm/@capacitor+ios@9.0.0-alpha.5_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/ios' pod 'CapacitorApp', :path => '../../../node_modules/.pnpm/@capacitor+app@9.0.0-alpha.1_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/app' pod 'CapacitorGoogleMaps', :path => '../../../plugin' - pod 'CapacitorHaptics', :path => '../../../node_modules/.pnpm/@capacitor+haptics@8.0.0-next.3_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/haptics' - pod 'CapacitorKeyboard', :path => '../../../node_modules/.pnpm/@capacitor+keyboard@8.0.0-next.4_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/keyboard' + pod 'CapacitorHaptics', :path => '../../../node_modules/.pnpm/@capacitor+haptics@9.0.0-next.1_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/haptics' + pod 'CapacitorKeyboard', :path => '../../../node_modules/.pnpm/@capacitor+keyboard@9.0.0-next.1_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/keyboard' pod 'CapacitorStatusBar', :path => '../../../node_modules/.pnpm/@capacitor+status-bar@9.0.0-alpha.1_@capacitor+core@9.0.0-alpha.5/node_modules/@capacitor/status-bar' end diff --git a/plugin/package.json b/plugin/package.json index b42ac888..3d7c6609 100644 --- a/plugin/package.json +++ b/plugin/package.json @@ -48,7 +48,7 @@ "prettier": "prettier \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java", "swiftlint": "node-swiftlint", "docgen": "node ../scripts/docgen_updates.js", - "build": "pnpm run clean && pnpm run docgen && tsc && rollup -c rollup.config.mjs && pnpm run downleveldts", + "build": "pnpm run clean && pnpm run docgen && tsc && rollup -c rollup.config.mjs", "clean": "rimraf ./dist", "watch": "tsc --watch", "prepublishOnly": "pnpm run build", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b4bf7f9..49a9e20f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,13 +40,13 @@ importers: version: link:../plugin '@capacitor/haptics': specifier: next - version: 8.0.0-next.3(@capacitor/core@9.0.0-alpha.5) + version: 9.0.0-next.1(@capacitor/core@9.0.0-alpha.5) '@capacitor/ios': specifier: next version: 9.0.0-alpha.5(@capacitor/core@9.0.0-alpha.5) '@capacitor/keyboard': specifier: next - version: 8.0.0-next.4(@capacitor/core@9.0.0-alpha.5) + version: 9.0.0-next.1(@capacitor/core@9.0.0-alpha.5) '@capacitor/status-bar': specifier: next version: 9.0.0-alpha.1(@capacitor/core@9.0.0-alpha.5) @@ -167,13 +167,13 @@ importers: version: link:../plugin '@capacitor/haptics': specifier: next - version: 8.0.0-next.3(@capacitor/core@9.0.0-alpha.5) + version: 9.0.0-next.1(@capacitor/core@9.0.0-alpha.5) '@capacitor/ios': specifier: next version: 9.0.0-alpha.5(@capacitor/core@9.0.0-alpha.5) '@capacitor/keyboard': specifier: next - version: 8.0.0-next.4(@capacitor/core@9.0.0-alpha.5) + version: 9.0.0-next.1(@capacitor/core@9.0.0-alpha.5) '@capacitor/status-bar': specifier: next version: 9.0.0-alpha.1(@capacitor/core@9.0.0-alpha.5) @@ -1096,20 +1096,20 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - '@capacitor/haptics@8.0.0-next.3': - resolution: {integrity: sha512-chE6SUEegH9n7sGOyGH3XJAKfTi+ot3Z+TzecO/kXT0DJoZ4rtGXnpm9uElgqS50HYxFbZ2W/yCceA5jdWHOUg==} + '@capacitor/haptics@9.0.0-next.1': + resolution: {integrity: sha512-lBY9wPXmb9SFoocKzb31WOmqe8BXrfWwj15xUbdxZo8KBRfngBpDKUNxB6abzdrHQfBrMNPpZ+uWa/og87oV7A==} peerDependencies: - '@capacitor/core': next + '@capacitor/core': '>=9.0.0-alpha.0' '@capacitor/ios@9.0.0-alpha.5': resolution: {integrity: sha512-h2MvfGjBxp/CEqzb4YdlWiUjv+MuEg2PDwSYPlyBpWno1B/1jT43emR3VuyjiI2VRo12QSeUrxyKC4OyTgy2iw==} peerDependencies: '@capacitor/core': ^9.0.0-alpha.5 - '@capacitor/keyboard@8.0.0-next.4': - resolution: {integrity: sha512-JpGxILIah+FJcIyD3IkRhUEyHFIUXWXCDTK3NPNLv5r4MFK8pMtB6NrMMfRlM/DsNdrAzd0SaB+CG0/H0PSpVw==} + '@capacitor/keyboard@9.0.0-next.1': + resolution: {integrity: sha512-6yLbKtYRbB2gzOPYAiN4ZsSZto6eFAMZprWkwWqD9ID7M1Hb+YpXWY/DnFAUaaK/AWNIJFU7PqvmS2glm66rgQ==} peerDependencies: - '@capacitor/core': next + '@capacitor/core': '>=9.0.0-alpha.0' '@capacitor/status-bar@9.0.0-alpha.1': resolution: {integrity: sha512-iFjz/wrviolCqdfmnABaEn+ufUApWXRQYr71pF6WIksTQeM9SsCZfQapc6+leDosDa33ygPDyKFYsjgx55brXg==} @@ -1744,25 +1744,21 @@ packages: resolution: {integrity: sha512-NmPeCexWIZHW9RM3lDdFENN9C3WtlQ5L4RSNFESIjreS921rgePhulsszYdGnHdcnKPYlBBJnX/NxVsfioBbnQ==} cpu: [arm64] os: [linux] - libc: [glibc] '@nx/nx-linux-arm64-musl@22.3.3': resolution: {integrity: sha512-K02U88Q0dpvCfmSXXvY7KbYQSa1m+mkYeqDBRHp11yHk1GoIqaHp8oEWda7FV4gsriNExPSS5tX1/QGVoLZrCw==} cpu: [arm64] os: [linux] - libc: [musl] '@nx/nx-linux-x64-gnu@22.3.3': resolution: {integrity: sha512-04TEbvgwRaB9ifr39YwJmWh3RuXb4Ry4m84SOJyjNXAfPrepcWgfIQn1VL2ul1Ybq+P023dLO9ME8uqFh6j1YQ==} cpu: [x64] os: [linux] - libc: [glibc] '@nx/nx-linux-x64-musl@22.3.3': resolution: {integrity: sha512-uxBXx5q+S5OGatbYDxnamsKXRKlYn+Eq1nrCAHaf8rIfRoHlDiRV2PqtWuF+O2pxR5FWKpvr+/sZtt9rAf7KMw==} cpu: [x64] os: [linux] - libc: [musl] '@nx/nx-win32-arm64-msvc@22.3.3': resolution: {integrity: sha512-aOwlfD6ZA1K6hjZtbhBSp7s1yi3sHbMpLCa4stXzfhCCpKUv46HU/EdiWdE1N8AsyNFemPZFq81k1VTowcACdg==} @@ -1941,127 +1937,106 @@ packages: resolution: {integrity: sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==} cpu: [arm] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.55.1': resolution: {integrity: sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==} cpu: [arm] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.34.9': resolution: {integrity: sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-gnu@4.44.0': resolution: {integrity: sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-gnu@4.55.1': resolution: {integrity: sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.34.9': resolution: {integrity: sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-musl@4.44.0': resolution: {integrity: sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-musl@4.55.1': resolution: {integrity: sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.55.1': resolution: {integrity: sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==} cpu: [loong64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-loong64-musl@4.55.1': resolution: {integrity: sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==} cpu: [loong64] os: [linux] - libc: [musl] '@rollup/rollup-linux-ppc64-gnu@4.55.1': resolution: {integrity: sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==} cpu: [ppc64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-ppc64-musl@4.55.1': resolution: {integrity: sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==} cpu: [ppc64] os: [linux] - libc: [musl] '@rollup/rollup-linux-riscv64-gnu@4.55.1': resolution: {integrity: sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==} cpu: [riscv64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.55.1': resolution: {integrity: sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==} cpu: [riscv64] os: [linux] - libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.55.1': resolution: {integrity: sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==} cpu: [s390x] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.34.9': resolution: {integrity: sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.44.0': resolution: {integrity: sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.55.1': resolution: {integrity: sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-musl@4.34.9': resolution: {integrity: sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-linux-x64-musl@4.44.0': resolution: {integrity: sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-linux-x64-musl@4.55.1': resolution: {integrity: sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-openbsd-x64@4.55.1': resolution: {integrity: sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==} @@ -2595,6 +2570,48 @@ packages: resolution: {integrity: sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/typescript-darwin-arm64@7.1.0-dev.20260804.1': + resolution: {integrity: sha512-rtxRYecp+GAl9ezzzpS0wypT+8VXtBKRwtd3CYJC9Hwx8Z3cTJN5elGC/ZCwv847ZzKylU2YCBPReZ5sQum4KQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.1.0-dev.20260804.1': + resolution: {integrity: sha512-OFjdKINbH0RLv1joa3emN+bvCNF1LT4M6KvngWfsCF3K7RdFfDo1AwwCpZii3b1t4Og9Hb1kGATUmH4ANyEmOg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-linux-arm64@7.1.0-dev.20260804.1': + resolution: {integrity: sha512-CaCBdvmcyet0BTA/q9dwES/BmzPrv8A6uoAzlTi25hvuLNRcPvuX1bvPKTZWsygX6y0x6W1VdBWNr+wIt33NuA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.1.0-dev.20260804.1': + resolution: {integrity: sha512-k5BAEAWzZlkQYVyNZBxF3z8TTdEcWPS58Q+NVYdwVDNM4UnIqhYp7XY1kwNtbe09GhQkxEFS1NCbno24qG6Sbw==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-x64@7.1.0-dev.20260804.1': + resolution: {integrity: sha512-Y7M9PSRbqDkHT48MfgHYvEDvCdelqGyj79Ml2P3kGU5zZsqdDRoQq8qiArQbYlnOl4INPcyPVtVK6qrJ6Wj39A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-win32-arm64@7.1.0-dev.20260804.1': + resolution: {integrity: sha512-AqHpRJiGyasXzq/xYXPMGV3m4Y1+NlAm7tSep2QD0bAEeYTbVpBcFgaK7cFo3vE/pwb3RltvAijwXdvyikgivA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.1.0-dev.20260804.1': + resolution: {integrity: sha512-nf0NbHjQzXQKnFP7WBcBI2+L5CLsPJkzKB443QNbPusPySG0YpCkYq1ZTN+e+R9uhDObhsdXN8TXJosOgblwFg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -4421,6 +4438,7 @@ packages: glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@11.1.0: @@ -4434,7 +4452,7 @@ packages: glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@9.3.5: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} @@ -7692,9 +7710,9 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@6.0.0-dev.20260416: - resolution: {integrity: sha512-64CCow5rQc6+oBAPqLtvZ8f3iz4WVCLwMVkg6/kOfMQlGshVOMkBhCXn+MMP4SX4Xtnz48VpD98FkptirMEuEQ==} - engines: {node: '>=14.17'} + typescript@7.1.0-dev.20260804.1: + resolution: {integrity: sha512-IVZiyjMPh0Mw6YvzCwA3euL9yY9zJB+P5owFRoroevQwWPrSIOT2Dt6UKiO2VseJwhapC6ylR3ioERG53hT9pA==} + engines: {node: '>=16.20.0'} hasBin: true uglify-js@3.19.3: @@ -9164,7 +9182,7 @@ snapshots: minimist: 1.2.8 typescript: 4.2.4 - '@capacitor/haptics@8.0.0-next.3(@capacitor/core@9.0.0-alpha.5)': + '@capacitor/haptics@9.0.0-next.1(@capacitor/core@9.0.0-alpha.5)': dependencies: '@capacitor/core': 9.0.0-alpha.5 @@ -9172,7 +9190,7 @@ snapshots: dependencies: '@capacitor/core': 9.0.0-alpha.5 - '@capacitor/keyboard@8.0.0-next.4(@capacitor/core@9.0.0-alpha.5)': + '@capacitor/keyboard@9.0.0-next.1(@capacitor/core@9.0.0-alpha.5)': dependencies: '@capacitor/core': 9.0.0-alpha.5 @@ -10975,6 +10993,27 @@ snapshots: '@typescript-eslint/types': 8.53.0 eslint-visitor-keys: 4.2.1 + '@typescript/typescript-darwin-arm64@7.1.0-dev.20260804.1': + optional: true + + '@typescript/typescript-darwin-x64@7.1.0-dev.20260804.1': + optional: true + + '@typescript/typescript-linux-arm64@7.1.0-dev.20260804.1': + optional: true + + '@typescript/typescript-linux-arm@7.1.0-dev.20260804.1': + optional: true + + '@typescript/typescript-linux-x64@7.1.0-dev.20260804.1': + optional: true + + '@typescript/typescript-win32-arm64@7.1.0-dev.20260804.1': + optional: true + + '@typescript/typescript-win32-x64@7.1.0-dev.20260804.1': + optional: true + '@ungap/structured-clone@1.3.0': {} '@webassemblyjs/ast@1.14.1': @@ -12262,7 +12301,7 @@ snapshots: dependencies: semver: 7.7.3 shelljs: 0.8.5 - typescript: 6.0.0-dev.20260416 + typescript: 7.1.0-dev.20260804.1 dunder-proto@1.0.1: dependencies: @@ -17144,7 +17183,15 @@ snapshots: typescript@5.9.3: {} - typescript@6.0.0-dev.20260416: {} + typescript@7.1.0-dev.20260804.1: + optionalDependencies: + '@typescript/typescript-darwin-arm64': 7.1.0-dev.20260804.1 + '@typescript/typescript-darwin-x64': 7.1.0-dev.20260804.1 + '@typescript/typescript-linux-arm': 7.1.0-dev.20260804.1 + '@typescript/typescript-linux-arm64': 7.1.0-dev.20260804.1 + '@typescript/typescript-linux-x64': 7.1.0-dev.20260804.1 + '@typescript/typescript-win32-arm64': 7.1.0-dev.20260804.1 + '@typescript/typescript-win32-x64': 7.1.0-dev.20260804.1 uglify-js@3.19.3: optional: true