Skip to content

Commit

Permalink
listOfflineRegions fails on Android if no map has been shown #172
Browse files Browse the repository at this point in the history
  • Loading branch information
EddyVerbruggen committed Jan 18, 2018
1 parent 95f4e7b commit e8cb4e5
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 24 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
## [3.3.0](https://github.com/EddyVerbruggen/nativescript-mapbox/tree/3.3.0) (2018-01-XX)
[Full Changelog](https://github.com/EddyVerbruggen/nativescript-mapbox/compare/3.2.0...3.3.0)

**Fixed bugs:**

- Console output query [\#177](https://github.com/EddyVerbruggen/nativescript-mapbox/pull/177)

**Implemented enhancements:**

- listOfflineRegions fails on Android if no map has been shown [\#172](https://github.com/EddyVerbruggen/nativescript-mapbox/pull/172)
- How to get lat long of userlocation from mapbox [\#180](https://github.com/EddyVerbruggen/nativescript-mapbox/pull/180)


Expand All @@ -13,6 +18,7 @@

**Fixed bugs:**

- Dragging Map [\#175](https://github.com/EddyVerbruggen/nativescript-mapbox/issues/175)
- Don't handle permissions other than our own [\#194](https://github.com/EddyVerbruggen/nativescript-mapbox/issues/194)
- Don't fire the "mapready" event when the style changes [\#195](https://github.com/EddyVerbruggen/nativescript-mapbox/issues/195)

Expand Down
28 changes: 10 additions & 18 deletions demo/app/main-view-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ export class HelloWorldModel extends Observable {
id: 3,
lat: 52.3602160,
lng: 5,
onTap: () => { console.log("Titleless marker tapped!"); },
onTap: () => console.log("Titleless marker tapped!"),
icon: 'http://www.bme.be/wp-content/uploads/2014/04/marker.png'
},
{
Expand All @@ -183,20 +183,12 @@ export class HelloWorldModel extends Observable {
title: 'This title is cut off on iOS, but multi-line on Android', // no popup unless set
subtitle: 'Same for this subtitle. Same for this subtitle. Same for this subtitle. Same for this subtitle. Same for this subtitle.',
icon: 'http://maryjanewa.com/wp-content/uploads/2016/01/map-marker.png',
onTap: () => {
console.log("Marker tapped");
},
onCalloutTap: () => {
console.log("Marker callout tapped");
}
onTap: () => console.log("Marker tapped"),
onCalloutTap: () => console.log("Marker callout tapped")
}
]).then(
() => {
console.log("Mapbox addMarkers done");
},
(error: string) => {
console.log("mapbox addMarkers error: " + error);
}
() => console.log("Mapbox addMarkers done"),
(error: string) => console.log("mapbox addMarkers error: " + error)
);
}

Expand All @@ -210,9 +202,7 @@ export class HelloWorldModel extends Observable {
};
alert(alertOptions);
},
(error: string) => {
console.log("mapbox doGetViewport error: " + error);
}
(error: string) => console.log("mapbox doGetViewport error: " + error)
);
}

Expand Down Expand Up @@ -357,7 +347,9 @@ export class HelloWorldModel extends Observable {
}

public doListOfflineRegions(): void {
this.mapbox.listOfflineRegions().then(
this.mapbox.listOfflineRegions({
accessToken: ACCESS_TOKEN
}).then(
(regions: Array<OfflineRegion>) => {
let alertOptions: AlertOptions = {
title: "Offline regions",
Expand All @@ -374,7 +366,7 @@ export class HelloWorldModel extends Observable {
};
alert(alertOptions);
}
);
)
}

public doDeleteOfflineRegion(): void {
Expand Down
15 changes: 12 additions & 3 deletions src/mapbox.android.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
MapboxCommon,
MapboxViewBase,
MapStyle, OfflineRegion, SetCenterOptions, SetTiltOptions, SetViewportOptions, SetZoomLevelOptions, ShowOptions,
Viewport, AddExtrusionOptions, UserLocation
Viewport, AddExtrusionOptions, UserLocation, ListOfflineRegionsOptions
} from "./mapbox.common";

// Export the enums for devs not using TS
Expand Down Expand Up @@ -1080,8 +1080,8 @@ export class Mapbox extends MapboxCommon implements MapboxApi {
}
if (!_accessToken) {
_accessToken = options.accessToken;
com.mapbox.mapboxsdk.Mapbox.getInstance(application.android.context, _accessToken);
}
com.mapbox.mapboxsdk.Mapbox.getInstance(application.android.context, _accessToken);

_getOfflineManager().createOfflineRegion(offlineRegionDefinition, encodedMetadata, new com.mapbox.mapboxsdk.offline.OfflineManager.CreateOfflineRegionCallback({
onError: (error: string) => {
Expand Down Expand Up @@ -1138,9 +1138,18 @@ export class Mapbox extends MapboxCommon implements MapboxApi {
});
}

listOfflineRegions(): Promise<OfflineRegion[]> {
listOfflineRegions(options?: ListOfflineRegionsOptions): Promise<OfflineRegion[]> {
return new Promise((resolve, reject) => {
try {
if (!_accessToken && !options.accessToken) {
reject("First show a map, or pass in an 'accessToken' param");
return;
}
if (!_accessToken) {
_accessToken = options.accessToken;
com.mapbox.mapboxsdk.Mapbox.getInstance(application.android.context, _accessToken);
}

_getOfflineManager().listOfflineRegions(new com.mapbox.mapboxsdk.offline.OfflineManager.ListOfflineRegionsCallback({
onError: (error: string) => {
reject(error);
Expand Down
11 changes: 10 additions & 1 deletion src/mapbox.common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,15 @@ export interface DownloadOfflineRegionOptions extends OfflineRegion {
onProgress?: (data: DownloadProgress) => void;
/**
* Optional, used on Android only.
* Set this, in case no map has been show yet (and thus, no accessToken has been passed in yet).
*/
accessToken?: string;
}

export interface ListOfflineRegionsOptions {
/**
* Optional, used on Android only.
* Set this, in case no map has been show yet (and thus, no accessToken has been passed in yet).
*/
accessToken?: string;
}
Expand Down Expand Up @@ -333,7 +342,7 @@ export interface MapboxApi {

downloadOfflineRegion(options: DownloadOfflineRegionOptions): Promise<any>;

listOfflineRegions(): Promise<Array<OfflineRegion>>;
listOfflineRegions(options?: ListOfflineRegionsOptions): Promise<Array<OfflineRegion>>;

deleteOfflineRegion(options: DeleteOfflineRegionOptions): Promise<any>;

Expand Down
4 changes: 2 additions & 2 deletions src/mapbox.ios.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
MapboxCommon,
MapboxViewBase,
MapStyle, OfflineRegion, SetCenterOptions, SetTiltOptions, SetViewportOptions, SetZoomLevelOptions, ShowOptions,
Viewport, AddExtrusionOptions, UserLocation
Viewport, AddExtrusionOptions, UserLocation, ListOfflineRegionsOptions
} from "./mapbox.common";
import { Color } from "tns-core-modules/color";

Expand Down Expand Up @@ -746,7 +746,7 @@ export class Mapbox extends MapboxCommon implements MapboxApi {
});
}

listOfflineRegions(): Promise<OfflineRegion[]> {
listOfflineRegions(options?: ListOfflineRegionsOptions): Promise<OfflineRegion[]> {
return new Promise((resolve, reject) => {
try {
let packs = MGLOfflineStorage.sharedOfflineStorage().packs;
Expand Down

0 comments on commit e8cb4e5

Please sign in to comment.