From 63780d07f3af392338ae88f53fea726195c9c7ff Mon Sep 17 00:00:00 2001 From: Tobrun Date: Mon, 4 Apr 2016 11:03:14 +0200 Subject: [android] #4365 - make dismiss on gesture configurable, renamed activity to match UI in test app, cleanup --- .../mapbox/mapboxsdk/maps/TrackingSettings.java | 3 + .../testapp/espresso/AddMarkerActivityTest.java | 37 +++++ .../testapp/espresso/BulkMarkerActivityTest.java | 37 ----- .../src/main/AndroidManifest.xml | 18 +-- .../activity/annotation/AddMarkerActivity.java | 180 +++++++++++++++++++++ .../activity/annotation/BulkMarkerActivity.java | 180 --------------------- .../other/MyLocationTrackingModeActivity.java | 17 +- .../res/layout/activity_camera_animation_types.xml | 4 +- .../src/main/res/menu/menu_tracking.xml | 14 ++ .../src/main/res/values/strings.xml | 13 +- 10 files changed, 266 insertions(+), 237 deletions(-) create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/AddMarkerActivityTest.java delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/BulkMarkerActivityTest.java create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddMarkerActivity.java delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_tracking.xml (limited to 'platform') diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java index 90147929e9..de715f5c81 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java @@ -126,6 +126,9 @@ public class TrackingSettings { uiSettings.setScrollGesturesEnabled(false); uiSettings.setRotateGesturesEnabled((myBearingTrackingMode == MyBearingTracking.NONE)); } + }else{ + uiSettings.setScrollGesturesEnabled(true); + uiSettings.setRotateGesturesEnabled(true); } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/AddMarkerActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/AddMarkerActivityTest.java new file mode 100644 index 0000000000..0a29b5fa47 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/AddMarkerActivityTest.java @@ -0,0 +1,37 @@ +package com.mapbox.mapboxsdk.testapp.espresso; + +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import com.mapbox.mapboxsdk.testapp.activity.annotation.AddMarkerActivity; +import com.mapbox.mapboxsdk.testapp.R; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on AddMarkerActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class AddMarkerActivityTest extends BaseTest { + + @Rule + public ActivityTestRule mActivityRule = new ActivityTestRule<>( + AddMarkerActivity.class); + + private AddMarkerActivity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.mapView); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/BulkMarkerActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/BulkMarkerActivityTest.java deleted file mode 100644 index b85fe41243..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/espresso/BulkMarkerActivityTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.espresso; - -import android.support.test.rule.ActivityTestRule; -import android.support.test.runner.AndroidJUnit4; -import android.test.suitebuilder.annotation.LargeTest; - -import com.mapbox.mapboxsdk.testapp.activity.annotation.BulkMarkerActivity; -import com.mapbox.mapboxsdk.testapp.R; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; - -/** - * Tests on BulkMarkerActivity - */ -@RunWith(AndroidJUnit4.class) -@LargeTest -public class BulkMarkerActivityTest extends BaseTest { - - @Rule - public ActivityTestRule mActivityRule = new ActivityTestRule<>( - BulkMarkerActivity.class); - - private BulkMarkerActivity mActivity = null; - - @Before - public void setActivity() { - mActivity = mActivityRule.getActivity(); - } - - @Test - public void testSanity() { - checkViewIsDisplayed(R.id.mapView); - } -} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index 685a9d2615..40979fde5e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -41,7 +41,7 @@ android:value="@string/category_infowindow" /> @@ -57,6 +57,14 @@ android:name="@string/category" android:value="@string/category_annotation" /> + + + - - - 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(AddMarkerActivity.this); + } + } + }); + + } + + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + int markersAmount = Integer.valueOf(getResources().getStringArray(R.array.bulk_marker_list)[position]); + new LoadBulkMarkerTask(this, mMapboxMap, markersAmount).execute(); + } + + @Override + public void onNothingSelected(AdapterView parent) { + // nothing selected, nothing to do! + } + + @Override + public void onResume() { + super.onResume(); + mMapView.onResume(); + } + + @Override + public void onPause() { + super.onPause(); + mMapView.onPause(); + } + + @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); + } + } + + private static class LoadBulkMarkerTask extends AsyncTask> { + + private static final String TAG = "LoadBulkMarkerTask"; + private MapboxMap mMapboxMap; + private Context mAppContext; + private ProgressDialog mProgressDialog; + private int mAmount; + + public LoadBulkMarkerTask(Context context, MapboxMap mapboxMap, int amount) { + mMapboxMap = mapboxMap; + mapboxMap.removeAnnotations(); + mProgressDialog = ProgressDialog.show(context, "Loading", "Fetching markers", false); + mAppContext = context.getApplicationContext(); + mAmount = amount; + } + + @Override + protected List doInBackground(Void... params) { + List markerOptions = new ArrayList<>(mAmount); + try { + DecimalFormat formatter = new DecimalFormat("#.#####"); + String json = GeoParseUtil.loadStringFromAssets(mAppContext, "points.geojson"); + List locations = GeoParseUtil.parseGeoJSONCoordinates(json); + + if (locations.size() < mAmount) { + mAmount = locations.size(); + } + + LatLng location; + for (int i = 0; i < mAmount; i++) { + location = locations.get(i); + markerOptions.add(new MarkerOptions() + .position(location) + .title("Marker") + .snippet(formatter.format(location.getLatitude()) + ", " + formatter.format(location.getLongitude()))); + } + + } catch (IOException | JSONException e) { + Log.e(TAG, "Could not add markers,", e); + } + return markerOptions; + } + + @Override + protected void onProgressUpdate(Integer... values) { + super.onProgressUpdate(values); + } + + @Override + protected void onPostExecute(List markerOptions) { + super.onPostExecute(markerOptions); + mMapboxMap.addMarkers(markerOptions); + mProgressDialog.hide(); + } + } +} \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java deleted file mode 100644 index 7288d63719..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.activity.annotation; - -import android.app.ProgressDialog; -import android.content.Context; -import android.os.AsyncTask; -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.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.Spinner; - -import com.mapbox.mapboxsdk.annotations.MarkerOptions; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; -import com.mapbox.mapboxsdk.testapp.R; -import com.mapbox.mapboxsdk.testapp.utils.GeoParseUtil; -import com.mapbox.mapboxsdk.maps.MapView; - -import org.json.JSONException; - -import java.io.IOException; -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.List; - -public class BulkMarkerActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener { - - private MapboxMap mMapboxMap; - private MapView mMapView; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_marker_bulk); - - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - final ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.setDisplayShowTitleEnabled(false); - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setDisplayShowHomeEnabled(true); - } - - mMapView = (MapView) findViewById(R.id.mapView); - mMapView.setAccessToken(getString(R.string.mapbox_access_token)); - mMapView.onCreate(savedInstanceState); - mMapView.getMapAsync(new OnMapReadyCallback() { - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { - mMapboxMap = mapboxMap; - - 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); - } - } - }); - - } - - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - int markersAmount = Integer.valueOf(getResources().getStringArray(R.array.bulk_marker_list)[position]); - new LoadBulkMarkerTask(this, mMapboxMap, markersAmount).execute(); - } - - @Override - public void onNothingSelected(AdapterView parent) { - // nothing selected, nothing to do! - } - - @Override - public void onResume() { - super.onResume(); - mMapView.onResume(); - } - - @Override - public void onPause() { - super.onPause(); - mMapView.onPause(); - } - - @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); - } - } - - private static class LoadBulkMarkerTask extends AsyncTask> { - - private static final String TAG = "LoadBulkMarkerTask"; - private MapboxMap mMapboxMap; - private Context mAppContext; - private ProgressDialog mProgressDialog; - private int mAmount; - - public LoadBulkMarkerTask(Context context, MapboxMap mapboxMap, int amount) { - mMapboxMap = mapboxMap; - mapboxMap.removeAnnotations(); - mProgressDialog = ProgressDialog.show(context, "Loading", "Fetching markers", false); - mAppContext = context.getApplicationContext(); - mAmount = amount; - } - - @Override - protected List doInBackground(Void... params) { - List markerOptions = new ArrayList<>(mAmount); - try { - DecimalFormat formatter = new DecimalFormat("#.#####"); - String json = GeoParseUtil.loadStringFromAssets(mAppContext, "points.geojson"); - List locations = GeoParseUtil.parseGeoJSONCoordinates(json); - - if (locations.size() < mAmount) { - mAmount = locations.size(); - } - - LatLng location; - for (int i = 0; i < mAmount; i++) { - location = locations.get(i); - markerOptions.add(new MarkerOptions() - .position(location) - .title("Marker") - .snippet(formatter.format(location.getLatitude()) + ", " + formatter.format(location.getLongitude()))); - } - - } catch (IOException | JSONException e) { - Log.e(TAG, "Could not add markers,", e); - } - return markerOptions; - } - - @Override - protected void onProgressUpdate(Integer... values) { - super.onProgressUpdate(values); - } - - @Override - protected void onPostExecute(List markerOptions) { - super.onPostExecute(markerOptions); - mMapboxMap.addMarkers(markerOptions); - mProgressDialog.hide(); - } - } -} \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/other/MyLocationTrackingModeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/other/MyLocationTrackingModeActivity.java index 5309fe1baf..4d67b27c96 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/other/MyLocationTrackingModeActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/other/MyLocationTrackingModeActivity.java @@ -8,6 +8,7 @@ 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.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; @@ -16,14 +17,14 @@ import android.widget.Spinner; import android.widget.Toast; import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; -import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.constants.MyBearingTracking; import com.mapbox.mapboxsdk.constants.MyLocationTracking; 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.TrackingSettings; import com.mapbox.mapboxsdk.testapp.R; -import com.mapbox.mapboxsdk.maps.MapView; public class MyLocationTrackingModeActivity extends AppCompatActivity implements MapboxMap.OnMyLocationChangeListener, AdapterView.OnItemSelectedListener { @@ -199,12 +200,24 @@ public class MyLocationTrackingModeActivity extends AppCompatActivity implements mMapView.onLowMemory(); } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_tracking, menu); + return true; + } + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; + case R.id.action_toggle_dismissible_tracking: + boolean state = !item.isChecked(); + mMapboxMap.getTrackingSettings().setDismissTrackingOnGesture(state); + Toast.makeText(this, "Dismiss tracking mode on gesture = " + state, Toast.LENGTH_SHORT).show(); + item.setChecked(state); + return true; default: return super.onOptionsItemSelected(item); } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_types.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_types.xml index 9341648639..5a5fb5f604 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_types.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_camera_animation_types.xml @@ -21,12 +21,11 @@ app:center_longitude="-0.11968" app:zoom="15" /> -