[android] #4365 - enforce best practices map startup

This commit is contained in:
Tobrun
2016-03-24 13:11:50 +01:00
parent 2f9e6f4e94
commit 7ff074889e
17 changed files with 62 additions and 219 deletions

View File

@@ -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;

View File

@@ -23,14 +23,6 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.MapboxMapActivity"
android:description="@string/description_mapboxmap"
android:label="@string/activity_mapboxmap">
<meta-data
android:name="@string/category"
android:value="@string/category_other" />
</activity>
<activity
android:name=".activity.LatLngBoundsActivity"
android:description="@string/description_visible_bounds"

View File

@@ -40,8 +40,6 @@ public class AnimatedMarkerActivity extends AppCompatActivity {
}
mMapView = (MapView) findViewById(R.id.mapView);
mMapView.setAccessToken(ApiAccess.getToken(this));
mMapView.setStyleUrl(Style.LIGHT);
mMapView.onCreate(savedInstanceState);
mMapView.getMapAsync(new OnMapReadyCallback() {
@Override

View File

@@ -60,18 +60,14 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView
@Override
public void onMapReady(@NonNull MapboxMap mapboxMap) {
mMapboxMap = mapboxMap;
mapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(
new CameraPosition.Builder()
.target(new LatLng(38.87031, -77.00897))
.zoom(10)
.build()
));
ArrayAdapter<CharSequence> 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<CharSequence> 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);
}
}
});

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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());

View File

@@ -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);
}
}
}

View File

@@ -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

View File

@@ -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<MarkerOptions> mMarkerList;
private List<MarkerOptions> 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<MarkerOptions>) mMarkerList);
}
@Override

View File

@@ -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() {

View File

@@ -25,6 +25,9 @@
<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
app:center_latitude="38.87000"
app:center_longitude="-77.00800"
app:zoom="16"
android:layout_height="match_parent" />
<android.support.design.widget.FloatingActionButton

View File

@@ -2,6 +2,7 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
@@ -15,6 +16,8 @@
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:style_url="@string/style_light"
app:access_token="@string/mapbox_access_token"
android:layout_below="@id/toolbar" />
</RelativeLayout>

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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">
@@ -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" />
<TextView
android:id="@+id/message"

View File

@@ -23,9 +23,9 @@
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:center_latitude="38.897705003219784"
app:center_longitude="-77.03655168667463"
app:center_latitude="38.87031"
app:center_longitude="-77.00897"
app:style_url="@string/style_mapbox_streets"
app:zoom="15" />
app:zoom="10" />
</LinearLayout>

View File

@@ -1,5 +1,6 @@
<?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">
@@ -12,9 +13,14 @@
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
<com.mapbox.mapboxsdk.maps.MapView
android:layout_below="@id/toolbar"
android:id="@+id/manualZoomMapView"
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
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" />
</RelativeLayout>

View File

@@ -79,6 +79,11 @@
<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
app:center_latitude="37.176546"
app:center_longitude="-3.599007"
app:access_token="@string/mapbox_access_token"
app:style_url="@string/style_emerald"
app:zoom="15"
android:layout_height="match_parent" />
<android.support.design.widget.FloatingActionButton