summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/java/com/mapbox/mapboxsdk/downstream
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/java/com/mapbox/mapboxsdk/downstream')
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/java/com/mapbox/mapboxsdk/downstream/MainActivity.java94
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/java/com/mapbox/mapboxsdk/downstream/MapActivity.java112
2 files changed, 206 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/java/com/mapbox/mapboxsdk/downstream/MainActivity.java b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/java/com/mapbox/mapboxsdk/downstream/MainActivity.java
new file mode 100644
index 0000000000..49a509432a
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/java/com/mapbox/mapboxsdk/downstream/MainActivity.java
@@ -0,0 +1,94 @@
+package com.mapbox.mapboxsdk.downstream;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import com.google.gson.JsonObject;
+import com.mapbox.mapboxsdk.Mapbox;
+import com.mapbox.mapboxsdk.geometry.LatLng;
+import com.mapbox.mapboxsdk.geometry.LatLngBounds;
+import com.mapbox.mapboxsdk.log.Logger;
+import com.mapbox.mapboxsdk.maps.Style;
+import com.mapbox.mapboxsdk.offline.OfflineManager;
+import com.mapbox.mapboxsdk.offline.OfflineRegion;
+import com.mapbox.mapboxsdk.offline.OfflineRegionError;
+import com.mapbox.mapboxsdk.offline.OfflineRegionStatus;
+import com.mapbox.mapboxsdk.offline.OfflineTilePyramidRegionDefinition;
+import timber.log.Timber;
+
+public class MainActivity extends AppCompatActivity {
+
+ private final static String TAG = "Main";
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_donwload);
+
+ Mapbox.getInstance(this, getString(R.string.mapbox_access_token));
+
+ OfflineManager offlineManager = OfflineManager.getInstance(this);
+
+ LatLngBounds latLngBounds = new LatLngBounds.Builder()
+ .include(new LatLng(50.849772, 5.688173))
+ .include(new LatLng(50.843630, 5.710903))
+ .build();
+
+ float pixelRatio = getResources().getDisplayMetrics().density;
+
+ OfflineTilePyramidRegionDefinition definition = new OfflineTilePyramidRegionDefinition(
+ Style.MAPBOX_STREETS, latLngBounds, 16, 20, pixelRatio
+ );
+
+ offlineManager.createOfflineRegion(definition, convertRegionName("test"), new OfflineManager.CreateOfflineRegionCallback() {
+ @Override
+ public void onCreate(OfflineRegion offlineRegion) {
+ offlineRegion.setDownloadState(OfflineRegion.STATE_ACTIVE);
+ offlineRegion.setObserver(new OfflineRegion.OfflineRegionObserver() {
+ @Override
+ public void onStatusChanged(OfflineRegionStatus status) {
+ if (status.isComplete()) {
+ View button = findViewById(R.id.button);
+ button.setVisibility(View.VISIBLE);
+ button.setOnClickListener(v -> {
+ Intent intent = new Intent(v.getContext(), MapActivity.class);
+ startActivity(intent);
+ });
+ }
+ }
+
+ @Override
+ public void onError(OfflineRegionError error) {
+ Logger.e(TAG, error.getMessage());
+ }
+
+ @Override
+ public void mapboxTileCountLimitExceeded(long limit) {
+
+ }
+ });
+ }
+
+ @Override
+ public void onError(String error) {
+ Logger.e(TAG, error);
+ }
+ });
+ }
+
+ public static final String JSON_CHARSET = "UTF-8";
+ public static final String JSON_FIELD_REGION_NAME = "FIELD_REGION_NAME";
+
+ public static byte[] convertRegionName(String regionName) {
+ try {
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty(JSON_FIELD_REGION_NAME, regionName);
+ return jsonObject.toString().getBytes(JSON_CHARSET);
+ } catch (Exception exception) {
+ Timber.e(exception, "Failed to encode metadata: ");
+ }
+ return null;
+ }
+} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/java/com/mapbox/mapboxsdk/downstream/MapActivity.java b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/java/com/mapbox/mapboxsdk/downstream/MapActivity.java
new file mode 100644
index 0000000000..47309c3fc5
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/java/com/mapbox/mapboxsdk/downstream/MapActivity.java
@@ -0,0 +1,112 @@
+package com.mapbox.mapboxsdk.downstream;
+
+import android.animation.ValueAnimator;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.widget.TextView;
+import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
+import com.mapbox.mapboxsdk.geometry.LatLng;
+import com.mapbox.mapboxsdk.maps.MapView;
+import com.mapbox.mapboxsdk.maps.Style;
+import com.mapbox.mapboxsdk.plugins.annotation.Symbol;
+import com.mapbox.mapboxsdk.plugins.annotation.SymbolManager;
+import com.mapbox.mapboxsdk.plugins.annotation.SymbolOptions;
+import com.mapbox.mapboxsdk.utils.BitmapUtils;
+import timber.log.Timber;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * Activity showcasing adding symbols using the annotation plugin
+ */
+public class MapActivity extends AppCompatActivity {
+
+ private static final String ID_ICON = "airport";
+
+ private MapView mapView;
+ private SymbolManager symbolManager;
+ private Symbol symbol;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ mapView = findViewById(R.id.mapView);
+ mapView.onCreate(savedInstanceState);
+ mapView.getMapAsync(mapboxMap -> mapboxMap.setStyle(Style.MAPBOX_STREETS, style -> {
+ findViewById(R.id.fabStyles).setOnClickListener(v -> mapboxMap.setStyle(Style.DARK));
+
+ mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(50.846317, 5.698414), 17));
+
+ style.addImage(ID_ICON, BitmapUtils.getBitmapFromDrawable(getResources().getDrawable(R.drawable.mapbox_marker_icon_default)), false);
+
+ // create symbol manager
+ symbolManager = new SymbolManager(mapView, mapboxMap, style);
+ symbolManager.setIconAllowOverlap(true);
+ symbolManager.setTextAllowOverlap(true);
+
+ // create a symbol
+ SymbolOptions symbolOptions = new SymbolOptions()
+ .withLatLng(new LatLng(50.846202, 5.69738))
+ .withIconImage(ID_ICON)
+ .withTextFont(new String[]{"Open Sans Regular","Arial Unicode MS Regular"})
+ .withIconSize(1.3f)
+ .withTextField("Hello World")
+ .withZIndex(10);
+ symbol = symbolManager.create(symbolOptions);
+ Timber.e(symbol.toString());
+
+
+ }));
+ }
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ mapView.onStart();
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ mapView.onResume();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ mapView.onPause();
+ }
+
+ @Override
+ protected void onStop() {
+ super.onStop();
+ mapView.onStop();
+ }
+
+ @Override
+ public void onLowMemory() {
+ super.onLowMemory();
+ mapView.onLowMemory();
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+
+ if (symbolManager != null) {
+ symbolManager.onDestroy();
+ }
+
+ mapView.onDestroy();
+ }
+
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ mapView.onSaveInstanceState(outState);
+ }
+} \ No newline at end of file