From 2670130b9f029369c58f7cb9cbd53db71b434bd1 Mon Sep 17 00:00:00 2001
From: Tobrun Van Nuland
Date: Fri, 15 Sep 2017 19:00:17 +0200
Subject: [PATCH] [android] - move strings resources to dedicated files, fixup
simple map activity, fixup double map activity, snapshot activity home button
click fix, add activity titles, remove obsolete navigation drawer activity
---
.../src/main/AndroidManifest.xml | 15 +-
.../MarkerViewsInRectangleActivity.java | 3 +
.../camera/CameraPositionActivity.java | 3 +
.../activity/camera/MaxMinZoomActivity.java | 3 +
.../infowindow/InfoWindowAdapterActivity.java | 3 +
.../maplayout/BottomSheetActivity.java | 3 +
.../activity/maplayout/DebugModeActivity.java | 2 +-
.../activity/maplayout/DoubleMapActivity.java | 16 +-
.../LatLngBoundsForCameraActivity.java | 2 +-
.../maplayout/NavigationDrawerActivity.java | 252 ------------------
.../activity/maplayout/SimpleMapActivity.java | 20 --
.../style/FillExtrusionStyleTestActivity.java | 4 +-
.../userlocation/BaseLocationActivity.java | 3 +
.../CustomLocationEngineActivity.java | 3 +
.../MyLocationToggleActivity.java | 3 +
.../layout/activity_animated_image_source.xml | 16 +-
.../main/res/layout/activity_map_fragment.xml | 15 +-
.../res/layout/activity_navigation_drawer.xml | 33 ---
.../main/res/layout/fragment_double_map.xml | 6 +-
.../src/main/res/values/actions.xml | 94 +++++++
.../src/main/res/values/categories.xml | 17 ++
.../src/main/res/values/descriptions.xml | 63 +++++
.../src/main/res/values/strings.xml | 241 -----------------
.../src/main/res/values/titles.xml | 63 +++++
24 files changed, 295 insertions(+), 588 deletions(-)
delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/NavigationDrawerActivity.java
delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_navigation_drawer.xml
create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/actions.xml
create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/categories.xml
create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml
create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
index 5dcbd268ae6..cefe26b6e56 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
@@ -362,6 +362,9 @@
+
-
-
-
-
+ * The small map is using the `mapbox_enableZMediaOverlay="true"` configuration
+ *
+ */
public class DoubleMapActivity extends AppCompatActivity {
private static final String TAG_FRAGMENT = "map";
@@ -45,11 +50,11 @@ protected void onCreate(Bundle savedInstanceState) {
public void setMapboxMap(MapboxMap map) {
// we need to set mapboxmap on the parent activity,
// for auto-generated ui tests
-
mapboxMap = map;
mapboxMap.setStyleUrl(Style.DARK);
mapboxMap.moveCamera(CameraUpdateFactory.zoomTo(18));
try {
+ mapboxMap.setMyLocationEnabled(true);
TrackingSettings settings = mapboxMap.getTrackingSettings();
settings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW);
} catch (SecurityException securityException) {
@@ -58,6 +63,9 @@ public void setMapboxMap(MapboxMap map) {
}
}
+ /**
+ * Custom fragment containing 2 MapViews.
+ */
public static class DoubleMapFragment extends Fragment {
private DoubleMapActivity activity;
@@ -107,6 +115,7 @@ public void onMapReady(@NonNull MapboxMap mapboxMap) {
uiSettings.setLogoEnabled(false);
try {
+ mapboxMap.setMyLocationEnabled(true);
TrackingSettings settings = mapboxMap.getTrackingSettings();
settings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW);
} catch (SecurityException securityException) {
@@ -123,9 +132,6 @@ public void onMapClick(@NonNull LatLng point) {
});
}
});
-
- SurfaceView surfaceViewMini = (SurfaceView) mapViewMini.findViewById(R.id.surfaceView);
- surfaceViewMini.setZOrderMediaOverlay(true);
}
@Override
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LatLngBoundsForCameraActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LatLngBoundsForCameraActivity.java
index 9ac87deb0d9..24a167e260b 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LatLngBoundsForCameraActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LatLngBoundsForCameraActivity.java
@@ -16,7 +16,7 @@
import com.mapbox.mapboxsdk.testapp.R;
/**
- * Test Activity showcasing restricting user gestures to a bounds around Iceland.
+ * Test activity showcasing restricting user gestures to a bounds around Iceland.
*/
public class LatLngBoundsForCameraActivity extends AppCompatActivity implements OnMapReadyCallback {
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/NavigationDrawerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/NavigationDrawerActivity.java
deleted file mode 100644
index 888482b2197..00000000000
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/NavigationDrawerActivity.java
+++ /dev/null
@@ -1,252 +0,0 @@
-package com.mapbox.mapboxsdk.testapp.activity.maplayout;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.content.SharedPreferences;
-import android.content.res.Configuration;
-import android.os.Bundle;
-import android.preference.PreferenceManager;
-import android.support.design.widget.Snackbar;
-import android.support.v4.widget.DrawerLayout;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.ActionBarDrawerToggle;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-import com.mapbox.mapboxsdk.camera.CameraPosition;
-import com.mapbox.mapboxsdk.constants.Style;
-import com.mapbox.mapboxsdk.geometry.LatLng;
-import com.mapbox.mapboxsdk.maps.MapFragment;
-import com.mapbox.mapboxsdk.maps.MapboxMap;
-import com.mapbox.mapboxsdk.maps.MapboxMapOptions;
-import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
-import com.mapbox.mapboxsdk.testapp.R;
-
-public class NavigationDrawerActivity extends AppCompatActivity {
-
- private boolean firstStyle = true;
- private MapboxMap mapboxMap;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_navigation_drawer);
-
- Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
- setSupportActionBar(toolbar);
-
- NavigationDrawerFragment navigationDrawerFragment;
-
- getFragmentManager()
- .beginTransaction()
- .add(R.id.navigation_drawer, navigationDrawerFragment = new NavigationDrawerFragment())
- .commit();
-
- navigationDrawerFragment.setUp(this,
- R.id.navigation_drawer,
- (DrawerLayout) findViewById(R.id.drawer_layout),
- getSupportActionBar());
- }
-
- public void onNavigationDrawerItemSelected(int position) {
- // update the main content by replacing fragments
- switch (position) {
- case 0:
- // options
- MapboxMapOptions options = new MapboxMapOptions();
- options.styleUrl(firstStyle ? Style.LIGHT : Style.SATELLITE);
- options.camera(new CameraPosition.Builder()
- .target(new LatLng(39.913271, 116.413891))
- .zoom(12)
- .build());
-
- // fragment
- MapFragment mapFragment = MapFragment.newInstance(options);
- FragmentManager fragmentManager = getFragmentManager();
- fragmentManager.beginTransaction()
- .replace(R.id.container, mapFragment)
- .commit();
-
- // get callback when map is ready
- mapFragment.getMapAsync(new OnMapReadyCallback() {
- @Override
- public void onMapReady(MapboxMap map) {
- mapboxMap = map;
- }
- });
-
- firstStyle = !firstStyle;
- break;
- case 1:
- Snackbar.make(
- findViewById(android.R.id.content),
- "Hello from snackbar",
- Snackbar.LENGTH_LONG)
- .show();
- break;
- }
- }
-
- public static class NavigationDrawerFragment extends Fragment {
-
- private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position";
- private static final String PREF_USER_LEARNED_DRAWER = "navigation_drawer_learned";
-
- private ActionBarDrawerToggle drawerToggle;
-
- private DrawerLayout drawerLayout;
- private ListView drawerListView;
- private View fragmentContainerView;
-
- private int currentSelectedPosition = 0;
- private boolean fromSavedInstanceState;
- private boolean userLearnedDrawer;
-
- public NavigationDrawerFragment() {
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
- userLearnedDrawer = sp.getBoolean(PREF_USER_LEARNED_DRAWER, false);
-
- if (savedInstanceState != null) {
- currentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION);
- fromSavedInstanceState = true;
- }
- selectItem(currentSelectedPosition);
- }
-
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- setHasOptionsMenu(true);
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- drawerListView = (ListView) inflater.inflate(
- R.layout.drawer_navigation_drawer, container, false);
- drawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView> parent, View view, int position, long id) {
- selectItem(position);
- }
- });
- drawerListView.setAdapter(new ArrayAdapter<>(
- inflater.getContext(),
- android.R.layout.simple_list_item_activated_1,
- android.R.id.text1,
- new String[] {
- "Different style",
- "Show snackbar"
- }));
- drawerListView.setItemChecked(currentSelectedPosition, true);
- return drawerListView;
- }
-
- /**
- * Users of this fragment must call this method to set up the navigation drawer interactions.
- *
- * @param fragmentId The android:id of this fragment in its activity's layout.
- * @param drawerLayout The DrawerLayout containing this fragment's UI.
- */
- public void setUp(Activity activity, int fragmentId, DrawerLayout drawerLayout, ActionBar actionBar) {
- fragmentContainerView = activity.findViewById(fragmentId);
- this.drawerLayout = drawerLayout;
- // drawerLayout.setScrimColor(Color.TRANSPARENT);
-
- actionBar.setDisplayHomeAsUpEnabled(true);
- actionBar.setHomeButtonEnabled(true);
-
- drawerToggle = new ActionBarDrawerToggle(
- activity,
- NavigationDrawerFragment.this.drawerLayout,
- R.string.navigation_drawer_open,
- R.string.navigation_drawer_close
- ) {
- @Override
- public void onDrawerClosed(View drawerView) {
- super.onDrawerClosed(drawerView);
- if (!isAdded()) {
- return;
- }
- getActivity().invalidateOptionsMenu();
- }
-
- @Override
- public void onDrawerOpened(View drawerView) {
- super.onDrawerOpened(drawerView);
- if (!isAdded()) {
- return;
- }
-
- if (!userLearnedDrawer) {
- userLearnedDrawer = true;
- SharedPreferences sp = PreferenceManager
- .getDefaultSharedPreferences(getActivity());
- sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).apply();
- }
- getActivity().invalidateOptionsMenu();
- }
- };
-
- if (!userLearnedDrawer && !fromSavedInstanceState) {
- this.drawerLayout.openDrawer(fragmentContainerView);
- }
- this.drawerLayout.post(new Runnable() {
- @Override
- public void run() {
- drawerToggle.syncState();
- }
- });
- this.drawerLayout.setDrawerListener(drawerToggle);
- }
-
- private void selectItem(int position) {
- currentSelectedPosition = position;
- if (drawerListView != null) {
- drawerListView.setItemChecked(position, true);
- }
- if (drawerLayout != null) {
- drawerLayout.closeDrawer(fragmentContainerView);
- }
-
- Activity activity = getActivity();
- if (activity != null && activity instanceof NavigationDrawerActivity) {
- NavigationDrawerActivity navActivity = (NavigationDrawerActivity) activity;
- navActivity.onNavigationDrawerItemSelected(position);
- }
- }
-
- @Override
- public void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putInt(STATE_SELECTED_POSITION, currentSelectedPosition);
- }
-
- @Override
- public void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- drawerToggle.onConfigurationChanged(newConfig);
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- if (drawerToggle.onOptionsItemSelected(item)) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- }
-}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java
index badb6718cf9..8f8a5af3cc1 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/SimpleMapActivity.java
@@ -1,18 +1,11 @@
package com.mapbox.mapboxsdk.testapp.activity.maplayout;
import android.os.Bundle;
-import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
-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.maps.Projection;
import com.mapbox.mapboxsdk.testapp.R;
-import timber.log.Timber;
-
/**
* Test activity showcasing a simple MapView without any MapboxMap interaction.
*/
@@ -27,19 +20,6 @@ protected void onCreate(Bundle savedInstanceState) {
mapView = (MapView) findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
- mapView.getMapAsync(new OnMapReadyCallback() {
- @Override
- public void onMapReady(MapboxMap mapboxMap) {
- final Projection projection = mapboxMap.getProjection();
-
- mapboxMap.setOnMapClickListener(new MapboxMap.OnMapClickListener() {
- @Override
- public void onMapClick(@NonNull LatLng point) {
- Timber.e(projection.getVisibleRegion().toString());
- }
- });
- }
- });
}
@Override
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/FillExtrusionStyleTestActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/FillExtrusionStyleTestActivity.java
index 1ff0b0e8e1d..24914fcbb28 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/FillExtrusionStyleTestActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/FillExtrusionStyleTestActivity.java
@@ -1,6 +1,5 @@
package com.mapbox.mapboxsdk.testapp.activity.style;
-
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
@@ -9,6 +8,9 @@
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
import com.mapbox.mapboxsdk.testapp.R;
+/**
+ * Test activity used for instrumentation tests of fill extrusion.
+ */
public class FillExtrusionStyleTestActivity extends AppCompatActivity {
public MapView mapView;
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/BaseLocationActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/BaseLocationActivity.java
index f41e5e38f0f..71b8115d2e8 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/BaseLocationActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/BaseLocationActivity.java
@@ -14,6 +14,9 @@
import java.util.List;
+/**
+ * Base class for location aware activities.
+ */
public abstract class BaseLocationActivity extends AppCompatActivity implements PermissionsListener {
private PermissionsManager permissionsManager;
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/CustomLocationEngineActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/CustomLocationEngineActivity.java
index b0ea9c608bb..e954b73f8dd 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/CustomLocationEngineActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/CustomLocationEngineActivity.java
@@ -12,6 +12,9 @@
import com.mapbox.mapboxsdk.maps.OnMapReadyCallback;
import com.mapbox.mapboxsdk.testapp.R;
+/**
+ * Test activity showcasing using a custom location engine.
+ */
public class CustomLocationEngineActivity extends BaseLocationActivity {
private MapView mapView;
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationToggleActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationToggleActivity.java
index d465d676f73..718c10c7cb2 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationToggleActivity.java
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationToggleActivity.java
@@ -11,6 +11,9 @@
import timber.log.Timber;
+/**
+ * Test activity showcasing toggling the user location on the map.
+ */
public class MyLocationToggleActivity extends BaseLocationActivity {
private MapView mapView;
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animated_image_source.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animated_image_source.xml
index cfc923902ca..26b40b9ab62 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animated_image_source.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animated_image_source.xml
@@ -5,13 +5,13 @@
android:layout_height="match_parent"
android:orientation="vertical">
-
+
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_fragment.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_fragment.xml
index 43fa8fb9956..419660b36ae 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_fragment.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_fragment.xml
@@ -1,17 +1,8 @@
-
-
-
-
-
+ android:layout_height="match_parent"/>
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_navigation_drawer.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_navigation_drawer.xml
deleted file mode 100644
index 26a71bc5688..00000000000
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_navigation_drawer.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml
index ecfa1372f62..3cf2fbea55b 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml
@@ -1,7 +1,8 @@
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ xmlns:maps="http://schemas.android.com/apk/res-auto">
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/actions.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/actions.xml
new file mode 100644
index 00000000000..6c17149a964
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/actions.xml
@@ -0,0 +1,94 @@
+
+
+ Concurrent Open InfoWindows
+ Deselect Markers On Tap
+ Dismiss location tracking on gesture
+ Dismiss bearing tracking on gesture
+ Reset
+ Enable rotate gestures
+ Enable scroll gestures
+ Change to LOST location source
+ Change to mock location source
+ Reset location source to null
+ Move
+ Ease
+ Animate
+ Default
+ Tint dot
+ Tint ring
+ tran
+ Open dialog
+ Download region
+ List regions
+ Remove polylines
+ Change visibility
+ Change alpha
+ Change points
+ Change color
+ Change holes
+ Change width
+ "Click the map to calculate the distance"
+ Move the map by x/y pixels
+ Open navigation drawer
+ Close navigation drawer
+ X: %1$d
+ Y: %1$d
+ Animate to new position
+ Chelsea
+ Stamford Bridge
+ Arsenal
+ Emirates Stadium
+ Zoom: %.2f
+ ViewCache size %.2f
+ Latitude
+ -180
+ Longitude
+ Zoom
+ 18
+ Bearing
+ 0
+ Tilt
+ No Results
+ Change intensity
+ Change Anchor
+ Amount of markers
+ Update layer (invalidate)
+ Red
+ Green
+ Blue
+ Add an exponential zoom function
+ Add an interval zoom function
+ Add a categorical source function
+ Add an exponential source function
+ Add an identity source function
+ Add an interval source function
+ Add a composite, categorical function
+ Add a composite, exponential function
+ Add a composite, interval function
+ My Location Tracking
+ Bangalore
+ List all layers in the style
+ List all sources in the style
+ Color the water
+ Set background opacity
+ Set road symbol placement to Point
+ Set layer visibility to false
+ Add a parks layer
+ Add a dynamic GeoJSON source
+ Remove buildings layer
+ Add a terrain layer
+ Add a satellite layer
+ Change the water color on zoom
+ Custom tiles
+ Apply filtered fill
+ Apply filtered line
+ Apply numeric fill filter
+ Toggle text size
+ Toggle text field contents
+ Toggle text font
+ Zoom in
+ Zoom out
+ Zoom by 2
+ Zoom to point
+ Zoom to 4
+
\ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/categories.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/categories.xml
new file mode 100644
index 00000000000..9ade28ae8d3
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/categories.xml
@@ -0,0 +1,17 @@
+
+
+ category
+ _Basic
+ Annotation
+ Camera
+ Custom Layer
+ Fragment
+ Image Generator
+ Info Window
+ Map Layout
+ Offline
+ User Location
+ Styling
+ Features
+ Storage
+
\ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml
new file mode 100644
index 00000000000..976d2c00257
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml
@@ -0,0 +1,63 @@
+
+
+ Tracks the location of the user
+ Customize the location of the user
+ Customize the user location color
+ Toggle location of the user on and off
+ Customize location engine
+ Overlay a custom native layer on the map
+ Learn how to create a custom InfoWindow
+ CameraPosition capabilities
+ Showcase MapFragment
+ Showcase SupportMapFragment
+ Activity with multiple maps on screen
+ Add marker to map on long press
+ Different types of zoom methods
+ Configure a max and min zoomlevel
+ Learn how to handle the InfoWindow
+ Add Markers In Bulk to a Map
+ Showcase the different animation types
+ Center the camera around a bounds
+ Update position and icon
+ Map Padding example
+ Debug Mode
+ Offline Map example
+ Update metadata example
+ Delete region example
+ Animate the position change of a marker
+ Add a polyline to a map
+ Add a polygon to a map
+ Scroll with pixels in x,y direction
+ Example to make a snapshot of the map
+ 2 maps in a view hierarchy
+ Use an Android SDK View as marker
+ Learn how to create a dynamic custom InfoWindow
+ Use SupportMapFragments in a ViewPager
+ Adopt the map style on the fly
+ Use functions to change the map appearance
+ Manipulate symbols at runtime
+ Use a custom sprite in a Symbol Layer
+ Use GeoJson sources and dynamic layers to cluster information
+ Use realtime GeoJSON data streams to move a symbol on your map
+ Shows how to print a map
+ Query rendered feature properties on click
+ Count all rendered features in box
+ Count all rendered symbols in box
+ Hightligh buildings in box
+ Query source for features
+ Shows a simple map
+ Logs map change events to Logcat
+ Changes visibility of map and view parent
+ Change Symbol icon when zoom levels changes
+ Use a local file as the style
+ Display a map inside a dialog fragment
+ Marker Views within a rectangle
+ Show bus stops and route in Singapore
+ Transform urls on the fly
+ Limit viewport to Iceland
+ Shows how to add 3D extruded shapes
+ Shows how to show 3D extruded buildings
+ Shows how to animate georeferenced images
+ Show 2 MapView on screen with a bottom sheet
+ Show a static bitmap taken with the MapSnapshotter
+
\ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
index b1f354aad56..15a916fac90 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml
@@ -1,245 +1,4 @@
Mapbox Android SDK TestApp
-
-
- Support Map Fragment
- Map Fragment
- Multiple Maps on Screen
- Add Markers In Bulk
- Animated Markers
- Dynamic Marker
- Polyline
- Polygon
- Press Map For Marker
- View Marker API
- Zoom function with SymbolLayer
- Standard InfoWindow
- Custom InfoWindow
- Custom Dynamic InfoWindow
- Animation Types
- Zoom Methods
- LatLngBounds Method
- CameraPosition Method
- Scroll By Method
- Double Map Activity
- Snapshot Activity
- User tracking mode
- User location drawable
- User location tint color
- User location toggle
- Custom location engine
- Custom Layer
- Map Padding
- Debug Mode
- Offline Map
- Update metadata Map
- Delete region
- Min/Max Zoom
- ViewPager
- Runtime Style
- Data Driven Style
- Circle layer
- Local Style file
- GeoJson Clustering
- Add live realtime data
- Print a map
- Query feature properties
- Count features in box
- Count symbols in box
- Highlight features in box
- Query source features
- Symbols
- Add Custom Sprite
- Android SDK View integration
- Simple Map
- Map Change Events
- Visibility Map
- Dialog with map
- Marker views in rectangle
- Url transform
- Restrict camera to a bounds
- Fill extrusions
- Building layer
- Animated Image Source
- Bottom sheet
- Map Snapshotter
-
-
- Tracks the location of the user
- Customize the location of the user
- Customize the user location color
- Toggle location of the user on and off
- Customize location engine
- Overlay a custom native layer on the map
- Learn how to create a custom InfoWindow
- CameraPosition capabilities
- Showcase MapFragment
- Showcase SupportMapFragment
- Activity with multiple maps on screen
- Add marker to map on long press
- Different types of zoom methods
- Configure a max and min zoomlevel
- Learn how to handle the InfoWindow
- Add Markers In Bulk to a Map
- Showcase the different animation types
- Center the camera around a bounds
- Update position and icon
- Map Padding example
- Debug Mode
- Offline Map example
- Update metadata example
- Delete region example
- Animate the position change of a marker
- Add a polyline to a map
- Add a polygon to a map
- Scroll with pixels in x,y direction
- Example to make a snapshot of the map
- 2 maps in a view hierarchy
- Use an Android SDK View as marker
- Learn how to create a dynamic custom InfoWindow
- Use SupportMapFragments in a ViewPager
- Adopt the map style on the fly
- Use functions to change the map appearance
- Manipulate symbols at runtime
- Use a custom sprite in a Symbol Layer
- Use GeoJson sources and dynamic layers to cluster information
- Use realtime GeoJSON data streams to move a symbol on your map
- Shows how to print a map
- Test animation of Android SDK View components
- Query rendered feature properties on click
- Count all rendered features in box
- Count all rendered symbols in box
- Hightligh buildings in box
- Query source for features
- Shows a simple map
- Logs map change events to Logcat
- Changes visibility of map and view parent
- Change Symbol icon when zoom levels changes
- Use a local file as the style
- Display a map inside a dialog fragment
- Marker Views within a rectangle
- Show bus stops and route in Singapore
- Transform urls on the fly
- Limit viewport to Iceland
- Shows how to add 3D extruded shapes
- Shows how to show 3D extruded buildings
- Shows how to animate georeferenced images
- Show 2 MapView on screen with a bottom sheet
- Show a static bitmap taken with the MapSnapshotter
-
-
- category
- _Basic
- Annotation
- Camera
- Custom Layer
- Fragment
- Image Generator
- Info Window
- Map Layout
- Offline
- User Location
- Styling
- Features
- Storage
-
-
- Remove polylines
- Change visibility
- Change alpha
- Change points
- Change color
- Change holes
- Change width
- "Click the map to calculate the distance"
- Move the map by x/y pixels
-
-
- Concurrent Open InfoWindows
- Deselect Markers On Tap
- Dismiss location tracking on gesture
- Dismiss bearing tracking on gesture
- Reset
- Enable rotate gestures
- Enable scroll gestures
- Change to LOST location source
- Change to mock location source
- Reset location source to null
-
-
- Move
- Ease
- Animate
- Default
- Tint dot
- Tint ring
- tran
- Open dialog
- Download region
- List regions
-
-
- Open navigation drawer
- Close navigation drawer
- X: %1$d
- Y: %1$d
- Animate to new position
- Chelsea
- Stamford Bridge
- Arsenal
- Emirates Stadium
- Zoom: %.2f
- ViewCache size %.2f
- Latitude
- -180
- Longitude
- Zoom
- 18
- Bearing
- 0
- Tilt
- No Results
- Change intensity
- Change Anchor
- Amount of markers
- Update layer (invalidate)
- Red
- Green
- Blue
- Add an exponential zoom function
- Add an interval zoom function
- Add a categorical source function
- Add an exponential source function
- Add an identity source function
- Add an interval source function
- Add a composite, categorical function
- Add a composite, exponential function
- Add a composite, interval function
- My Location Tracking
- Bangalore
- List all layers in the style
- List all sources in the style
- Color the water
- Set background opacity
- Set road symbol placement to Point
- Set layer visibility to false
- Add a parks layer
- Add a dynamic GeoJSON source
- Remove buildings layer
- Add a terrain layer
- Add a satellite layer
- Change the water color on zoom
- Custom tiles
- Apply filtered fill
- Apply filtered line
- Apply numeric fill filter
- Toggle text size
- Toggle text field contents
- Toggle text font
- Zoom in
- Zoom out
- Zoom by 2
- Zoom to point
- Zoom to 4
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml
new file mode 100644
index 00000000000..da838bf61bc
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml
@@ -0,0 +1,63 @@
+
+
+ Support Map Fragment
+ Map Fragment
+ Multiple Maps on Screen
+ Add Markers In Bulk
+ Animated Markers
+ Dynamic Marker
+ Polyline
+ Polygon
+ Press Map For Marker
+ View Marker API
+ Zoom function with SymbolLayer
+ Standard InfoWindow
+ Custom InfoWindow
+ Custom Dynamic InfoWindow
+ Animation Types
+ Zoom Methods
+ LatLngBounds Method
+ CameraPosition Method
+ Scroll By Method
+ Double Map Activity
+ Snapshot Activity
+ User tracking mode
+ User location drawable
+ User location tint color
+ User location toggle
+ Custom location engine
+ Custom Layer
+ Map Padding
+ Debug Mode
+ Offline Map
+ Update metadata Map
+ Delete region
+ Min/Max Zoom
+ ViewPager
+ Runtime Style
+ Data Driven Style
+ Circle layer
+ Local Style file
+ GeoJson Clustering
+ Add live realtime data
+ Print a map
+ Query feature properties
+ Count features in box
+ Count symbols in box
+ Highlight features in box
+ Query source features
+ Symbols
+ Add Custom Sprite
+ Simple Map
+ Map Change Events
+ Visibility Map
+ Dialog with map
+ Marker views in rectangle
+ Url transform
+ Restrict camera to a bounds
+ Fill extrusions
+ Building layer
+ Animated Image Source
+ Bottom sheet
+ Map Snapshotter
+
\ No newline at end of file