From 1ceea72e6da786537cf3f4038ce56b602c12bfa8 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 19 Sep 2018 16:30:32 +0200 Subject: [android] - remove MarkerView API --- .../annotation/AnimatedSymbolLayerActivity.java | 2 +- .../activity/annotation/BulkMarkerActivity.java | 107 +---- .../activity/annotation/MarkerViewActivity.java | 490 --------------------- .../annotation/MarkerViewsInRectangleActivity.java | 111 ----- .../DynamicInfoWindowAdapterActivity.java | 10 +- .../model/annotations/CountryMarkerView.java | 24 - .../annotations/CountryMarkerViewOptions.java | 99 ----- .../testapp/model/annotations/PulseMarkerView.java | 11 - .../model/annotations/PulseMarkerViewOptions.java | 79 ---- .../testapp/model/annotations/TextMarkerView.java | 18 - .../model/annotations/TextMarkerViewOptions.java | 91 ---- 11 files changed, 8 insertions(+), 1034 deletions(-) delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewActivity.java delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewsInRectangleActivity.java delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/CountryMarkerView.java delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/CountryMarkerViewOptions.java delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/PulseMarkerView.java delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/PulseMarkerViewOptions.java delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/TextMarkerView.java delete mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/TextMarkerViewOptions.java (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java') diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedSymbolLayerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedSymbolLayerActivity.java index 599cddfb6e..27303901a0 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedSymbolLayerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedSymbolLayerActivity.java @@ -34,7 +34,7 @@ import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconRotate; /** - * Test activity showcasing animating MarkerViews. + * Test activity showcasing animating a SymbolLayer. */ public class AnimatedSymbolLayerActivity extends AppCompatActivity { 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 index 88b09bb959..1c798b1d7a 100644 --- 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 @@ -1,11 +1,8 @@ package com.mapbox.mapboxsdk.testapp.activity.annotation; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; -import android.support.v4.content.res.ResourcesCompat; import android.support.v4.view.MenuItemCompat; import android.support.v7.app.AppCompatActivity; import android.view.Menu; @@ -14,37 +11,30 @@ import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; -import android.widget.TextView; -import android.widget.Toast; -import com.mapbox.mapboxsdk.annotations.Icon; import com.mapbox.mapboxsdk.annotations.MarkerOptions; -import com.mapbox.mapboxsdk.annotations.MarkerViewOptions; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.testapp.R; import com.mapbox.mapboxsdk.testapp.utils.GeoParseUtil; -import com.mapbox.mapboxsdk.testapp.utils.IconUtils; import java.io.IOException; import java.lang.ref.WeakReference; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; -import java.util.Locale; import java.util.Random; import timber.log.Timber; /** - * Test activity showcasing adding a large amount of Markers or MarkerViews. + * Test activity showcasing adding a large amount of Markers. */ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener { private MapboxMap mapboxMap; private MapView mapView; - private boolean customMarkerView; private List locations; private ProgressDialog progressDialog; @@ -56,11 +46,6 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(mapboxMap -> BulkMarkerActivity.this.mapboxMap = mapboxMap); - - final View fab = findViewById(R.id.fab); - if (fab != null) { - fab.setOnClickListener(new FabClickListener()); - } } @Override @@ -99,38 +84,11 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView } mapboxMap.clear(); - if (locations.size() < amount) { amount = locations.size(); } - if (customMarkerView) { - showViewMarkers(amount); - } else { - showGlMarkers(amount); - } - } - - private void showViewMarkers(int amount) { - DecimalFormat formatter = new DecimalFormat("#.#####"); - Random random = new Random(); - int randomIndex; - - int color = ResourcesCompat.getColor(getResources(), R.color.redAccent, getTheme()); - Icon icon = IconUtils.drawableToIcon(this, R.drawable.ic_droppin, color); - - List markerOptionsList = new ArrayList<>(); - for (int i = 0; i < amount; i++) { - randomIndex = random.nextInt(locations.size()); - LatLng latLng = locations.get(randomIndex); - MarkerViewOptions markerOptions = new MarkerViewOptions() - .position(latLng) - .icon(icon) - .title(String.valueOf(i)) - .snippet(formatter.format(latLng.getLatitude()) + ", " + formatter.format(latLng.getLongitude())); - markerOptionsList.add(markerOptions); - } - mapboxMap.addMarkerViews(markerOptionsList); + showGlMarkers(amount); } private void showGlMarkers(int amount) { @@ -198,67 +156,6 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView mapView.onLowMemory(); } - private class FabClickListener implements View.OnClickListener { - - private TextView viewCountView; - - @Override - public void onClick(final View view) { - if (mapboxMap != null) { - customMarkerView = true; - - // remove fab - view.animate().alpha(0).setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - super.onAnimationEnd(animation); - view.setVisibility(View.GONE); - } - }).start(); - - // reload markers - Spinner spinner = (Spinner) findViewById(R.id.spinner); - if (spinner != null) { - int amount = Integer.valueOf( - getResources().getStringArray(R.array.bulk_marker_list)[spinner.getSelectedItemPosition()]); - showMarkers(amount); - } - - viewCountView = (TextView) findViewById(R.id.countView); - - mapView.addOnCameraIsChangingListener(new MapView.OnCameraIsChangingListener() { - @Override - public void onCameraIsChanging() { - onCameraChange(); - } - }); - - mapView.addOnCameraDidChangeListener(new MapView.OnCameraDidChangeListener() { - @Override - public void onCameraDidChange(boolean animated) { - onCameraChange(); - } - }); - - mapboxMap.getMarkerViewManager().setOnMarkerViewClickListener( - (marker, view1, adapter) -> { - Toast.makeText( - BulkMarkerActivity.this, - "Hello " + marker.getId(), - Toast.LENGTH_SHORT).show(); - return false; - }); - } - } - - private void onCameraChange() { - if (!mapboxMap.getMarkerViewManager().getMarkerViewAdapters().isEmpty()) { - viewCountView.setText(String.format(Locale.getDefault(), "ViewCache size %d", - mapboxMap.getMarkerViewManager().getMarkerViewContainer().getChildCount())); - } - } - } - private static class LoadLocationTask extends AsyncTask> { private WeakReference activity; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewActivity.java deleted file mode 100644 index fc35434be0..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewActivity.java +++ /dev/null @@ -1,490 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.activity.annotation; - -import android.animation.Animator; -import android.animation.AnimatorInflater; -import android.animation.AnimatorListenerAdapter; -import android.animation.FloatEvaluator; -import android.animation.ObjectAnimator; -import android.animation.ValueAnimator; -import android.content.Context; -import android.os.Bundle; -import android.os.Handler; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v7.app.AppCompatActivity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; -import android.widget.Toast; - -import com.mapbox.mapboxsdk.annotations.Icon; -import com.mapbox.mapboxsdk.annotations.IconFactory; -import com.mapbox.mapboxsdk.annotations.Marker; -import com.mapbox.mapboxsdk.annotations.MarkerOptions; -import com.mapbox.mapboxsdk.annotations.MarkerView; -import com.mapbox.mapboxsdk.annotations.MarkerViewManager; -import com.mapbox.mapboxsdk.annotations.MarkerViewOptions; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.testapp.R; -import com.mapbox.mapboxsdk.testapp.model.annotations.CountryMarkerView; -import com.mapbox.mapboxsdk.testapp.model.annotations.CountryMarkerViewOptions; -import com.mapbox.mapboxsdk.testapp.model.annotations.TextMarkerView; -import com.mapbox.mapboxsdk.testapp.model.annotations.TextMarkerViewOptions; - -import java.util.Locale; -import java.util.Random; - -/** - * Test activity showcasing multiple MarkerViews above Washington D.C. - *

- * Shows a couple of open InfoWindows out of current Viewport. - * Updates the rotation and location of a couple of MarkerViews. - *

- */ -public class MarkerViewActivity extends AppCompatActivity { - - private static final LatLng[] LAT_LNGS = new LatLng[] { - new LatLng(38.897424, -77.036508), - new LatLng(38.909698, -77.029642), - new LatLng(38.907227, -77.036530), - new LatLng(38.905607, -77.031916), - new LatLng(38.889441, -77.050134), - new LatLng(38.888000, -77.050000) // Slight overlap to show re-ordering on selection - }; - - private MapboxMap mapboxMap; - private MapView mapView; - private TextView viewCountView; - - // MarkerView location updates - private MarkerView movingMarkerOne; - private MarkerView movingMarkerTwo; - private Random randomAnimator = new Random(); - private Handler locationUpdateHandler = new Handler(); - private Runnable moveMarkerRunnable = new MoveMarkerRunnable(); - - // MarkerView rotate updates - private MarkerView rotateMarker; - private Handler rotateUpdateHandler = new Handler(); - private Runnable rotateMarkerRunnable = new RotateMarkerRunnable(); - private int rotation = 360; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_marker_view); - - viewCountView = (TextView) findViewById(R.id.countView); - mapView = (MapView) findViewById(R.id.mapView); - mapView.onCreate(savedInstanceState); - mapView.getMapAsync(mapboxMap -> { - MarkerViewActivity.this.mapboxMap = mapboxMap; - - final MarkerViewManager markerViewManager = mapboxMap.getMarkerViewManager(); - - Icon usFlag = IconFactory.getInstance(MarkerViewActivity.this) - .fromResource(R.drawable.ic_us); - - // add default ViewMarker markers - for (int i = 0; i < LAT_LNGS.length; i++) { - MarkerViewActivity.this.mapboxMap.addMarker(new MarkerViewOptions() - .position(LAT_LNGS[i]) - .title(String.valueOf(i)) - .alpha(0.5f) - .icon(usFlag) - ); - } - - // add custom ViewMarker - CountryMarkerViewOptions options = new CountryMarkerViewOptions(); - options.flagRes(R.drawable.icon_burned); - options.abbrevName("Mapbox"); - options.title("Hello"); - options.position(new LatLng(38.899774, -77.023237)); - options.flat(true); - MarkerView markerView = mapboxMap.addMarker(options); - - // Use object animator to rotate MarkerView - ValueAnimator markerAnimator = ObjectAnimator.ofObject(markerView, "rotation", new FloatEvaluator(), -90, 90); - markerAnimator.setDuration(5000); - markerAnimator.start(); - - MarkerViewActivity.this.mapboxMap.addMarker(new MarkerOptions() - .title("United States") - .position(new LatLng(38.902580, -77.050102)) - ); - - rotateMarker = MarkerViewActivity.this.mapboxMap.addMarker(new TextMarkerViewOptions() - .text("A") - .rotation(rotation = 270) - .position(new LatLng(38.889876, -77.008849)) - ); - loopMarkerRotate(); - - - MarkerViewActivity.this.mapboxMap.addMarker(new TextMarkerViewOptions() - .text("B") - .position(new LatLng(38.907327, -77.041293)) - ); - - MarkerViewActivity.this.mapboxMap.addMarker(new TextMarkerViewOptions() - .text("C") - .position(new LatLng(38.897642, -77.041980)) - ); - - // if you want to customise a ViewMarker you need to extend ViewMarker and provide an adapter implementation - // set adapters for child classes of ViewMarker - markerViewManager.addMarkerViewAdapter(new CountryAdapter(MarkerViewActivity.this, mapboxMap)); - markerViewManager.addMarkerViewAdapter(new TextAdapter(MarkerViewActivity.this, mapboxMap)); - - - // add a change listener to validate the size of amount of child views - mapView.addOnCameraDidChangeListener(new MapView.OnCameraDidChangeListener() { - @Override - public void onCameraDidChange(boolean animated) { - setViewCount(); - } - }); - - // add a OnMarkerView click listener - MarkerViewActivity.this.mapboxMap.getMarkerViewManager().setOnMarkerViewClickListener( - (marker, view, adapter) -> { - Toast.makeText(MarkerViewActivity.this, "Hello " + marker.getId(), Toast.LENGTH_SHORT).show(); - return false; - }); - - movingMarkerOne = MarkerViewActivity.this.mapboxMap.addMarker(new MarkerViewOptions() - .position(CarLocation.CAR_0_LNGS[0]) - .icon(IconFactory.getInstance(mapView.getContext()) - .fromResource(R.drawable.ic_android)) - ); - - movingMarkerTwo = mapboxMap.addMarker(new MarkerViewOptions() - .position(CarLocation.CAR_1_LNGS[0]) - .icon(IconFactory.getInstance(mapView.getContext()) - .fromResource(R.drawable.ic_android_2)) - ); - - // allow more open infowindows at the same time - mapboxMap.setAllowConcurrentMultipleOpenInfoWindows(true); - - // add offscreen markers - Marker markerRightOffScreen = mapboxMap.addMarker(new MarkerOptions() - .setPosition(new LatLng(38.892846, -76.909399)) - .title("InfoWindow") - .snippet("Offscreen, to the right of the Map.")); - - Marker markerRightBottomOffScreen = mapboxMap.addMarker(new MarkerOptions() - .setPosition(new LatLng(38.791645, -77.039006)) - .title("InfoWindow") - .snippet("Offscreen, to the bottom of the Map")); - - // open infowindow offscreen markers - mapboxMap.selectMarker(markerRightOffScreen); - mapboxMap.selectMarker(markerRightBottomOffScreen); - }); - } - - private void setViewCount() { - final MarkerViewManager markerViewManager = mapboxMap.getMarkerViewManager(); - final ViewGroup markerViewContainer = markerViewManager.getMarkerViewContainer(); - if (!markerViewManager.getMarkerViewAdapters().isEmpty() && viewCountView != null) { - viewCountView.setText(String.format( - Locale.getDefault(), - getString(R.string.viewcache_size), - markerViewContainer.getChildCount()) - ); - } - } - - private void loopMarkerRotate() { - rotateUpdateHandler.postDelayed(rotateMarkerRunnable, 800); - } - - @Override - protected void onStart() { - super.onStart(); - mapView.onStart(); - loopMarkerMove(); - } - - private void loopMarkerMove() { - locationUpdateHandler.postDelayed(moveMarkerRunnable, randomAnimator.nextInt(3000) + 1000); - } - - @Override - protected void onStop() { - super.onStop(); - mapView.onStop(); - locationUpdateHandler.removeCallbacks(moveMarkerRunnable); - rotateUpdateHandler.removeCallbacks(rotateMarkerRunnable); - } - - /** - * Updates the position of a Marker - */ - private class MoveMarkerRunnable implements Runnable { - @Override - public void run() { - int randomInteger = randomAnimator.nextInt(9); - if (randomAnimator.nextInt() % 2 == 0) { - movingMarkerOne.setPosition(CarLocation.CAR_0_LNGS[randomInteger]); - } else { - movingMarkerTwo.setPosition(CarLocation.CAR_1_LNGS[randomInteger]); - } - loopMarkerMove(); - } - } - - /** - * Updates the rotation of a Marker - */ - private class RotateMarkerRunnable implements Runnable { - - private static final int ROTATION_INCREASE_VALUE = 9; - - @Override - public void run() { - rotation -= ROTATION_INCREASE_VALUE; - if (rotation >= 0) { - rotation += 360; - } - rotateMarker.setRotation(rotation); - loopMarkerRotate(); - } - } - - /** - * Adapts a MarkerView to display an abbreviated name in a TextView and a flag in an ImageView. - */ - private static class CountryAdapter extends MapboxMap.MarkerViewAdapter { - - private LayoutInflater inflater; - private MapboxMap mapboxMap; - - CountryAdapter(@NonNull Context context, @NonNull MapboxMap mapboxMap) { - super(context, CountryMarkerView.class); - this.inflater = LayoutInflater.from(context); - this.mapboxMap = mapboxMap; - } - - @Nullable - @Override - public View getView(@NonNull CountryMarkerView marker, @Nullable View convertView, @NonNull ViewGroup parent) { - ViewHolder viewHolder; - if (convertView == null) { - viewHolder = new ViewHolder(); - convertView = inflater.inflate(R.layout.view_custom_marker, parent, false); - viewHolder.flag = (ImageView) convertView.findViewById(R.id.imageView); - viewHolder.abbrev = (TextView) convertView.findViewById(R.id.textView); - convertView.setTag(viewHolder); - } else { - viewHolder = (ViewHolder) convertView.getTag(); - } - viewHolder.flag.setImageResource(marker.getFlagRes()); - viewHolder.abbrev.setText(marker.getAbbrevName()); - return convertView; - } - - @Override - public boolean onSelect( - @NonNull final CountryMarkerView marker, @NonNull final View convertView, boolean reselectionForViewReuse) { - convertView.setLayerType(View.LAYER_TYPE_HARDWARE, null); - ObjectAnimator rotateAnimator = ObjectAnimator.ofFloat(convertView, View.ROTATION, 0, 360); - rotateAnimator.setDuration(reselectionForViewReuse ? 0 : 350); - rotateAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - super.onAnimationEnd(animation); - convertView.setLayerType(View.LAYER_TYPE_NONE, null); - mapboxMap.selectMarker(marker); - } - }); - rotateAnimator.start(); - - // false indicates that we are calling selectMarker after our animation ourselves - // true will let the system call it for you, which will result in showing an InfoWindow instantly - return false; - } - - @Override - public void onDeselect(@NonNull CountryMarkerView marker, @NonNull final View convertView) { - convertView.setLayerType(View.LAYER_TYPE_HARDWARE, null); - ObjectAnimator rotateAnimator = ObjectAnimator.ofFloat(convertView, View.ROTATION, 360, 0); - rotateAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - super.onAnimationEnd(animation); - convertView.setLayerType(View.LAYER_TYPE_NONE, null); - } - }); - rotateAnimator.start(); - } - - private static class ViewHolder { - ImageView flag; - TextView abbrev; - } - } - - /** - * Adapts a MarkerView to display text in a TextView. - */ - public static class TextAdapter extends MapboxMap.MarkerViewAdapter { - - private LayoutInflater inflater; - private MapboxMap mapboxMap; - - public TextAdapter(@NonNull Context context, @NonNull MapboxMap mapboxMap) { - super(context, TextMarkerView.class); - this.inflater = LayoutInflater.from(context); - this.mapboxMap = mapboxMap; - } - - @Nullable - @Override - public View getView(@NonNull TextMarkerView marker, @Nullable View convertView, @NonNull ViewGroup parent) { - ViewHolder viewHolder; - if (convertView == null) { - viewHolder = new ViewHolder(); - convertView = inflater.inflate(R.layout.view_text_marker, parent, false); - viewHolder.textView = (TextView) convertView.findViewById(R.id.textView); - convertView.setTag(viewHolder); - } else { - viewHolder = (ViewHolder) convertView.getTag(); - } - viewHolder.textView.setText(marker.getText()); - return convertView; - } - - @Override - public boolean onSelect( - @NonNull final TextMarkerView marker, @NonNull final View convertView, boolean reselectionForViewReuse) { - animateGrow(marker, convertView, 0); - - // false indicates that we are calling selectMarker after our animation ourselves - // true will let the system call it for you, which will result in showing an InfoWindow instantly - return false; - } - - @Override - public void onDeselect(@NonNull TextMarkerView marker, @NonNull final View convertView) { - animateShrink(convertView, 350); - } - - @Override - public boolean prepareViewForReuse(@NonNull MarkerView marker, @NonNull View convertView) { - // this method is called before a view will be reused, we need to restore view state - // as we have scaled the view in onSelect. If not correctly applied other MarkerView will - // become large since these have been recycled - - // cancel ongoing animation - convertView.animate().cancel(); - - if (marker.isSelected()) { - // shrink view to be able to be reused - animateShrink(convertView, 0); - } - - // true if you want reuse to occur automatically, false if you want to manage this yourself - return true; - } - - private void animateGrow(@NonNull final MarkerView marker, @NonNull final View convertView, int duration) { - convertView.setLayerType(View.LAYER_TYPE_HARDWARE, null); - Animator animator = AnimatorInflater.loadAnimator(convertView.getContext(), R.animator.scale_up); - animator.setDuration(duration); - animator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - super.onAnimationEnd(animation); - convertView.setLayerType(View.LAYER_TYPE_NONE, null); - mapboxMap.selectMarker(marker); - } - }); - animator.setTarget(convertView); - animator.start(); - } - - private void animateShrink(@NonNull final View convertView, int duration) { - convertView.setLayerType(View.LAYER_TYPE_HARDWARE, null); - Animator animator = AnimatorInflater.loadAnimator(convertView.getContext(), R.animator.scale_down); - animator.setDuration(duration); - animator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - super.onAnimationEnd(animation); - convertView.setLayerType(View.LAYER_TYPE_NONE, null); - } - }); - animator.setTarget(convertView); - animator.start(); - } - - private static class ViewHolder { - TextView textView; - } - } - - - @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(); - } - - private static class CarLocation { - - static LatLng[] CAR_0_LNGS = new LatLng[] { - new LatLng(38.92334425495122, -77.0533673443786), - new LatLng(38.9234737236897, -77.05389484528261), - new LatLng(38.9257094658146, -76.98819752280579), - new LatLng(38.8324328369647, -77.00690648325929), - new LatLng(38.87540698725855, -77.0093148713099), - new LatLng(38.96499498141065, -77.07707916040054), - new LatLng(38.90794910679896, -76.99695304153806), - new LatLng(38.86234025281626, -76.9950528034839), - new LatLng(38.862930274733635, -76.99647808241964) - }; - - static LatLng[] CAR_1_LNGS = new LatLng[] { - new LatLng(38.94237975070426, -76.98324549005675), - new LatLng(38.941520236084486, -76.98234257804742), - new LatLng(38.85972219720714, -76.98955808483929), - new LatLng(38.944289166113776, -76.98584257252891), - new LatLng(38.94375860578053, -76.98470344318412), - new LatLng(38.943167431929645, -76.98373163938666), - new LatLng(38.882834728904605, -77.02862535635137), - new LatLng(38.882869724926245, -77.02992539231113), - new LatLng(38.9371988177896, -76.97786740676564) - }; - } -} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewsInRectangleActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewsInRectangleActivity.java deleted file mode 100644 index d590d0dac4..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/MarkerViewsInRectangleActivity.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.activity.annotation; - -import android.graphics.RectF; -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.v7.app.AppCompatActivity; -import android.view.View; -import android.widget.Toast; - -import com.mapbox.mapboxsdk.annotations.MarkerView; -import com.mapbox.mapboxsdk.annotations.MarkerViewOptions; -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; - -import java.util.List; - -import timber.log.Timber; - -/** - * Test activity showcasing counting MarkerViews in a rectangle. - */ -public class MarkerViewsInRectangleActivity extends AppCompatActivity implements OnMapReadyCallback, - View.OnClickListener { - - public MapView mapView; - private MapboxMap mapboxMap; - private View selectionBox; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_marker_view_in_rect); - - selectionBox = findViewById(R.id.selection_box); - - // Initialize map as normal - mapView = (MapView) findViewById(R.id.mapView); - mapView.onCreate(savedInstanceState); - mapView.getMapAsync(this); - } - - @Override - public void onMapReady(@NonNull MapboxMap mapboxMap) { - MarkerViewsInRectangleActivity.this.mapboxMap = mapboxMap; - selectionBox.setOnClickListener(this); - mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(52.0907, 5.1214), 16)); - mapboxMap.addMarker(new MarkerViewOptions().position(new LatLng(52.0907, 5.1214))); - } - - @Override - public void onClick(View view) { - // Query - int top = selectionBox.getTop() - mapView.getTop(); - int left = selectionBox.getLeft() - mapView.getLeft(); - RectF box = new RectF(left, top, left + selectionBox.getWidth(), top + selectionBox.getHeight()); - Timber.i("Querying box %s", box); - List markers = mapboxMap.getMarkerViewsInRect(box); - - // Show count - Toast.makeText( - MarkerViewsInRectangleActivity.this, - String.format("%s markers inside box", markers.size()), - Toast.LENGTH_SHORT).show(); - } - - @Override - protected void onStart() { - super.onStart(); - mapView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapView.onStop(); - } - - @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(); - } -} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/DynamicInfoWindowAdapterActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/DynamicInfoWindowAdapterActivity.java index 9c3da59d55..f6774696fb 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/DynamicInfoWindowAdapterActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/DynamicInfoWindowAdapterActivity.java @@ -8,8 +8,8 @@ import android.support.v7.app.AppCompatActivity; import android.widget.TextView; import com.mapbox.mapboxsdk.annotations.InfoWindow; -import com.mapbox.mapboxsdk.annotations.MarkerView; -import com.mapbox.mapboxsdk.annotations.MarkerViewOptions; +import com.mapbox.mapboxsdk.annotations.Marker; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapView; @@ -29,7 +29,7 @@ public class DynamicInfoWindowAdapterActivity extends AppCompatActivity implemen private MapboxMap mapboxMap; private MapView mapView; - private MarkerView marker; + private Marker marker; private MapboxMap.OnMapClickListener mapClickListener = new MapboxMap.OnMapClickListener() { @Override @@ -87,9 +87,9 @@ public class DynamicInfoWindowAdapterActivity extends AppCompatActivity implemen mapboxMap.animateCamera(CameraUpdateFactory.newLatLng(PARIS)); } - private MarkerView addMarker(MapboxMap mapboxMap) { + private Marker addMarker(MapboxMap mapboxMap) { return mapboxMap.addMarker( - new MarkerViewOptions() + new MarkerOptions() .position(PARIS) .icon(IconUtils.drawableToIcon(this, R.drawable.ic_location_city, ResourcesCompat.getColor(getResources(), R.color.mapbox_blue, getTheme())) diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/CountryMarkerView.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/CountryMarkerView.java deleted file mode 100644 index cab03e4f7a..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/CountryMarkerView.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.model.annotations; - -import com.mapbox.mapboxsdk.annotations.BaseMarkerViewOptions; -import com.mapbox.mapboxsdk.annotations.MarkerView; - -public class CountryMarkerView extends MarkerView { - - private String abbrevName; - private int flagRes; - - public CountryMarkerView(BaseMarkerViewOptions baseMarkerViewOptions, String abbrevName, int flagRes) { - super(baseMarkerViewOptions); - this.abbrevName = abbrevName; - this.flagRes = flagRes; - } - - public String getAbbrevName() { - return abbrevName; - } - - public int getFlagRes() { - return flagRes; - } -} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/CountryMarkerViewOptions.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/CountryMarkerViewOptions.java deleted file mode 100644 index 6602054f47..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/CountryMarkerViewOptions.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.model.annotations; - -import android.graphics.Bitmap; -import android.os.Parcel; -import android.os.Parcelable; - -import com.mapbox.mapboxsdk.annotations.BaseMarkerViewOptions; -import com.mapbox.mapboxsdk.annotations.Icon; -import com.mapbox.mapboxsdk.annotations.IconFactory; -import com.mapbox.mapboxsdk.geometry.LatLng; - -public class CountryMarkerViewOptions extends BaseMarkerViewOptions { - - private String abbrevName; - private int flagRes; - - public CountryMarkerViewOptions() { - } - - protected CountryMarkerViewOptions(Parcel in) { - position((LatLng) in.readParcelable(LatLng.class.getClassLoader())); - snippet(in.readString()); - title(in.readString()); - flat(in.readByte() != 0); - anchor(in.readFloat(), in.readFloat()); - infoWindowAnchor(in.readFloat(), in.readFloat()); - rotation(in.readFloat()); - visible(in.readByte() != 0); - alpha(in.readFloat()); - if (in.readByte() != 0) { - // this means we have an icon - String iconId = in.readString(); - Bitmap iconBitmap = in.readParcelable(Bitmap.class.getClassLoader()); - Icon icon = IconFactory.recreate(iconId, iconBitmap); - icon(icon); - } - abbrevName(in.readString()); - flagRes(in.readInt()); - } - - @Override - public CountryMarkerViewOptions getThis() { - return this; - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - out.writeParcelable(getPosition(), flags); - out.writeString(getSnippet()); - out.writeString(getTitle()); - out.writeByte((byte) (isFlat() ? 1 : 0)); - out.writeFloat(getAnchorU()); - out.writeFloat(getAnchorV()); - out.writeFloat(getInfoWindowAnchorU()); - out.writeFloat(getInfoWindowAnchorV()); - out.writeFloat(getRotation()); - out.writeByte((byte) (isVisible() ? 1 : 0)); - out.writeFloat(getAlpha()); - Icon icon = getIcon(); - out.writeByte((byte) (icon != null ? 1 : 0)); - if (icon != null) { - out.writeString(getIcon().getId()); - out.writeParcelable(getIcon().getBitmap(), flags); - } - out.writeString(abbrevName); - out.writeInt(flagRes); - } - - @Override - public CountryMarkerView getMarker() { - return new CountryMarkerView(this, abbrevName, flagRes); - } - - public CountryMarkerViewOptions abbrevName(String abbrevName) { - this.abbrevName = abbrevName; - return getThis(); - } - - public CountryMarkerViewOptions flagRes(int flagRes) { - this.flagRes = flagRes; - return getThis(); - } - - public static final Parcelable.Creator CREATOR - = new Parcelable.Creator() { - public CountryMarkerViewOptions createFromParcel(Parcel in) { - return new CountryMarkerViewOptions(in); - } - - public CountryMarkerViewOptions[] newArray(int size) { - return new CountryMarkerViewOptions[size]; - } - }; -} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/PulseMarkerView.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/PulseMarkerView.java deleted file mode 100644 index b01c9907e0..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/PulseMarkerView.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.model.annotations; - -import com.mapbox.mapboxsdk.annotations.BaseMarkerViewOptions; -import com.mapbox.mapboxsdk.annotations.MarkerView; - -public class PulseMarkerView extends MarkerView { - - public PulseMarkerView(BaseMarkerViewOptions baseMarkerViewOptions) { - super(baseMarkerViewOptions); - } -} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/PulseMarkerViewOptions.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/PulseMarkerViewOptions.java deleted file mode 100644 index d752e5d0ef..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/PulseMarkerViewOptions.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.model.annotations; - -import android.graphics.Bitmap; -import android.os.Parcel; -import android.os.Parcelable; - -import com.mapbox.mapboxsdk.annotations.BaseMarkerViewOptions; -import com.mapbox.mapboxsdk.annotations.Icon; -import com.mapbox.mapboxsdk.annotations.IconFactory; -import com.mapbox.mapboxsdk.geometry.LatLng; - -public class PulseMarkerViewOptions extends BaseMarkerViewOptions { - - public PulseMarkerViewOptions() { - } - - protected PulseMarkerViewOptions(Parcel in) { - position((LatLng) in.readParcelable(LatLng.class.getClassLoader())); - snippet(in.readString()); - title(in.readString()); - flat(in.readByte() != 0); - anchor(in.readFloat(), in.readFloat()); - selected = in.readByte() != 0; - rotation(in.readFloat()); - if (in.readByte() != 0) { - // this means we have an icon - String iconId = in.readString(); - Bitmap iconBitmap = in.readParcelable(Bitmap.class.getClassLoader()); - Icon icon = IconFactory.recreate(iconId, iconBitmap); - icon(icon); - } - } - - @Override - public PulseMarkerViewOptions getThis() { - return this; - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - out.writeParcelable(getPosition(), flags); - out.writeString(getSnippet()); - out.writeString(getTitle()); - out.writeByte((byte) (isFlat() ? 1 : 0)); - out.writeFloat(getAnchorU()); - out.writeFloat(getAnchorV()); - out.writeFloat(getInfoWindowAnchorU()); - out.writeFloat(getInfoWindowAnchorV()); - out.writeByte((byte) (selected ? 1 : 0)); - out.writeFloat(getRotation()); - Icon icon = getIcon(); - out.writeByte((byte) (icon != null ? 1 : 0)); - if (icon != null) { - out.writeString(getIcon().getId()); - out.writeParcelable(getIcon().getBitmap(), flags); - } - } - - @Override - public PulseMarkerView getMarker() { - return new PulseMarkerView(this); - } - - public static final Parcelable.Creator CREATOR - = new Parcelable.Creator() { - public PulseMarkerViewOptions createFromParcel(Parcel in) { - return new PulseMarkerViewOptions(in); - } - - public PulseMarkerViewOptions[] newArray(int size) { - return new PulseMarkerViewOptions[size]; - } - }; -} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/TextMarkerView.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/TextMarkerView.java deleted file mode 100644 index dcee5c2409..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/TextMarkerView.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.model.annotations; - -import com.mapbox.mapboxsdk.annotations.BaseMarkerViewOptions; -import com.mapbox.mapboxsdk.annotations.MarkerView; - -public class TextMarkerView extends MarkerView { - - private String text; - - public TextMarkerView(BaseMarkerViewOptions baseMarkerViewOptions, String text) { - super(baseMarkerViewOptions); - this.text = text; - } - - public String getText() { - return text; - } -} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/TextMarkerViewOptions.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/TextMarkerViewOptions.java deleted file mode 100644 index df7c575f74..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/annotations/TextMarkerViewOptions.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.model.annotations; - -import android.graphics.Bitmap; -import android.os.Parcel; -import android.os.Parcelable; - -import com.mapbox.mapboxsdk.annotations.BaseMarkerViewOptions; -import com.mapbox.mapboxsdk.annotations.Icon; -import com.mapbox.mapboxsdk.annotations.IconFactory; -import com.mapbox.mapboxsdk.geometry.LatLng; - -public class TextMarkerViewOptions extends BaseMarkerViewOptions { - - private String text; - - public TextMarkerViewOptions() { - } - - protected TextMarkerViewOptions(Parcel in) { - position((LatLng) in.readParcelable(LatLng.class.getClassLoader())); - snippet(in.readString()); - title(in.readString()); - flat(in.readByte() != 0); - anchor(in.readFloat(), in.readFloat()); - infoWindowAnchor(in.readFloat(), in.readFloat()); - rotation(in.readFloat()); - visible(in.readByte() != 0); - alpha(in.readFloat()); - if (in.readByte() != 0) { - // this means we have an icon - String iconId = in.readString(); - Bitmap iconBitmap = in.readParcelable(Bitmap.class.getClassLoader()); - Icon icon = IconFactory.recreate(iconId, iconBitmap); - icon(icon); - } - text(in.readString()); - } - - @Override - public TextMarkerViewOptions getThis() { - return this; - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - out.writeParcelable(getPosition(), flags); - out.writeString(getSnippet()); - out.writeString(getTitle()); - out.writeByte((byte) (isFlat() ? 1 : 0)); - out.writeFloat(getAnchorU()); - out.writeFloat(getAnchorV()); - out.writeFloat(getInfoWindowAnchorU()); - out.writeFloat(getInfoWindowAnchorV()); - out.writeFloat(getRotation()); - out.writeByte((byte) (isVisible() ? 1 : 0)); - out.writeFloat(alpha); - Icon icon = getIcon(); - out.writeByte((byte) (icon != null ? 1 : 0)); - if (icon != null) { - out.writeString(getIcon().getId()); - out.writeParcelable(getIcon().getBitmap(), flags); - } - out.writeString(text); - } - - @Override - public TextMarkerView getMarker() { - return new TextMarkerView(this, text); - } - - public TextMarkerViewOptions text(String text) { - this.text = text; - return getThis(); - } - - public static final Parcelable.Creator CREATOR - = new Parcelable.Creator() { - public CountryMarkerViewOptions createFromParcel(Parcel in) { - return new CountryMarkerViewOptions(in); - } - - public CountryMarkerViewOptions[] newArray(int size) { - return new CountryMarkerViewOptions[size]; - } - }; -} -- cgit v1.2.1