summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--platform/android/.gitignore1
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/.gitignore1
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/build.gradle78
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/proguard-rules.pro21
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/androidTest/java/com/mapbox/mapboxsdk/downstream/ExampleInstrumentedTest.kt24
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/AndroidManifest.xml23
-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
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/drawable-v24/ic_launcher_foreground.xml34
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/drawable/ic_launcher_background.xml74
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/layout/activity_donwload.xml13
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/layout/activity_main.xml33
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml5
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml5
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-hdpi/ic_launcher.pngbin0 -> 2963 bytes
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-hdpi/ic_launcher_round.pngbin0 -> 4905 bytes
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-mdpi/ic_launcher.pngbin0 -> 2060 bytes
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-mdpi/ic_launcher_round.pngbin0 -> 2783 bytes
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xhdpi/ic_launcher.pngbin0 -> 4490 bytes
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xhdpi/ic_launcher_round.pngbin0 -> 6895 bytes
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxhdpi/ic_launcher.pngbin0 -> 6387 bytes
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxhdpi/ic_launcher_round.pngbin0 -> 10413 bytes
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxxhdpi/ic_launcher.pngbin0 -> 9128 bytes
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.pngbin0 -> 15132 bytes
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/colors.xml6
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/developer-config.xml4
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/strings.xml3
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/styles.xml11
-rw-r--r--platform/android/MapboxGLAndroidSDKDownstreamApp/src/test/java/com/mapbox/mapboxsdk/downstream/ExampleUnitTest.kt17
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/build.gradle5
-rw-r--r--platform/android/build.gradle8
-rw-r--r--platform/android/settings.gradle2
32 files changed, 566 insertions, 8 deletions
diff --git a/platform/android/.gitignore b/platform/android/.gitignore
index f5affd93c7..af68f9c007 100644
--- a/platform/android/.gitignore
+++ b/platform/android/.gitignore
@@ -20,6 +20,7 @@ gradle/configuration.gradle
# Token file
MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml
+MapboxGLAndroidSDKDownstreamApp/src/main/res/values/developer-config.xml
# Capture files
captures/
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/.gitignore b/platform/android/MapboxGLAndroidSDKDownstreamApp/.gitignore
new file mode 100644
index 0000000000..796b96d1c4
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/build.gradle b/platform/android/MapboxGLAndroidSDKDownstreamApp/build.gradle
new file mode 100644
index 0000000000..6805837205
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/build.gradle
@@ -0,0 +1,78 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 28
+
+ defaultConfig {
+ applicationId "com.mapbox.mapboxsdk.downstream"
+ minSdkVersion androidVersions.minSdkVersion
+ targetSdkVersion androidVersions.targetSdkVersion
+ versionCode 1
+ versionName "0.0.1"
+ testInstrumentationRunner "com.mapbox.mapboxsdk.InstrumentationRunner"
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
+ lintOptions {
+ baseline file("lint-baseline-local.xml")
+ checkAllWarnings true
+ warningsAsErrors true
+ disable 'MissingTranslation', 'GoogleAppIndexingWarning', 'UnpackedNativeCode', 'IconDipSize', 'TypographyQuotes'
+ abortOnError false
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled true
+ shrinkResources true
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ signingConfig signingConfigs.debug
+ }
+ }
+
+ dexOptions {
+ maxProcessCount 8
+ javaMaxHeapSize "2g"
+ preDexLibraries true
+ }
+}
+
+dependencies {
+ implementation dependenciesList.kotlinLib
+
+ implementation project(':MapboxGLAndroidSDK')
+ implementation dependenciesList.mapboxJavaTurf
+
+ implementation dependenciesList.supportAppcompatV7
+ implementation dependenciesList.supportRecyclerView
+ implementation dependenciesList.supportDesign
+ implementation dependenciesList.supportConstraintLayout
+
+ implementation dependenciesList.gmsLocation
+ implementation dependenciesList.timber
+ debugImplementation dependenciesList.leakCanaryDebug
+ releaseImplementation dependenciesList.leakCanaryRelease
+
+ androidTestImplementation dependenciesList.supportAnnotations
+ androidTestImplementation dependenciesList.testRunner
+ androidTestImplementation dependenciesList.testRules
+ androidTestImplementation dependenciesList.testEspressoCore
+ androidTestImplementation dependenciesList.testEspressoIntents
+ androidTestImplementation dependenciesList.testEspressoContrib
+ androidTestImplementation dependenciesList.testUiAutomator
+
+ implementation('com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v7:0.6.0') {
+ exclude group: 'com.mapbox.mapboxsdk', module: 'mapbox-android-sdk'
+ }
+}
+
+apply from: "${rootDir}/gradle/gradle-make.gradle"
+apply from: "${rootDir}/gradle/gradle-config.gradle"
+apply from: "${rootDir}/gradle/gradle-checkstyle.gradle"
+apply from: "${rootDir}/gradle/gradle-lint.gradle"
+apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-android-extensions' \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/proguard-rules.pro b/platform/android/MapboxGLAndroidSDKDownstreamApp/proguard-rules.pro
new file mode 100644
index 0000000000..f1b424510d
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/androidTest/java/com/mapbox/mapboxsdk/downstream/ExampleInstrumentedTest.kt b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/androidTest/java/com/mapbox/mapboxsdk/downstream/ExampleInstrumentedTest.kt
new file mode 100644
index 0000000000..19a89dcb9e
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/androidTest/java/com/mapbox/mapboxsdk/downstream/ExampleInstrumentedTest.kt
@@ -0,0 +1,24 @@
+package com.mapbox.mapboxsdk.downstream
+
+import android.support.test.InstrumentationRegistry
+import android.support.test.runner.AndroidJUnit4
+
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import org.junit.Assert.*
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+@RunWith(AndroidJUnit4::class)
+class ExampleInstrumentedTest {
+ @Test
+ fun useAppContext() {
+ // Context of the app under test.
+ val appContext = InstrumentationRegistry.getTargetContext()
+ assertEquals("com.mapbox.mapboxsdk.downstream", appContext.packageName)
+ }
+}
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..4ff2ca67a4
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.mapbox.mapboxsdk.downstream">
+
+ <application
+ android:allowBackup="true"
+ android:icon="@mipmap/ic_launcher"
+ android:label="@string/app_name"
+ android:roundIcon="@mipmap/ic_launcher_round"
+ android:supportsRtl="true"
+ android:theme="@style/AppTheme">
+ <activity android:name=".MapActivity">
+ </activity>
+ <activity android:name=".MainActivity">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN"/>
+
+ <category android:name="android.intent.category.LAUNCHER"/>
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest> \ No newline at end of file
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
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/drawable-v24/ic_launcher_foreground.xml b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000000..6348baae39
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,34 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportHeight="108"
+ android:viewportWidth="108">
+ <path
+ android:fillType="evenOdd"
+ android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
+ android:strokeColor="#00000000"
+ android:strokeWidth="1">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:endX="78.5885"
+ android:endY="90.9159"
+ android:startX="48.7653"
+ android:startY="61.0927"
+ android:type="linear">
+ <item
+ android:color="#44000000"
+ android:offset="0.0"/>
+ <item
+ android:color="#00000000"
+ android:offset="1.0"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:fillColor="#FFFFFF"
+ android:fillType="nonZero"
+ android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
+ android:strokeColor="#00000000"
+ android:strokeWidth="1"/>
+</vector>
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/drawable/ic_launcher_background.xml b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000000..a0ad202f9e
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="108dp"
+ android:width="108dp"
+ android:viewportHeight="108"
+ android:viewportWidth="108">
+ <path android:fillColor="#008577"
+ android:pathData="M0,0h108v108h-108z"/>
+ <path android:fillColor="#00000000" android:pathData="M9,0L9,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,0L19,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M29,0L29,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M39,0L39,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M49,0L49,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M59,0L59,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M69,0L69,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M79,0L79,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M89,0L89,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M99,0L99,108"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,9L108,9"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,19L108,19"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,29L108,29"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,39L108,39"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,49L108,49"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,59L108,59"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,69L108,69"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,79L108,79"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,89L108,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M0,99L108,99"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,29L89,29"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,39L89,39"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,49L89,49"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,59L89,59"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,69L89,69"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M19,79L89,79"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M29,19L29,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M39,19L39,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M49,19L49,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M59,19L59,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M69,19L69,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+ <path android:fillColor="#00000000" android:pathData="M79,19L79,89"
+ android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+</vector>
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/layout/activity_donwload.xml b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/layout/activity_donwload.xml
new file mode 100644
index 0000000000..b8364d4a8a
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/layout/activity_donwload.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/coordinator_layout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <Button
+ android:id="@+id/button"
+ android:layout_width="match_parent" android:layout_height="wrap_content"
+ android:text="Click me" android:visibility="gone"/>
+
+</android.support.constraint.ConstraintLayout> \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/layout/activity_main.xml b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000000..403db8afda
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/layout/activity_main.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/coordinator_layout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <com.mapbox.mapboxsdk.maps.MapView
+ android:id="@+id/mapView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
+
+ <TextView
+ android:id="@+id/draggable_position_tv"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone"/>
+
+ <android.support.design.widget.FloatingActionButton
+ android:id="@+id/fabStyles"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="16dp"
+ android:tint="@android:color/white"
+ app:backgroundTint="@color/colorAccent"
+ app:fabSize="normal"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintRight_toRightOf="parent"
+ app:srcCompat="@drawable/mapbox_marker_icon_default"/>
+
+</android.support.constraint.ConstraintLayout> \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000000..bbd3e02123
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background"/>
+ <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+</adaptive-icon> \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000000..bbd3e02123
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background"/>
+ <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+</adaptive-icon> \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-hdpi/ic_launcher.png b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000..898f3ed59a
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-hdpi/ic_launcher_round.png b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..dffca3601e
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-mdpi/ic_launcher.png b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000..64ba76f75e
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-mdpi/ic_launcher_round.png b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..dae5e08234
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xhdpi/ic_launcher.png b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000..e5ed46597e
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..14ed0af350
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxhdpi/ic_launcher.png b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..b0907cac3b
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..d8ae031549
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..2c18de9e66
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000000..beed3cdd2c
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/colors.xml b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/colors.xml
new file mode 100644
index 0000000000..69b22338c6
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="colorPrimary">#008577</color>
+ <color name="colorPrimaryDark">#00574B</color>
+ <color name="colorAccent">#D81B60</color>
+</resources>
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/developer-config.xml b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/developer-config.xml
new file mode 100644
index 0000000000..008015299c
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/developer-config.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="mapbox_access_token">YOUR_MAPBOX_ACCESS_TOKEN_GOES_HERE</string>
+</resources> \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/strings.xml
new file mode 100644
index 0000000000..80dd3b0615
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+<resources>
+ <string name="app_name">MapboxGLAndroidSDKDownstreamApp</string>
+</resources>
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/styles.xml b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/styles.xml
new file mode 100644
index 0000000000..5885930df6
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/main/res/values/styles.xml
@@ -0,0 +1,11 @@
+<resources>
+
+ <!-- Base application theme. -->
+ <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+ <!-- Customize your theme here. -->
+ <item name="colorPrimary">@color/colorPrimary</item>
+ <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
+ <item name="colorAccent">@color/colorAccent</item>
+ </style>
+
+</resources>
diff --git a/platform/android/MapboxGLAndroidSDKDownstreamApp/src/test/java/com/mapbox/mapboxsdk/downstream/ExampleUnitTest.kt b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/test/java/com/mapbox/mapboxsdk/downstream/ExampleUnitTest.kt
new file mode 100644
index 0000000000..9ef8e51954
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKDownstreamApp/src/test/java/com/mapbox/mapboxsdk/downstream/ExampleUnitTest.kt
@@ -0,0 +1,17 @@
+package com.mapbox.mapboxsdk.downstream
+
+import org.junit.Test
+
+import org.junit.Assert.*
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+class ExampleUnitTest {
+ @Test
+ fun addition_isCorrect() {
+ assertEquals(4, 2 + 2)
+ }
+}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle
index ca280436ea..16189af645 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle
+++ b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle
@@ -85,8 +85,5 @@ apply from: "${rootDir}/gradle/gradle-make.gradle"
apply from: "${rootDir}/gradle/gradle-config.gradle"
apply from: "${rootDir}/gradle/gradle-checkstyle.gradle"
apply from: "${rootDir}/gradle/gradle-lint.gradle"
-
-
-
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
+apply plugin: 'kotlin-android-extensions' \ No newline at end of file
diff --git a/platform/android/build.gradle b/platform/android/build.gradle
index 947e5adb1a..5c63d3c65a 100644
--- a/platform/android/build.gradle
+++ b/platform/android/build.gradle
@@ -1,4 +1,6 @@
-buildscript {
+buildscript {
+ ext.kotlin_version = '1.3.31'
+
apply from: "${rootDir}/gradle/dependencies.gradle"
repositories {
@@ -13,7 +15,7 @@ buildscript {
classpath dependenciesList.artifactoryPlugin
classpath dependenciesList.androidPublishPlugin
classpath dependenciesList.jacocoPlugin
- }
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }
}
allprojects {
@@ -35,4 +37,4 @@ subprojects {
// Load build system information. If this file does not exist, run
// `make platform/android/gradle/configuration.gradle`
apply from: "${rootDir}/gradle/configuration.gradle"
-apply from: "${rootDir}/gradle/download-schema.gradle" \ No newline at end of file
+apply from: "${rootDir}/gradle/download-schema.gradle"
diff --git a/platform/android/settings.gradle b/platform/android/settings.gradle
index c0315fed04..cc9fd88b95 100644
--- a/platform/android/settings.gradle
+++ b/platform/android/settings.gradle
@@ -1 +1 @@
-include ':MapboxGLAndroidSDK', ':MapboxGLAndroidSDKTestApp', ':MapboxGLAndroidSDKLint' \ No newline at end of file
+include ':MapboxGLAndroidSDK', ':MapboxGLAndroidSDKTestApp', ':MapboxGLAndroidSDKLint', ':MapboxGLAndroidSDKDownstreamApp' \ No newline at end of file