Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
12c89e6
Make bearing a clockwise map rotation (#11)
wf9a5m75 Sep 12, 2026
50b620a
Pass declutterPx through to the marker tile renderer
wf9a5m75 Sep 21, 2026
aef6183
Put raster overlays under the basemap's labels
wf9a5m75 Sep 27, 2026
2d62474
Add MapboxMapDesign.None
wf9a5m75 Sep 29, 2026
1bf95d1
Register VectorStyleSupport; add a URI-carrying design
wf9a5m75 Sep 30, 2026
df1071f
update dependencies (#12)
wf9a5m75 Oct 5, 2026
163889a
Update Mapbox Maps to 11.33.0 (#13)
wf9a5m75 Oct 24, 2026
b27d7fc
Vector style support with in-place style mutations (#14)
wf9a5m75 Oct 24, 2026
fbc5cb1
Test that a ground image survives a map design change
wf9a5m75 Oct 27, 2026
97ca815
Declare the test libraries in this repo's own catalog
wf9a5m75 Oct 27, 2026
00033a0
Merge pull request #15 from MapConductor/test/ground-image-style-change
wf9a5m75 Oct 27, 2026
673cad5
Expect this library's own test package in ExampleInstrumentedTest
wf9a5m75 Oct 27, 2026
65c01bf
Merge pull request #16 from MapConductor/fix/example-instrumented-test
wf9a5m75 Oct 27, 2026
d998d55
Add .claude/settings.json
wf9a5m75 Oct 28, 2026
938a620
Use the core reapplyStyle() for raster layers
wf9a5m75 Oct 29, 2026
b29121a
Merge pull request #17 from MapConductor/fix/reapply-style-under-lock
wf9a5m75 Oct 29, 2026
7f8234d
Redraw tiles once per burst of tiled-marker changes
wf9a5m75 Nov 5, 2026
4379a81
Merge pull request #18 from MapConductor/perf/tiled-marker-update
wf9a5m75 Nov 6, 2026
ff50d39
Keep the map design across configuration changes
wf9a5m75 Nov 7, 2026
6f4f500
Merge pull request #19 from MapConductor/fix/saver-state
wf9a5m75 Nov 7, 2026
5e594cd
Draw large polygon sets as raster tiles (PolygonTiler)
wf9a5m75 Nov 7, 2026
4b44c2c
Stop and destroy the MapView when the map leaves the composition
wf9a5m75 Nov 7, 2026
41c5259
Give the MapView its own lifecycle and end it when the map leaves
wf9a5m75 Nov 7, 2026
c8abaee
Dispose the polygon tiler when the conductor is destroyed
wf9a5m75 Nov 7, 2026
ce827fa
Read the controller through the state base, which MapViewBase clears
wf9a5m75 Nov 8, 2026
d8c0942
Extend core PolygonController for Mapbox polygons
wf9a5m75 Nov 8, 2026
6aacb1b
Polygon conductor: move a tiled polygon to the GeoJSON layers when a …
wf9a5m75 Nov 8, 2026
a4a389e
Clear circles in clearOverlays() too
wf9a5m75 Nov 8, 2026
544220f
Redraw markers after clearing them
wf9a5m75 Nov 8, 2026
61b076e
Merge pull request #22 from MapConductor/fix/overlay-clear-order
wf9a5m75 Nov 8, 2026
f4d3cf4
Merge pull request #21 from MapConductor/fix/mapview-teardown
wf9a5m75 Nov 8, 2026
20c8ffa
Merge develop into refactor/polygon-controller
wf9a5m75 Nov 8, 2026
4577b3b
Merge pull request #20 from MapConductor/refactor/polygon-controller
wf9a5m75 Nov 8, 2026
55d5811
Clear strategy markers in clearOverlays()
wf9a5m75 Nov 8, 2026
81525c4
Stack overlays by band, independent of add order and style reloads
wf9a5m75 Nov 8, 2026
f811418
Merge pull request #23 from MapConductor/fix/clear-strategy
wf9a5m75 Nov 8, 2026
902c2b3
Merge pull request #24 from MapConductor/fix/overlay-stacking-order
wf9a5m75 Nov 8, 2026
5ef6556
Merge remote-tracking branch 'origin/develop' into feat/polygon-tiling
wf9a5m75 Nov 9, 2026
99ef8c3
Update the API baseline
wf9a5m75 Nov 9, 2026
1053368
Merge pull request #25 from MapConductor/feat/polygon-tiling
wf9a5m75 Nov 9, 2026
a5d2121
Draw large polyline sets as raster tiles (PolylineTiler)
wf9a5m75 Nov 9, 2026
c19bd3f
Merge pull request #26 from MapConductor/feat/polyline-tiling
wf9a5m75 Nov 10, 2026
e60d032
Support bulk Circles with raster tiles
wf9a5m75 Nov 11, 2026
2e889cb
Merge pull request #27 from MapConductor/feat/circles-bulk-cache
wf9a5m75 Nov 11, 2026
36c733b
Order markers with MarkerDrawOrder
wf9a5m75 Nov 11, 2026
32a75e2
Reorder markers when the map rotates
wf9a5m75 Nov 11, 2026
e238838
Merge pull request #28 from MapConductor/fix/marker-zindex-order
wf9a5m75 Nov 12, 2026
463cc88
Apply camera paddings and report fov on Mapbox
wf9a5m75 Nov 12, 2026
5d522b1
Merge remote-tracking branch 'origin/develop' into feat/camera-paddings
wf9a5m75 Nov 12, 2026
7972d12
Merge pull request #29 from MapConductor/feat/camera-paddings
wf9a5m75 Nov 12, 2026
be2ffaf
Emulate camera paddings by shifting the centre
wf9a5m75 Nov 12, 2026
6b24cae
Merge pull request #30 from MapConductor/fix/padding-emulation
wf9a5m75 Nov 12, 2026
158babf
Release 1.4.0
wf9a5m75 Nov 13, 2026
0089b59
Merge pull request #31 from MapConductor/release/1.4.0
wf9a5m75 Nov 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"attribution": {
"commit": "",
"pr": ""
}
}
25 changes: 23 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,29 @@ jobs:
cache: 'gradle'

- name: Build core and compose locally
env:
HEAD_REF: ${{ github.head_ref }}
run: |
git clone --depth 1 https://github.com/MapConductor/android-sdk-core.git _core
# コア側に PR と同名のブランチがあるなら、そちらを組む。
#
# ここを default ブランチ固定にしていると、**コアの未マージな変更に追随する
# PR は永久に赤いまま**になる。実際 CameraBearing をコアへ足したとき、
# プロバイダ側の PR が 10 本まとめて Unresolved reference で落ちた。
# コアが先にマージされるまで待つ、という運用は取り込み順の事故を呼ぶので、
# 同名ブランチがあれば拾う形にしてある(無ければ従来どおり default)。
clone_matching() {
repo="$1"; dir="$2"
url="https://github.com/MapConductor/$repo.git"
if [ -n "$HEAD_REF" ] && git ls-remote --exit-code --heads "$url" "$HEAD_REF" >/dev/null 2>&1; then
echo "$repo: matching branch $HEAD_REF"
git clone --depth 1 --branch "$HEAD_REF" "$url" "$dir"
else
echo "$repo: default branch"
git clone --depth 1 "$url" "$dir"
fi
}

clone_matching android-sdk-core _core
cd _core
./gradlew --no-daemon publishToMavenLocal
cd ..
Expand All @@ -53,7 +74,7 @@ jobs:
}
EOF

git clone --depth 1 https://github.com/MapConductor/android-sdk-compose.git _compose
clone_matching android-sdk-compose _compose
cd _compose
./gradlew --no-daemon publishToMavenLocal
cd ..
Expand Down
85 changes: 58 additions & 27 deletions api/android-for-mapbox.api

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@ dependencies {
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
// A real MapView loading real (local) styles: what a design change does to
// the overlays only shows on a map that actually swaps its style.
androidTestImplementation(libs.androidx.runner)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.test.manifest)
}

// Set project version for NMCP plugin
Expand Down
37 changes: 37 additions & 0 deletions docs/polygon/MapboxPolygonCompositeRenderer.kt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# MapboxPolygonCompositeRenderer

## Signature

```kotlin
class MapboxPolygonCompositeRenderer(
val fill: MapboxPolygonOverlayRenderer,
val outline: MapboxPolylineOverlayRenderer,
) : PolygonOverlayRendererInterface<MapboxActualPolygon>
```

## Description

Presents the fill renderer and the outline renderer to the core `PolygonController` as a single
renderer.

A Mapbox fill layer can only draw a 1 px outline with no width, so to honour `strokeWidth` each
polygon's outer ring is also drawn as a closed polyline with the id `outline-<polygon id>` through
`outline`. Every call the controller makes on this renderer is forwarded to `fill` and mirrored on
`outline`:

- `onAdd` / `onChange`: the fill is created or rebuilt; when that succeeds, the outline polyline is
(re)created with the polygon's `strokeColor`, `strokeWidth`, `geodesic`, `zIndex` and `extra`.
- `onRemove`: the outline polylines are dropped and both sources are redrawn without the removed
polygons (the controller's `clear()` does not call `onPostProcess`).
- `onPostProcess`: both sources are redrawn.

Holes are not outlined.

## Constructor Parameters

- `fill`
- Type: `MapboxPolygonOverlayRenderer`
- Description: Draws the polygon fill (with holes) into the fill source.
- `outline`
- Type: `MapboxPolylineOverlayRenderer`
- Description: Draws the outlines into the polygon outline source.
221 changes: 0 additions & 221 deletions docs/polygon/MapboxPolygonConductor.kt.md

This file was deleted.

30 changes: 30 additions & 0 deletions docs/polygon/MapboxPolygonController.kt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# MapboxPolygonController

## Signature

```kotlin
class MapboxPolygonController(
override val renderer: MapboxPolygonCompositeRenderer,
) : PolygonController<MapboxActualPolygon>(renderer.fill.polygonManager, renderer)
```

## Description

The polygon controller of the Mapbox provider. It extends the core `PolygonController`, so diffing
(add / change / remove), `has`, `find`, the click cascade (`resolveTap`, `dispatchClick`),
`clear` and `destroy` are the core implementation shared with every other provider.

The only provider-specific part is the renderer: a fill layer can only draw a 1 px outline, so the
outline is drawn as a separate polyline by [`MapboxPolygonCompositeRenderer`](./MapboxPolygonCompositeRenderer.kt.md).

## Constructor Parameters

- `renderer`
- Type: `MapboxPolygonCompositeRenderer`
- Description: Draws both the fill and the outline. Its `fill.polygonManager` is used as the
controller's polygon manager, so the controller and the fill renderer always see the same
entities.

## Properties

- `zIndex`: `2` (unchanged from the former `MapboxPolygonConductor`).
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ android.useAndroidX=true
kotlin.code.style=official
android.nonTransitiveRClass=true

compileSdk=35
compileSdk=37
minSdk=26
javaVersion=17
jvmTarget=17

libraryVersion=1.3.1
libraryVersion=1.4.0
android.generateSyncIssueWhenLibraryConstraintsAreEnabled=false
Loading
Loading