summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2016-07-30 15:58:17 -0400
committerIvo van Dongen <info@ivovandongen.nl>2016-07-30 18:55:50 -0400
commit5c0fa36314c30ccec74d8cdd96d10dfad6722273 (patch)
treedc298f654f180fa131e6ee5dc5ff92a26b942520
parent472ab7442f566e6d2e8f1b67282d8394d0394de6 (diff)
downloadqtlocation-mapboxgl-5c0fa36314c30ccec74d8cdd96d10dfad6722273.tar.gz
[android] #5836 - Added test Acivity to demonstrate the issue
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml8
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimationChainingActivity.java144
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_chaining.xml39
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml28
4 files changed, 212 insertions, 7 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
index 213d886c96..8b9ed2b8a0 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
@@ -90,6 +90,14 @@
android:value="@string/category_camera" />
</activity>
<activity
+ android:name=".activity.camera.CameraAnimationChainingActivity"
+ android:description="@string/description_camera_animation_chaining"
+ android:label="@string/activity_camera_animation_chaining">
+ <meta-data
+ android:name="@string/category"
+ android:value="@string/category_camera" />
+ </activity>
+ <activity
android:name=".activity.camera.CameraPositionActivity"
android:description="@string/description_cameraposition"
android:label="@string/activity_camera_position">
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimationChainingActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimationChainingActivity.java
new file mode 100644
index 0000000000..60e6f7a10e
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/CameraAnimationChainingActivity.java
@@ -0,0 +1,144 @@
+package com.mapbox.mapboxsdk.testapp.activity.camera;
+
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.util.Log;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Toast;
+
+import com.mapbox.mapboxsdk.camera.CameraPosition;
+import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
+import com.mapbox.mapboxsdk.geometry.LatLng;
+import com.mapbox.mapboxsdk.maps.MapView;
+import com.mapbox.mapboxsdk.maps.MapboxMap;
+import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
+import com.mapbox.mapboxsdk.testapp.R;
+
+public class CameraAnimationChainingActivity extends AppCompatActivity {
+ private static final String TAG = CameraAnimationChainingActivity.class.getSimpleName();
+
+ private MapView mapView;
+
+ private boolean cameraState;
+ private static final LatLng LAT_LNG_LONDON_EYE = new LatLng(51.50325, -0.11968);
+ private static final LatLng LAT_LNG_TOWER_BRIDGE = new LatLng(51.50550, -0.07520);
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ Log.i(TAG, String.format("UI Thread id: %s, name %s", Thread.currentThread().getId(), Thread.currentThread().getName()));
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_camera_animation_chaining);
+
+ Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+
+ ActionBar actionBar = getSupportActionBar();
+ if (actionBar != null) {
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ actionBar.setDisplayShowHomeEnabled(true);
+ }
+
+ mapView = (MapView) findViewById(R.id.mapView);
+ mapView.onCreate(savedInstanceState);
+ mapView.getMapAsync(new OnMapReadyCallback() {
+ @Override
+ public void onMapReady(@NonNull final MapboxMap mapboxMap) {
+ mapboxMap.getUiSettings().setAttributionEnabled(false);
+ mapboxMap.getUiSettings().setLogoEnabled(false);
+
+ // handle animate button clicks
+ //noinspection ConstantConditions
+ findViewById(R.id.cameraAnimateButton).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ animateToNextPosition(2);
+ }
+ });
+ }
+ });
+ }
+
+ private void animateToNextPosition(final int iterations) {
+ //Setup the target camera position
+ final CameraPosition cameraPosition = new CameraPosition.Builder()
+ .target(getNextLatLng())
+ .bearing(270)
+ .tilt(20)
+ .build();
+
+ //Create a callback
+ final MapboxMap.CancelableCallback callback = new MapboxMap.CancelableCallback() {
+ @Override
+ public void onCancel() {
+ Log.i(TAG, String.format("Duration onCancel Callback called on Thread id: %s, name %s", Thread.currentThread().getId(), Thread.currentThread().getName()));
+ //Toast.makeText(CameraAnimationChainingActivity.this, "Duration onCancel Callback called.", Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public void onFinish() {
+ Log.i(TAG, String.format("Duration onFinish Callback called on Thread id: %s, name %s", Thread.currentThread().getId(), Thread.currentThread().getName()));
+ //Toast.makeText(CameraAnimationChainingActivity.this, "Duration onFinish Callback called.", Toast.LENGTH_SHORT).show();
+ if (iterations > 0) {
+ animateToNextPosition(iterations - 1);
+ }
+ }
+ };
+
+ mapView.getMapAsync(new OnMapReadyCallback() {
+ @Override
+ public void onMapReady(MapboxMap mapboxMap) {
+ mapboxMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition), 7500, callback);
+ }
+ });
+ }
+
+ private LatLng getNextLatLng() {
+ cameraState = !cameraState;
+ return cameraState ? LAT_LNG_TOWER_BRIDGE : LAT_LNG_LONDON_EYE;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ mapView.onResume();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ mapView.onPause();
+ }
+
+ @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();
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ onBackPressed();
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_chaining.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_chaining.xml
new file mode 100644
index 0000000000..b5f367af02
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_chaining.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <android.support.v7.widget.Toolbar
+ android:id="@+id/toolbar"
+ android:layout_width="match_parent"
+ android:layout_height="?attr/actionBarSize"
+ android:background="@color/primary"
+ android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
+
+ <com.mapbox.mapboxsdk.maps.MapView
+ android:id="@id/mapView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@+id/toolbar"
+ app:center_latitude="51.50325"
+ app:center_longitude="-0.11968"
+ app:zoom="15" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:orientation="horizontal"
+ android:weightSum="3">
+
+ <Button
+ android:id="@+id/cameraAnimateButton"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/button_camera_animate" />
+
+ </LinearLayout>
+</RelativeLayout>
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
index c14e97fb2d..a895286cbf 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
@@ -27,6 +27,7 @@
<!-- Camera -->
<string name="activity_camera_animation_types">Animation Types</string>
+ <string name="activity_camera_animation_chaining">Chained Animations</string>
<string name="activity_camera_zoom">Zoom Methods</string>
<string name="activity_visible_coordinate_bounds">LatLngBounds Method</string>
<string name="activity_camera_position">CameraPosition Method</string>
@@ -58,7 +59,8 @@
<!-- Description -->
<string name="description_user_location_tracking">Tracks the location of the user</string>
- <string name="description_user_location_customization">Customize the location of the user</string>
+ <string name="description_user_location_customization">Customize the location of the user
+ </string>
<string name="description_user_location_dot_color">Customize the user location color</string>
<string name="description_user_location_toggle">Toggle location of the user on and off</string>
<string name="description_custom_layer">Overlay a custom native layer on the map</string>
@@ -72,7 +74,9 @@
<string name="description_info_window">Learn how to handle the InfoWindow</string>
<string name="description_info_window_concurrent">InfoWindow example with multiple open</string>
<string name="description_add_bulk_markers">Add Markers In Bulk to a Map</string>
- <string name="description_camera_animation_types">Showcase the different animation types</string>
+ <string name="description_camera_animation_types">Showcase the different animation types
+ </string>
+ <string name="description_camera_animation_chaining">Showcase chaining animations</string>
<string name="description_visible_bounds">Center the camera around a bounds</string>
<string name="description_dynamic_marker">Update position and icon</string>
<string name="description_map_padding">Map Padding example</string>
@@ -86,10 +90,14 @@
<string name="description_scroll_by">Scroll with pixels in x,y direction</string>
<string name="description_snapshot">Example to make a snapshot of the map</string>
<string name="description_doublemap">2 maps in a view hierarchy</string>
- <string name="description_back_to_map">Restart map view after temporarily leaving to another activity</string>
+ <string name="description_back_to_map">Restart map view after temporarily leaving to another
+ activity
+ </string>
<string name="description_view_marker">Use an Android SDK View as marker</string>
<string name="description_view_marker_scale">Scale a View Marker</string>
- <string name="description_dynamic_info_window_adapter">Learn how to create a dynamic custom InfoWindow</string>
+ <string name="description_dynamic_info_window_adapter">Learn how to create a dynamic custom
+ InfoWindow
+ </string>
<string name="description_location_picker">Use a fixed Marker to select your location</string>
<string name="description_viewpager">Use SupportMapFragments in a ViewPager</string>
<string name="description_navigation_drawer">Test for Navigation Drawer support</string>
@@ -97,8 +105,12 @@
<string name="menuitem_title_concurrent_infowindow">Concurrent Open InfoWindows</string>
<string name="menuitem_title_deselect_markers_on_tap">Deselect Markers On Tap</string>
- <string name="menuitem_title_tracking_mode_dismiss_on_gesture">Dismiss location tracking on gesture</string>
- <string name="menuitem_title_bearing_mode_dismiss_on_gesture">Dismiss bearing tracking on gesture</string>
+ <string name="menuitem_title_tracking_mode_dismiss_on_gesture">Dismiss location tracking on
+ gesture
+ </string>
+ <string name="menuitem_title_bearing_mode_dismiss_on_gesture">Dismiss bearing tracking on
+ gesture
+ </string>
<string name="menuitem_title_reset">Reset</string>
<string name="category">category</string>
@@ -169,7 +181,9 @@
<string name="dialog_camera_position">Animate to new position</string>
- <string name="geocoder_instructions">Tap Map To Geocode Where Black Marker Is Currently Located</string>
+ <string name="geocoder_instructions">Tap Map To Geocode Where Black Marker Is Currently
+ Located
+ </string>
<string name="dynamic_marker_chelsea_title">Chelsea</string>
<string name="dynamic_marker_chelsea_snippet">Stamford Bridge</string>