diff options
Diffstat (limited to 'platform')
9 files changed, 242 insertions, 81 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestActivity/.gitignore b/platform/android/MapboxGLAndroidSDKTestActivity/.gitignore new file mode 100644 index 0000000000..51fa55e88b --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestActivity/.gitignore @@ -0,0 +1,2 @@ +/build +/src/main/res/values/strings.xml diff --git a/platform/android/MapboxGLAndroidSDKTestActivity/build.gradle b/platform/android/MapboxGLAndroidSDKTestActivity/build.gradle new file mode 100644 index 0000000000..047954f9f4 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestActivity/build.gradle @@ -0,0 +1,22 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 26 + + defaultConfig { + applicationId "com.mapbox.mapboxsdk.activity" + minSdkVersion 14 + targetSdkVersion 26 + versionCode 1 + versionName "1.0" + } +} + +dependencies { + implementation (project(':MapboxGLAndroidSDK')) { + exclude group: 'com.android.support', module: 'support-fragment' + } + implementation ('com.android.support:support-compat:26.0.2') { + exclude group: 'android.arch.lifecycle', module: 'runtime' + } +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestActivity/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestActivity/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..79c65a6925 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestActivity/src/main/AndroidManifest.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" package="com.mapbox.mapboxsdk.activity"> + + <application + android:icon="@mipmap/ic_launcher" + android:label="MapboxGLAndroidActivityApp" + android:theme="@android:style/Theme.Holo" tools:ignore="GoogleAppIndexingWarning"> + <activity android:name="com.mapbox.mapboxsdk.activity.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/MapboxGLAndroidSDKTestActivity/src/main/java/com/mapbox/mapboxsdk/activity/MainActivity.java b/platform/android/MapboxGLAndroidSDKTestActivity/src/main/java/com/mapbox/mapboxsdk/activity/MainActivity.java new file mode 100644 index 0000000000..480838e886 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestActivity/src/main/java/com/mapbox/mapboxsdk/activity/MainActivity.java @@ -0,0 +1,162 @@ +package com.mapbox.mapboxsdk.activity; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.location.Location; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.Toast; +import com.mapbox.android.core.location.LocationEngine; +import com.mapbox.android.core.location.LocationEngineProvider; +import com.mapbox.android.core.location.LocationEngineRequest; +import com.mapbox.android.core.permissions.PermissionsListener; +import com.mapbox.android.core.permissions.PermissionsManager; +import com.mapbox.mapboxsdk.geometry.LatLngBounds; +import com.mapbox.mapboxsdk.location.LocationComponent; +import com.mapbox.mapboxsdk.location.LocationComponentActivationOptions; +import com.mapbox.mapboxsdk.location.modes.RenderMode; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.Style; + +import java.util.List; +import java.util.Random; + +public class MainActivity extends Activity implements OnMapReadyCallback { + + private MapView mapView; + private LocationComponent locationComponent; + private LocationEngine locationEngine; + private PermissionsManager permissionsManager; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + locationEngine = LocationEngineProvider.getBestLocationEngine(this, false); + + Button fabManualUpdate = findViewById(R.id.button); + fabManualUpdate.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (locationComponent != null && locationComponent.getLocationEngine() == null) { + locationComponent.forceLocationUpdate( + getRandomLocation(LatLngBounds.from(60, 25, 40, -5))); + } + } + }); + + mapView = findViewById(R.id.mapView); + mapView.onCreate(savedInstanceState); + + if (PermissionsManager.areLocationPermissionsGranted(this)) { + mapView.getMapAsync(this); + } else { + permissionsManager = new PermissionsManager(new PermissionsListener() { + @Override + public void onExplanationNeeded(List<String> permissionsToExplain) { + Toast.makeText(MainActivity.this.getApplicationContext(), + "You need to accept location permissions.", + Toast.LENGTH_SHORT + ).show(); + } + + @Override + public void onPermissionResult(boolean granted) { + if (granted) { + mapView.getMapAsync(MainActivity.this); + } else { + finish(); + } + } + }); + permissionsManager.requestLocationPermissions(this); + } + } + + @Override + public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + permissionsManager.onRequestPermissionsResult(requestCode, permissions, grantResults); + } + + @SuppressLint("MissingPermission") + @Override + public void onMapReady(final MapboxMap mapboxMap) { + mapboxMap.setStyle(new Style.Builder().fromUrl(Style.MAPBOX_STREETS), new Style.OnStyleLoaded() { + @Override + public void onStyleLoaded(Style style) { + locationComponent = mapboxMap.getLocationComponent(); + + locationComponent.activateLocationComponent( + LocationComponentActivationOptions + .builder(MainActivity.this, style) + .locationEngine(locationEngine) + .locationEngineRequest(new LocationEngineRequest.Builder(500) + .setFastestInterval(500) + .setPriority(LocationEngineRequest.PRIORITY_HIGH_ACCURACY).build()) + .build()); + + locationComponent.setLocationComponentEnabled(true); + locationComponent.setRenderMode(RenderMode.COMPASS); + } + }); + } + + @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 + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + mapView.onSaveInstanceState(outState); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mapView.onDestroy(); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mapView.onLowMemory(); + } + + public static Location getRandomLocation(LatLngBounds bounds) { + Random random = new Random(); + + double randomLat = bounds.getLatSouth() + (bounds.getLatNorth() - bounds.getLatSouth()) * random.nextDouble(); + double randomLon = bounds.getLonWest() + (bounds.getLonEast() - bounds.getLonWest()) * random.nextDouble(); + + Location location = new Location("random-loc"); + location.setLongitude(randomLon); + location.setLatitude(randomLat); + return location; + } +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestActivity/src/main/res/layout/activity_main.xml b/platform/android/MapboxGLAndroidSDKTestActivity/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000000..c4dce05e4b --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestActivity/src/main/res/layout/activity_main.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout + xmlns:android="http://schemas.android.com/apk/res/android" + 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"/> + + <Button + android:id="@+id/button" + android:layout_width="150dp" + android:layout_height="150dp" + android:layout_alignParentBottom="true" + android:layout_alignParentRight="true"/> + +</RelativeLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestActivity/src/main/res/mipmap-xhdpi/ic_launcher.png b/platform/android/MapboxGLAndroidSDKTestActivity/src/main/res/mipmap-xhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000000..af747df411 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestActivity/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/platform/android/MapboxGLAndroidSDKTestActivity/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDKTestActivity/src/main/res/values/strings.xml new file mode 100644 index 0000000000..20dbd72428 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestActivity/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools"> + <string name="mapbox_access_token" tools:ignore="MissingTranslation">pk.eyJ1IjoidG9icnVuIiwiYSI6ImNpajVlajR0cjAwNjN2NmtyY204eWw2eG0ifQ.x3_WEoExNW5Qyv9T3Vj7Mw</string> +</resources>
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java index 5ca00e5d0f..ce41c0b6eb 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/ManualLocationUpdatesActivity.java @@ -35,94 +35,28 @@ public class ManualLocationUpdatesActivity extends AppCompatActivity implements protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_location_manual_update); - - locationEngine = LocationEngineProvider.getBestLocationEngine(this, false); - - FloatingActionButton fabManualUpdate = findViewById(R.id.fabManualLocationChange); - fabManualUpdate.setOnClickListener(v -> { - if (locationComponent != null && locationComponent.getLocationEngine() == null) { - locationComponent.forceLocationUpdate( - Utils.getRandomLocation(LatLngBounds.from(60, 25, 40, -5))); - } - }); - fabManualUpdate.setEnabled(false); - - FloatingActionButton fabToggle = findViewById(R.id.fabToggleManualLocation); - fabToggle.setOnClickListener(v -> { - if (locationComponent != null) { - locationComponent.setLocationEngine(locationComponent.getLocationEngine() == null ? locationEngine : null); - - if (locationComponent.getLocationEngine() == null) { - fabToggle.setImageResource(R.drawable.ic_layers_clear); - fabManualUpdate.setEnabled(true); - fabManualUpdate.setAlpha(1f); - Toast.makeText( - ManualLocationUpdatesActivity.this.getApplicationContext(), - "LocationEngine disabled, use manual updates", - Toast.LENGTH_SHORT).show(); - } else { - fabToggle.setImageResource(R.drawable.ic_layers); - fabManualUpdate.setEnabled(false); - fabManualUpdate.setAlpha(0.5f); - Toast.makeText( - ManualLocationUpdatesActivity.this.getApplicationContext(), - "LocationEngine enabled", - Toast.LENGTH_SHORT).show(); - } - } - }); - mapView = findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); - - if (PermissionsManager.areLocationPermissionsGranted(this)) { - mapView.getMapAsync(this); - } else { - permissionsManager = new PermissionsManager(new PermissionsListener() { - @Override - public void onExplanationNeeded(List<String> permissionsToExplain) { - Toast.makeText(ManualLocationUpdatesActivity.this.getApplicationContext(), - "You need to accept location permissions.", - Toast.LENGTH_SHORT - ).show(); - } - - @Override - public void onPermissionResult(boolean granted) { - if (granted) { - mapView.getMapAsync(ManualLocationUpdatesActivity.this); - } else { - finish(); - } - } - }); - permissionsManager.requestLocationPermissions(this); - } - } - - @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults); - permissionsManager.onRequestPermissionsResult(requestCode, permissions, grantResults); + mapView.getMapAsync(this); } @SuppressLint("MissingPermission") @Override public void onMapReady(@NonNull MapboxMap mapboxMap) { mapboxMap.setStyle(new Style.Builder().fromUrl(Style.MAPBOX_STREETS), style -> { - locationComponent = mapboxMap.getLocationComponent(); - - locationComponent.activateLocationComponent( - LocationComponentActivationOptions - .builder(this, style) - .locationEngine(locationEngine) - .locationEngineRequest(new LocationEngineRequest.Builder(500) - .setFastestInterval(500) - .setPriority(LocationEngineRequest.PRIORITY_HIGH_ACCURACY).build()) - .build()); - - locationComponent.setLocationComponentEnabled(true); - locationComponent.setRenderMode(RenderMode.COMPASS); +// locationComponent = mapboxMap.getLocationComponent(); +// +// locationComponent.activateLocationComponent( +// LocationComponentActivationOptions +// .builder(this, style) +// .locationEngine(locationEngine) +// .locationEngineRequest(new LocationEngineRequest.Builder(500) +// .setFastestInterval(500) +// .setPriority(LocationEngineRequest.PRIORITY_HIGH_ACCURACY).build()) +// .build()); +// +// locationComponent.setLocationComponentEnabled(true); +// locationComponent.setRenderMode(RenderMode.COMPASS); }); } diff --git a/platform/android/settings.gradle b/platform/android/settings.gradle index c0315fed04..f08306ff3e 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', ':MapboxGLAndroidSDKTestActivity'
\ No newline at end of file |