Skip to content

Commit 2c7f8c1

Browse files
authored
Exposes the tile count limit overwrite for offline legacy (#4073)
1 parent c981c1b commit 2c7f8c1

File tree

6 files changed

+70
-0
lines changed

6 files changed

+70
-0
lines changed

android/src/main/java/com/rnmapbox/rnmbx/modules/RNMBXOfflineModuleLegacy.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,16 @@ class RNMBXOfflineModuleLegacy(private val mReactContext: ReactApplicationContex
374374
}
375375
}
376376

377+
@ReactMethod
378+
fun setTileCountLimit(tileCountLimit: Int) {
379+
UiThreadUtil.runOnUiThread {
380+
val offlineRegionManager = getOfflineRegionManager {
381+
RNMBXModule.getAccessToken(mReactContext)
382+
}
383+
offlineRegionManager.setOfflineMapboxTileCountLimit(tileCountLimit.toLong())
384+
}
385+
}
386+
377387
@ReactMethod
378388
fun resetDatabase(promise: Promise) {
379389
UiThreadUtil.runOnUiThread {

docs/OfflineManagerLegacy.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,4 +133,20 @@ const offlinePack = await Mapbox.offlineManagerLegacy.getPack();
133133
```
134134

135135

136+
### setTileCountLimit(limit)
137+
138+
Sets the maximum number of Mapbox-hosted tiles that may be downloaded and stored on the current device.<br/>The Mapbox Terms of Service prohibit changing or bypassing this limit without permission from Mapbox.
139+
140+
#### arguments
141+
| Name | Type | Required | Description |
142+
| ---- | :--: | :------: | :----------: |
143+
| `limit` | `Number` | `Yes` | Map tile limit count. |
144+
145+
146+
147+
```javascript
148+
Mapbox.offlineManagerLegacy.setTileCountLimit(1000);
149+
```
150+
151+
136152

docs/docs.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8620,6 +8620,29 @@
86208620
"name": "OfflinePack"
86218621
}
86228622
}
8623+
},
8624+
{
8625+
"name": "setTileCountLimit",
8626+
"description": "Sets the maximum number of Mapbox-hosted tiles that may be downloaded and stored on the current device.\nThe Mapbox Terms of Service prohibit changing or bypassing this limit without permission from Mapbox.",
8627+
"params": [
8628+
{
8629+
"name": "limit",
8630+
"description": "Map tile limit count.",
8631+
"type": {
8632+
"name": "Number"
8633+
},
8634+
"optional": false
8635+
}
8636+
],
8637+
"examples": [
8638+
"Mapbox.offlineManagerLegacy.setTileCountLimit(1000);"
8639+
],
8640+
"returns": {
8641+
"description": "",
8642+
"type": {
8643+
"name": "void"
8644+
}
8645+
}
86238646
}
86248647
]
86258648
},

ios/RNMBX/Offline/RNMBXOfflineModuleLegacy.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ @interface RCT_EXTERN_MODULE(RNMBXOfflineModuleLegacy, RCTEventEmitter<RCTBridge
1414
resolver:(RCTPromiseResolveBlock)resolve
1515
rejecter:(RCTPromiseRejectBlock)reject)
1616

17+
RCT_EXTERN_METHOD(setTileCountLimit:(nonnull NSNumber *)limit)
18+
1719
RCT_EXTERN_METHOD(getPackStatus:(NSString *)name
1820
resolver:(RCTPromiseResolveBlock)resolve
1921
rejecter:(RCTPromiseRejectBlock)reject)

ios/RNMBX/Offline/RNMBXOfflineModuleLegacy.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,11 @@ func getRegionByName(name: String, offlineRegions: [OfflineRegion]) -> OfflineRe
363363
}
364364
}
365365

366+
@objc
367+
func setTileCountLimit(_ limit: NSNumber) {
368+
self.offlineRegionManager.setOfflineMapboxTileCountLimitForLimit(limit.uint64Value)
369+
}
370+
366371
@objc
367372
func resetDatabase(_ resolver: @escaping RCTPromiseResolveBlock,
368373
rejecter: @escaping RCTPromiseRejectBlock)

src/modules/offline/offlineManagerLegacy.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,20 @@ class OfflineManagerLegacy {
159159
return this._offlinePacks[name];
160160
}
161161

162+
/**
163+
* Sets the maximum number of Mapbox-hosted tiles that may be downloaded and stored on the current device.
164+
* The Mapbox Terms of Service prohibit changing or bypassing this limit without permission from Mapbox.
165+
*
166+
* @example
167+
* Mapbox.offlineManagerLegacy.setTileCountLimit(1000);
168+
*
169+
* @param {Number} limit Map tile limit count.
170+
* @return {void}
171+
*/
172+
setTileCountLimit(limit: number): void {
173+
MapboxOfflineManager.setTileCountLimit(limit);
174+
}
175+
162176
async _initialize(forceInit?: boolean): Promise<boolean> {
163177
if (this._hasInitialized && !forceInit) {
164178
return true;

0 commit comments

Comments
 (0)