From 7ff074889e826f766028ba582beb677b39d16bec Mon Sep 17 00:00:00 2001 From: Tobrun Date: Thu, 24 Mar 2016 13:11:50 +0100 Subject: [android] #4365 - enforce best practices map startup --- .../testapp/espresso/MapboxMapActivityTest.java | 1 - .../src/main/AndroidManifest.xml | 8 -- .../testapp/activity/AnimatedMarkerActivity.java | 2 - .../testapp/activity/BulkMarkerActivity.java | 20 ++-- .../testapp/activity/CoordinateChangeActivity.java | 2 - .../testapp/activity/GeocoderActivity.java | 11 -- .../testapp/activity/LatLngBoundsActivity.java | 3 +- .../testapp/activity/MapboxMapActivity.java | 113 --------------------- .../testapp/activity/MaxMinZoomActivity.java | 45 +------- .../testapp/activity/PressForMarkerActivity.java | 38 ++++--- .../testapp/activity/ScrollByActivity.java | 5 - .../res/layout/activity_animate_coordinate.xml | 3 + .../main/res/layout/activity_animated_marker.xml | 3 + .../src/main/res/layout/activity_geocoder.xml | 6 +- .../src/main/res/layout/activity_marker_bulk.xml | 6 +- .../src/main/res/layout/activity_maxmin_zoom.xml | 12 ++- .../src/main/res/layout/activity_scroll_by.xml | 5 + 17 files changed, 63 insertions(+), 220 deletions(-) delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/MapboxMapActivity.java diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/MapboxMapActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/MapboxMapActivityTest.java index df089656ab..dffb809548 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/MapboxMapActivityTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/MapboxMapActivityTest.java @@ -5,7 +5,6 @@ import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.LargeTest; -import com.mapbox.mapboxsdk.testapp.activity.MapboxMapActivity; import com.mapbox.mapboxsdk.testapp.R; import org.junit.Before; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index 71823d2bf3..835353e3bb 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -23,14 +23,6 @@ - - - spinnerAdapter = ArrayAdapter.createFromResource(actionBar.getThemedContext(), R.array.bulk_marker_list, android.R.layout.simple_spinner_item); - spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - Spinner spinner = (Spinner) findViewById(R.id.spinner); - spinner.setAdapter(spinnerAdapter); - spinner.setOnItemSelectedListener(BulkMarkerActivity.this); + + if (actionBar != null) { + ArrayAdapter spinnerAdapter = ArrayAdapter.createFromResource(actionBar.getThemedContext(), R.array.bulk_marker_list, android.R.layout.simple_spinner_item); + spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + Spinner spinner = (Spinner) findViewById(R.id.spinner); + spinner.setAdapter(spinnerAdapter); + spinner.setOnItemSelectedListener(BulkMarkerActivity.this); + } } }); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/CoordinateChangeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/CoordinateChangeActivity.java index 55481a7e38..22c50b284d 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/CoordinateChangeActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/CoordinateChangeActivity.java @@ -46,8 +46,6 @@ public class CoordinateChangeActivity extends AppCompatActivity { @Override public void onMapReady(@NonNull MapboxMap mapboxMap) { mMapboxMap = mapboxMap; - mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(getNextLatLng(), 16)); - UiSettings uiSettings = mapboxMap.getUiSettings(); uiSettings.setCompassEnabled(false); } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/GeocoderActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/GeocoderActivity.java index 96334c62cb..4c8bd3b700 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/GeocoderActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/GeocoderActivity.java @@ -39,7 +39,6 @@ import retrofit.Retrofit; public class GeocoderActivity extends AppCompatActivity { private static final String LOG_TAG = "GeocoderActivity"; - private static final LatLng DC_DUPONT_CIRCLE = new LatLng(38.90962, -77.04341); private MapView mapView; private TextView textView; @@ -79,16 +78,6 @@ public class GeocoderActivity extends AppCompatActivity { final int width = mapView.getMeasuredWidth(); final int height = mapView.getMeasuredHeight(); - // Camera position - mapboxMap.setCameraPosition( - new CameraPosition.Builder() - .target(DC_DUPONT_CIRCLE) - .zoom(15) - .bearing(0) - .tilt(0) - .build() - ); - // Click listener mapboxMap.setOnMapClickListener(new MapboxMap.OnMapClickListener() { @Override diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/LatLngBoundsActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/LatLngBoundsActivity.java index b9ebfa675c..f321da28aa 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/LatLngBoundsActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/LatLngBoundsActivity.java @@ -49,7 +49,6 @@ public class LatLngBoundsActivity extends AppCompatActivity { mMapView.getMapAsync(new OnMapReadyCallback() { @Override public void onMapReady(@NonNull final MapboxMap mapboxMap) { - mapboxMap.setStyle(Style.DARK); UiSettings uiSettings = mapboxMap.getUiSettings(); uiSettings.setAllGesturesEnabled(false); @@ -74,7 +73,7 @@ public class LatLngBoundsActivity extends AppCompatActivity { int padding = (int) getResources().getDimension(R.dimen.coordinatebounds_margin); // Move camera to the bounds with padding - mapboxMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, padding)); + mapboxMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, padding)); // Call mapboxMap.getProjection().getVisibleRegion().latLngBounds to retrieve the bounds Log.v(MapboxConstants.TAG, mapboxMap.getProjection().getVisibleRegion().latLngBounds.toString()); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/MapboxMapActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/MapboxMapActivity.java deleted file mode 100644 index c6b1545dfe..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/MapboxMapActivity.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.activity; - -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.design.widget.Snackbar; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; -import android.view.MenuItem; - -import com.mapbox.mapboxsdk.camera.CameraPosition; -import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.constants.Style; -import com.mapbox.mapboxsdk.testapp.R; -import com.mapbox.mapboxsdk.testapp.utils.ApiAccess; -import com.mapbox.mapboxsdk.maps.MapView; - -public class MapboxMapActivity extends AppCompatActivity { - - private MapView mMapView; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_mapboxmap); - - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setDisplayShowHomeEnabled(true); - } - - mMapView = (MapView) findViewById(R.id.mapView); - mMapView.setAccessToken(ApiAccess.getToken(this)); - mMapView.setStyle(Style.SATELLITE_STREETS); - mMapView.onCreate(savedInstanceState); - - mMapView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { - mapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition( - new CameraPosition.Builder() - .target(new LatLng(43.876550, -103.454791)) - .zoom(14) - .build())); - } - }); - - Snackbar.make(findViewById(android.R.id.content), - "Demo MapboxMap API", - Snackbar.LENGTH_INDEFINITE).show(); - } - - @Override - protected void onStart() { - super.onStart(); - mMapView.onStart(); - } - - @Override - public void onResume() { - super.onResume(); - mMapView.onResume(); - } - - @Override - public void onPause() { - super.onPause(); - mMapView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mMapView.onStop(); - } - - @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - mMapView.onSaveInstanceState(outState); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mMapView.onDestroy(); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mMapView.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/java/com/mapbox/mapboxsdk/testapp/activity/MaxMinZoomActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/MaxMinZoomActivity.java index a7116c0a37..6adbfe3002 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/MaxMinZoomActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/MaxMinZoomActivity.java @@ -1,27 +1,20 @@ package com.mapbox.mapboxsdk.testapp.activity; -import android.graphics.Point; 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.view.Menu; import android.view.MenuItem; -import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; -import com.mapbox.mapboxsdk.constants.Style; -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.UiSettings; import com.mapbox.mapboxsdk.testapp.R; -import com.mapbox.mapboxsdk.testapp.utils.ApiAccess; public class MaxMinZoomActivity extends AppCompatActivity { - private MapboxMap mMapboxMap; private MapView mMapView; @Override @@ -38,60 +31,26 @@ public class MaxMinZoomActivity extends AppCompatActivity { actionBar.setDisplayShowHomeEnabled(true); } - mMapView = (MapView) findViewById(R.id.manualZoomMapView); - mMapView.setAccessToken(ApiAccess.getToken(this)); - mMapView.setStyle(Style.SATELLITE_STREETS); + mMapView = (MapView) findViewById(R.id.mapView); mMapView.onCreate(savedInstanceState); mMapView.getMapAsync(new OnMapReadyCallback() { @Override public void onMapReady(@NonNull final MapboxMap mapboxMap) { - mMapboxMap = mapboxMap; - UiSettings uiSettings = mapboxMap.getUiSettings(); uiSettings.setMinZoom(3); uiSettings.setMaxZoom(5); - - mMapboxMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(-1.063510, 32.895425))); } }); } - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.menu_zoom, menu); - return true; - } - @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { - case android.R.id.home: onBackPressed(); return true; - - case R.id.action_zoom_in: - mMapboxMap.animateCamera(CameraUpdateFactory.zoomIn()); - return true; - - case R.id.action_zoom_out: - mMapboxMap.animateCamera(CameraUpdateFactory.zoomOut()); - return true; - - case R.id.action_zoom_by: - mMapboxMap.animateCamera(CameraUpdateFactory.zoomBy(2)); - return true; - case R.id.action_zoom_to: - mMapboxMap.animateCamera(CameraUpdateFactory.zoomTo(2)); - return true; - - case R.id.action_zoom_to_point: - mMapboxMap.animateCamera(CameraUpdateFactory.zoomBy(12, new Point(100, 100))); - return true; - - default: - return super.onOptionsItemSelected(item); } + return false; } @Override diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/PressForMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/PressForMarkerActivity.java index 5aa7423fb3..fd82fb0eb7 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/PressForMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/PressForMarkerActivity.java @@ -2,6 +2,7 @@ package com.mapbox.mapboxsdk.testapp.activity; import android.graphics.PointF; import android.os.Bundle; +import android.os.Parcelable; import android.support.annotation.NonNull; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; @@ -14,6 +15,7 @@ import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.annotations.MarkerOptions; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapboxMapOptions; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.testapp.R; import com.mapbox.mapboxsdk.testapp.utils.ApiAccess; @@ -21,6 +23,7 @@ import com.mapbox.mapboxsdk.maps.MapView; import java.text.DecimalFormat; import java.util.ArrayList; +import java.util.List; public class PressForMarkerActivity extends AppCompatActivity implements MapboxMap.OnMapLongClickListener { @@ -29,7 +32,7 @@ public class PressForMarkerActivity extends AppCompatActivity implements MapboxM private MapView mMapView; private MapboxMap mMapboxMap; - private ArrayList mMarkerList; + private List mMarkerList; @Override protected void onCreate(Bundle savedInstanceState) { @@ -45,30 +48,37 @@ public class PressForMarkerActivity extends AppCompatActivity implements MapboxM actionBar.setDisplayShowHomeEnabled(true); } - // Adding MapView programmatically - mMapView = new MapView(this); - mMapView.setAccessToken(ApiAccess.getToken(this)); - mMapView.setStyle(Style.EMERALD); - mMapView.onCreate(savedInstanceState); + // Initial MapboxMap configuration + MapboxMapOptions options = new MapboxMapOptions(); + options.accessToken(getString(R.string.mapbox_access_token)); + options.styleUrl(Style.EMERALD); + options.camera(new CameraPosition.Builder() + .target(new LatLng(45.1855569, 5.7215506)) + .zoom(11) + .build()); + + // Create MapView programmatically + mMapView = new MapView(this, options); + + // Add MapView to ViewGroup ((ViewGroup) findViewById(R.id.activity_container)).addView(mMapView); + // Lifecycle method + mMapView.onCreate(savedInstanceState); + + // Handle saved state if (savedInstanceState != null) { mMarkerList = savedInstanceState.getParcelableArrayList(STATE_MARKER_LIST); - }else{ + } else { mMarkerList = new ArrayList<>(); } + // Get MapboxMap mMapView.getMapAsync(new OnMapReadyCallback() { @Override public void onMapReady(@NonNull MapboxMap mapboxMap) { mMapboxMap = mapboxMap; - // set camera - mapboxMap.setCameraPosition(new CameraPosition.Builder() - .target(new LatLng(45.1855569, 5.7215506)) - .zoom(11) - .build()); - // add markers mapboxMap.addMarkers(mMarkerList); @@ -115,7 +125,7 @@ public class PressForMarkerActivity extends AppCompatActivity implements MapboxM protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mMapView.onSaveInstanceState(outState); - outState.putParcelableArrayList(STATE_MARKER_LIST, mMarkerList); + outState.putParcelableArrayList(STATE_MARKER_LIST, (ArrayList) mMarkerList); } @Override diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/ScrollByActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/ScrollByActivity.java index c506eec3f5..40a84e5f30 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/ScrollByActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/ScrollByActivity.java @@ -53,8 +53,6 @@ public class ScrollByActivity extends AppCompatActivity { mMapView = (MapView) findViewById(R.id.mapView); mMapView.setTag(true); - mMapView.setAccessToken(ApiAccess.getToken(this)); - mMapView.setStyleUrl(Style.MAPBOX_STREETS); mMapView.onCreate(savedInstanceState); mMapView.getMapAsync(new OnMapReadyCallback() { @Override @@ -63,9 +61,6 @@ public class ScrollByActivity extends AppCompatActivity { uiSettings.setLogoEnabled(false); uiSettings.setAttributionEnabled(false); - LatLng grenada = new LatLng(37.176546, -3.599007); - mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(grenada, 16)); - FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setColorFilter(ContextCompat.getColor(ScrollByActivity.this, R.color.primary)); fab.setOnClickListener(new View.OnClickListener() { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animate_coordinate.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animate_coordinate.xml index 73592448b2..c012c2a6db 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animate_coordinate.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_animate_coordinate.xml @@ -25,6 +25,9 @@ \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_geocoder.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_geocoder.xml index d93a6d1eb5..cce6883541 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_geocoder.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_geocoder.xml @@ -1,5 +1,6 @@ @@ -15,7 +16,10 @@ android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="0dp" - android:layout_weight="5" /> + android:layout_weight="5" + app:center_latitude="38.90962" + app:center_longitude="-77.04341" + app:zoom="15" /> + app:zoom="10" /> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_maxmin_zoom.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_maxmin_zoom.xml index 873e5d18a1..5c02cab970 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_maxmin_zoom.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_maxmin_zoom.xml @@ -1,5 +1,6 @@ @@ -12,9 +13,14 @@ android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> + android:layout_height="wrap_content" + android:layout_below="@id/toolbar" + app:access_token="@string/mapbox_access_token" + app:center_latitude="-1.063510" + app:center_longitude=" 32.895425" + app:style_url="@string/style_satellite_streets" + app:zoom="4" /> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_scroll_by.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_scroll_by.xml index 17e0f35729..7614931485 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_scroll_by.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_scroll_by.xml @@ -79,6 +79,11 @@