Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
c08e0a6
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-05--11-23.git-a4…
May 5, 2026
677e967
bump version
temap May 6, 2026
8132464
Changelogs for common v24.25.0-alpha.2, gl-native v11.25.0-alpha.2, m…
temap May 6, 2026
d283476
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-06--02-05.git-5c…
May 6, 2026
027ae7a
Update changelogs for v0.24.0-rc.1 release
github-actions[bot] May 5, 2026
4f68de1
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-07--02-05.git-e3…
May 7, 2026
2d8a91d
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-09--02-05.git-e5…
May 9, 2026
4ded61a
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-12--02-05.git-6d…
May 12, 2026
8be75f5
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-13--02-05.git-6f…
May 13, 2026
6f06e2d
[maps-flutter] deprecate MapboxMap tap/long-tap listeners (#13443)
maios May 13, 2026
d6239ee
[maps-flutter] Add MapboxHttpService.setMaxRequestsPerHost (#13293)
evil159 May 13, 2026
21949e0
Update local versions to 25.0-SNAPSHOT-05-19--06-51.git-92385b2.
yunikkk May 18, 2026
76b1f50
snapshot: update local versions to SNAPSHOT-05-21--13-19.git-fede0de …
temap May 21, 2026
979d805
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-22--02-05.git-63…
May 22, 2026
1e51932
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-23--02-05.git-c3…
May 23, 2026
2d6f163
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-25--02-05.git-84…
May 25, 2026
acbaceb
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-26--02-05.git-4a…
May 26, 2026
32b15be
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-27--02-04.git-59…
May 27, 2026
839ccb6
bump versions
kiryldz May 27, 2026
0f77175
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-28--02-04.git-d1…
May 28, 2026
fb8b514
[maps-flutter] update license (#14140)
evil159 May 28, 2026
e3c697f
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-29--02-04.git-9c…
May 29, 2026
9e6414c
Bump snapshot
kiryldz May 29, 2026
aa0f67b
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-05-30--02-04.git-18…
May 30, 2026
e7c507b
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-06-01--02-05.git-1a…
Jun 1, 2026
95270cf
[skip ci] Bump release version to v0.25.0-rc.1
github-actions[bot] Jun 2, 2026
f25e544
Update changelogs for v0.25.0-rc.1 release
github-actions[bot] Jun 2, 2026
9ad4974
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-06-04--09-23.git-6b…
Jun 4, 2026
2cff04e
[skip ci] Bump release version to v0.25.0-rc.2
github-actions[bot] Jun 4, 2026
526022d
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-06-09--08-24.git-30…
Jun 9, 2026
5aac795
[skip ci][no ci] Bump snapshot versions `SNAPSHOT-06-11--13-05.git-18…
Jun 11, 2026
4f99a28
[skip ci] Bump release version to v0.25.0
github-actions[bot] Jun 11, 2026
53047f3
Migrate Android build configuration to Kotlin DSL (AGP 9.0.1) and Bui…
faheem-riaz Jun 28, 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
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
### main
### 2.25.0-rc.1

* Deprecate `MapboxMap.onTapListener` and `MapboxMap.onLongTapListener` in favor of the `MapboxMap.addInterfaction` API.
* Add `MapboxMap.httpService.setMaxRequestsPerHost` to cap the number of concurrent HTTP requests per host issued by the underlying HTTP service. Useful for reducing the chance of hitting per-token rate limits during offline tile region downloads.

### 2.24.0-rc.1

* Add `TileStore.setOptionForKey` to allow setting custom tile store options by arbitrary string key, in addition to the existing predefined options (`diskQuota`, `mapboxApiUrl`, `tileUrlTemplate`).

Expand Down
145 changes: 144 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## License

Mapbox Maps for Flutter version 2.24.0
Mapbox Maps for Flutter version 2.25.0
Mapbox Maps Flutter SDK

Copyright © 2022 - 2026 Mapbox, Inc. All rights reserved.
Expand Down Expand Up @@ -194,6 +194,149 @@ https://www.mapbox.com/legal/tos/

---

### libjpeg-turbo,3.1.4.1,IJG AND BSD-3-Clause AND Zlib,The libjpeg-turbo Project,https://libjpeg-turbo.org/

```
libjpeg-turbo Licenses
======================

libjpeg-turbo is covered by two compatible BSD-style open source licenses:

- The IJG (Independent JPEG Group) License, which is listed in
[README.ijg](README.ijg)

This license applies to the libjpeg API library and associated programs,
including any code inherited from libjpeg and any modifications to that
code. Note that the libjpeg-turbo SIMD source code bears the
[zlib License](https://opensource.org/licenses/Zlib), but in the context of
the overall libjpeg API library, the terms of the zlib License are subsumed
by the terms of the IJG License.

- The Modified (3-clause) BSD License, which is listed below

This license applies to the TurboJPEG API library and associated programs, as
well as the build system. Note that the TurboJPEG API library wraps the
libjpeg API library, so in the context of the overall TurboJPEG API library,
both the terms of the IJG License and the terms of the Modified (3-clause)
BSD License apply.


Complying with the libjpeg-turbo Licenses
=========================================

This section provides a roll-up of the libjpeg-turbo licensing terms, to the
best of our understanding. This is not a license in and of itself. It is
intended solely for clarification.

1. If you are distributing a modified version of the libjpeg-turbo source,
then:

1. You cannot alter or remove any existing copyright or license notices
from the source.

**Origin**
- Clause 1 of the IJG License
- Clause 1 of the Modified BSD License
- Clauses 1 and 3 of the zlib License

2. You must add your own copyright notice to the header of each source
file you modified, so others can tell that you modified that file. (If
there is not an existing copyright header in that file, then you can
simply add a notice stating that you modified the file.)

**Origin**
- Clause 1 of the IJG License
- Clause 2 of the zlib License

3. You must include the IJG README file, and you must not alter any of the
copyright or license text in that file.

**Origin**
- Clause 1 of the IJG License

2. If you are distributing only libjpeg-turbo binaries without the source, or
if you are distributing an application that statically links with
libjpeg-turbo, then:

1. Your product documentation must include a message stating:

This software is based in part on the work of the Independent JPEG
Group.

**Origin**
- Clause 2 of the IJG license

2. If your binary distribution includes or uses the TurboJPEG API, then
your product documentation must include the text of the Modified BSD
License (see below.)

**Origin**
- Clause 2 of the Modified BSD License

3. You cannot use the name of the IJG or The libjpeg-turbo Project or the
contributors thereof in advertising, publicity, etc.

**Origin**
- IJG License
- Clause 3 of the Modified BSD License

4. The IJG and The libjpeg-turbo Project do not warrant libjpeg-turbo to be
free of defects, nor do we accept any liability for undesirable
consequences resulting from your use of the software.

**Origin**
- IJG License
- Modified BSD License
- zlib License


The Modified (3-clause) BSD License
===================================

Copyright (C) 2009-2026 D. R. Commander. All Rights Reserved.<br>
Copyright (C) 2015 Viktor Szathmáry. All Rights Reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
- Neither the name of the libjpeg-turbo Project nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES LOSS OF USE, DATA, OR PROFITS OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.


Why Two Licenses?
=================

The zlib License could have been used instead of the Modified (3-clause) BSD
License, and since the IJG License effectively subsumes the distribution
conditions of the zlib License, this would have effectively placed
libjpeg-turbo binary distributions under the IJG License. However, the IJG
License specifically refers to the Independent JPEG Group and does not extend
attribution and endorsement protections to other entities. Thus, it was
desirable to choose a license that granted us the same protections for new code
that were granted to the IJG for code derived from their software.

```

---

### icu,75.1,Unicode-3.0,Unicode Inc,https://github.com/unicode-org/icu

```
Expand Down
73 changes: 0 additions & 73 deletions android/build.gradle

This file was deleted.

68 changes: 68 additions & 0 deletions android/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
group = "com.mapbox.maps.mapbox_maps"
version = "1.0.0"

buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:9.0.1")
}
}

rootProject.allprojects {
repositories {
google()
mavenCentral()
maven {
url = uri("https://api.mapbox.com/downloads/v2/releases/maven")
}
maven {
url = uri("https://api.mapbox.com/downloads/v2/snapshots/maven")
authentication {
register("basic", BasicAuthentication::class.java)
}
credentials {
username = "mapbox"
password = (System.getenv("SDK_REGISTRY_TOKEN") ?: (project.findProperty("SDK_REGISTRY_TOKEN") as? String)) ?: ""
}
}
}
}

plugins {
id("com.android.library")
}

android {
compileSdk = 35

namespace = "com.mapbox.maps.mapbox_maps"
sourceSets {
getByName("main") {
java.srcDirs("src/main/kotlin")
}
}
defaultConfig {
minSdk = 21
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
}

val ktlintFile = file("$rootDir/gradle/ktlint.gradle")
val lintFile = file("$rootDir/gradle/lint.gradle")
if (ktlintFile.exists() && lintFile.exists()) {
apply(from = ktlintFile)
apply(from = lintFile)
}

dependencies {
implementation("com.mapbox.maps:android-ndk27:11.25.0")
implementation("androidx.annotation:annotation:1.5.0")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
}
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,19 @@ class MapboxMapController(
result.error("HEADER_ERROR", e.message, null)
}
}
"map#setMaxRequestsPerHost" -> {
try {
val max = call.argument<Int>("max")
if (max == null) {
result.error("INVALID_ARGUMENTS", "max cannot be null", null)
} else {
com.mapbox.common.HttpServiceFactory.setMaxRequestsPerHost(max.toByte())
result.success(null)
}
} catch (e: Exception) {
result.error("MAX_REQUESTS_PER_HOST_ERROR", e.message, null)
}
}
else -> {
result.notImplemented()
}
Expand Down
2 changes: 2 additions & 0 deletions example/integration_test/all_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ import 'logo_test.dart' as logo_test;
import 'attribution_test.dart' as attribution_test;
import 'compass_test.dart' as compass_test;
import 'scale_bar_test.dart' as scale_bar_test;
import 'http_service_test.dart' as http_service_test;
import 'offline_test.dart' as offline_test;
import 'snapshotter/snapshotter_test.dart' as snapshotter_test;
import 'viewport_test.dart' as viewport_test;
Expand Down Expand Up @@ -74,6 +75,7 @@ void main() {

// offline_test
offline_test.main();
http_service_test.main();

// style tests
style_test.main();
Expand Down
27 changes: 27 additions & 0 deletions example/integration_test/http_service_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'empty_map_widget.dart' as app;

void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();

group('MapboxHttpService.setMaxRequestsPerHost', () {
testWidgets('accepts valid values across the supported range',
(widgetTester) async {
final mapFuture = app.main();
await widgetTester.pumpAndSettle();
final mapboxMap = await mapFuture;

// Reasonable mid-range value.
await mapboxMap.httpService.setMaxRequestsPerHost(2);

// Boundary values (1..255 maps to uint8 on the native side).
await mapboxMap.httpService.setMaxRequestsPerHost(1);
await mapboxMap.httpService.setMaxRequestsPerHost(255);

// Repeated calls should not throw — setting is idempotent / overwriting.
await mapboxMap.httpService.setMaxRequestsPerHost(8);
await mapboxMap.httpService.setMaxRequestsPerHost(8);
});
});
}
2 changes: 1 addition & 1 deletion ios/mapbox_maps_flutter.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
Pod::Spec.new do |s|
s.name = 'mapbox_maps_flutter'
s.version = '2.24.0'
s.version = '2.25.0'

s.summary = 'Mapbox Maps SDK Flutter Plugin.'
s.description = 'An officially developed solution from Mapbox that enables use of our latest Maps SDK product.'
Expand Down
Loading