diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main/java')
15 files changed, 133 insertions, 68 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java index 883ffa2b9b..c9c0c105fd 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AddRemoveMarkerActivity.java @@ -1,10 +1,10 @@ package com.mapbox.mapboxsdk.testapp.activity.annotation; import android.os.Bundle; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; 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.camera.CameraPosition; @@ -14,6 +14,7 @@ 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 com.mapbox.mapboxsdk.testapp.utils.IconUtils; import timber.log.Timber; @@ -36,15 +37,20 @@ public class AddRemoveMarkerActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_remove_marker); - final Icon icon1 = IconFactory.getInstance(this).fromResource(R.drawable.ic_arsenal); - final Icon icon2 = IconFactory.getInstance(this).fromResource(R.drawable.ic_chelsea); + // ShapeDrawable to Icon + final Icon shapeDrawableIcon = IconUtils.drawableToIcon(this, R.drawable.ic_circle, + ContextCompat.getColor(this, R.color.redAccent)); + + // VectorDrawable to Icon + final Icon vectorDrawableIcon = IconUtils.drawableToIcon(this, R.drawable.ic_layers, + ContextCompat.getColor(this, R.color.blueAccent)); lowThresholdMarker = new MarkerOptions() - .icon(icon1) + .icon(shapeDrawableIcon) .position(new LatLng(-0.1, 0)); highThresholdMarker = new MarkerOptions() - .icon(icon2) + .icon(vectorDrawableIcon) .position(new LatLng(0.1, 0)); mapView = (MapView) findViewById(R.id.mapView); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java index 8df7085ede..5501a8324d 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java @@ -8,7 +8,9 @@ import android.animation.ValueAnimator; import android.os.Bundle; import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; +import android.support.v4.content.res.ResourcesCompat; import android.support.v7.app.AppCompatActivity; +import android.view.View; import android.view.animation.AccelerateDecelerateInterpolator; import com.mapbox.mapboxsdk.annotations.Icon; @@ -24,9 +26,12 @@ 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 com.mapbox.mapboxsdk.testapp.utils.IconUtils; import com.mapbox.services.commons.models.Position; import com.mapbox.services.api.utils.turf.TurfMeasurement; +import java.util.ArrayList; +import java.util.List; import java.util.Random; public class AnimatedMarkerActivity extends AppCompatActivity { @@ -41,6 +46,9 @@ public class AnimatedMarkerActivity extends AppCompatActivity { private Runnable animationRunnable; + private List<MarkerView> markerViews = new ArrayList<>(); + private boolean stopped; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -79,11 +87,15 @@ public class AnimatedMarkerActivity extends AppCompatActivity { } private void addPassenger() { + if (isActivityStopped()) { + return; + } + LatLng randomLatLng = getLatLngInBounds(); if (passengerMarker == null) { - Icon icon = IconFactory.getInstance(AnimatedMarkerActivity.this) - .fromResource(R.drawable.ic_directions_run_black_24dp); + Icon icon = IconUtils.drawableToIcon(this, R.drawable.ic_directions_run_black, + ResourcesCompat.getColor(getResources(), R.color.blueAccent, getTheme())); passengerMarker = mapboxMap.addMarker(new MarkerViewOptions() .position(randomLatLng) .icon(icon)); @@ -93,6 +105,10 @@ public class AnimatedMarkerActivity extends AppCompatActivity { } private void addMainCar() { + if (isActivityStopped()) { + return; + } + LatLng randomLatLng = getLatLngInBounds(); if (carMarker == null) { @@ -105,13 +121,17 @@ public class AnimatedMarkerActivity extends AppCompatActivity { animateMoveToPassenger(carMarker); } }); - + markerViews.add(carMarker); } else { carMarker.setPosition(randomLatLng); } } private void animateMoveToPassenger(final MarkerView car) { + if (isActivityStopped()) { + return; + } + ValueAnimator animator = animateMoveMarker(car, passengerMarker.getPosition()); animator.addListener(new AnimatorListenerAdapter() { @Override @@ -123,15 +143,20 @@ public class AnimatedMarkerActivity extends AppCompatActivity { } protected void addRandomCar() { - createCarMarker(getLatLngInBounds(), R.drawable.ic_car_top, new MarkerViewManager.OnMarkerViewAddedListener() { - @Override - public void onViewAdded(@NonNull MarkerView markerView) { - randomlyMoveMarker(markerView); - } - }); + markerViews.add(createCarMarker(getLatLngInBounds(), R.drawable.ic_car_top, + new MarkerViewManager.OnMarkerViewAddedListener() { + @Override + public void onViewAdded(@NonNull MarkerView markerView) { + randomlyMoveMarker(markerView); + } + })); } private void randomlyMoveMarker(final MarkerView marker) { + if (isActivityStopped()) { + return; + } + ValueAnimator animator = animateMoveMarker(marker, getLatLngInBounds()); // Add listener to restart animation on end @@ -205,6 +230,19 @@ public class AnimatedMarkerActivity extends AppCompatActivity { @Override protected void onStop() { super.onStop(); + + stopped = true; + + // Stop ongoing animations, prevent memory lekas + MarkerViewManager markerViewManager = mapboxMap.getMarkerViewManager(); + for (MarkerView markerView : markerViews) { + View view = markerViewManager.getView(markerView); + if (view != null) { + view.animate().cancel(); + } + } + + // onStop mapView.onStop(); mapView.removeCallbacks(animationRunnable); } @@ -250,4 +288,8 @@ public class AnimatedMarkerActivity extends AppCompatActivity { Position.fromCoordinates(to.getLongitude(), to.getLatitude()) ); } + + private boolean isActivityStopped() { + return stopped; + } } 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 bd5d836ca9..e1e49de95b 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 @@ -3,12 +3,9 @@ package com.mapbox.mapboxsdk.testapp.activity.annotation; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.app.ProgressDialog; -import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; import android.support.v4.content.res.ResourcesCompat; import android.support.v4.view.MenuItemCompat; import android.support.v7.app.AppCompatActivity; @@ -22,7 +19,6 @@ 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.MarkerViewOptions; @@ -32,6 +28,7 @@ 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.testapp.utils.IconUtils; import org.json.JSONException; @@ -39,6 +36,7 @@ import java.io.IOException; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Random; import timber.log.Timber; @@ -117,11 +115,8 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView Random random = new Random(); int randomIndex; - Drawable drawable = ContextCompat.getDrawable(BulkMarkerActivity.this, R.drawable.ic_droppin_24dp); - - int redColor = ResourcesCompat.getColor(getResources(), android.R.color.holo_red_dark, getTheme()); - drawable.setColorFilter(redColor, PorterDuff.Mode.SRC_IN); - Icon icon = IconFactory.getInstance(this).fromDrawable(drawable); + int color = ResourcesCompat.getColor(getResources(), R.color.redAccent, getTheme()); + Icon icon = IconUtils.drawableToIcon(this, R.drawable.ic_droppin, color); List<MarkerViewOptions> markerOptionsList = new ArrayList<>(); for (int i = 0; i < amount; i++) { @@ -203,6 +198,9 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView } private class FabClickListener implements View.OnClickListener { + + private TextView viewCountView; + @Override public void onClick(final View view) { if (mapboxMap != null) { @@ -225,13 +223,15 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView showMarkers(amount); } + viewCountView = (TextView) findViewById(R.id.countView); + mapView.addOnMapChangedListener(new MapView.OnMapChangedListener() { @Override public void onMapChanged(@MapView.MapChange int change) { if (change == MapView.REGION_IS_CHANGING || change == MapView.REGION_DID_CHANGE) { if (!mapboxMap.getMarkerViewManager().getMarkerViewAdapters().isEmpty()) { - TextView viewCountView = (TextView) findViewById(R.id.countView); - viewCountView.setText("ViewCache size " + (mapView.getChildCount() - 5)); + viewCountView.setText(String.format(Locale.getDefault(), "ViewCache size %d", + mapboxMap.getMarkerViewManager().getMarkerViewContainer().getChildCount())); } } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/DynamicMarkerChangeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/DynamicMarkerChangeActivity.java index a6820312d8..85e7aeedef 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/DynamicMarkerChangeActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/DynamicMarkerChangeActivity.java @@ -4,10 +4,10 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.FloatingActionButton; import android.support.v4.content.ContextCompat; +import android.support.v4.content.res.ResourcesCompat; import android.support.v7.app.AppCompatActivity; import android.view.View; -import com.mapbox.mapboxsdk.annotations.IconFactory; import com.mapbox.mapboxsdk.annotations.Marker; import com.mapbox.mapboxsdk.annotations.MarkerOptions; import com.mapbox.mapboxsdk.geometry.LatLng; @@ -15,6 +15,7 @@ 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 com.mapbox.mapboxsdk.testapp.utils.IconUtils; public class DynamicMarkerChangeActivity extends AppCompatActivity { @@ -23,7 +24,6 @@ public class DynamicMarkerChangeActivity extends AppCompatActivity { private MapView mapView; private MapboxMap mapboxMap; - private IconFactory iconFactory; private Marker marker; @Override @@ -31,8 +31,6 @@ public class DynamicMarkerChangeActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dynamic_marker); - iconFactory = IconFactory.getInstance(this); - mapView = (MapView) findViewById(R.id.mapView); mapView.setTag(false); mapView.onCreate(savedInstanceState); @@ -43,7 +41,8 @@ public class DynamicMarkerChangeActivity extends AppCompatActivity { // Create marker MarkerOptions markerOptions = new MarkerOptions() .position(LAT_LNG_CHELSEA) - .icon(iconFactory.fromResource(R.drawable.ic_chelsea)) + .icon(IconUtils.drawableToIcon(DynamicMarkerChangeActivity.this, R.drawable.ic_stars, + ResourcesCompat.getColor(getResources(), R.color.blueAccent, getTheme()))) .title(getString(R.string.dynamic_marker_chelsea_title)) .snippet(getString(R.string.dynamic_marker_chelsea_snippet)); marker = mapboxMap.addMarker(markerOptions); @@ -69,7 +68,11 @@ public class DynamicMarkerChangeActivity extends AppCompatActivity { // update marker marker.setPosition(first ? LAT_LNG_CHELSEA : LAT_LNG_ARSENAL); - marker.setIcon(iconFactory.fromResource(first ? R.drawable.ic_chelsea : R.drawable.ic_arsenal)); + marker.setIcon(IconUtils.drawableToIcon(this, R.drawable.ic_stars, first + ? ResourcesCompat.getColor(getResources(), R.color.blueAccent, getTheme()) : + ResourcesCompat.getColor(getResources(), R.color.redAccent, getTheme()) + )); + marker.setTitle(first ? getString(R.string.dynamic_marker_chelsea_title) : getString(R.string.dynamic_marker_arsenal_title)); marker.setSnippet(first 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 index 6e02284e2a..ee8eb52cd9 100644 --- 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 @@ -156,13 +156,13 @@ public class MarkerViewActivity extends AppCompatActivity { movingMarkerOne = MarkerViewActivity.this.mapboxMap.addMarker(new MarkerViewOptions() .position(CarLocation.CAR_0_LNGS[0]) .icon(IconFactory.getInstance(mapView.getContext()) - .fromResource(R.drawable.ic_chelsea)) + .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_arsenal)) + .fromResource(R.drawable.ic_android_2)) ); // allow more open infowindows at the same time diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/customlayer/CustomLayerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/customlayer/CustomLayerActivity.java index 3fbb25805b..d410c349f0 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/customlayer/CustomLayerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/customlayer/CustomLayerActivity.java @@ -64,7 +64,7 @@ public class CustomLayerActivity extends AppCompatActivity { } catch (NoSuchLayerException noSuchLayerException) { Timber.e("No custom layer to remove"); } - fab.setImageResource(R.drawable.ic_layers_24dp); + fab.setImageResource(R.drawable.ic_layers); } else { customLayer = new CustomLayer("custom", ExampleCustomLayer.createContext(), @@ -72,7 +72,7 @@ public class CustomLayerActivity extends AppCompatActivity { ExampleCustomLayer.RenderFunction, ExampleCustomLayer.DeinitializeFunction); mapboxMap.addLayer(customLayer, "building"); - fab.setImageResource(R.drawable.ic_layers_clear_24dp); + fab.setImageResource(R.drawable.ic_layers_clear); } } 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 5da7a3047b..df6d24900b 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 @@ -1,17 +1,14 @@ package com.mapbox.mapboxsdk.testapp.activity.infowindow; import android.graphics.Color; -import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.support.v4.content.ContextCompat; +import android.support.v4.content.res.ResourcesCompat; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; -import com.mapbox.mapboxsdk.annotations.IconFactory; import com.mapbox.mapboxsdk.annotations.InfoWindow; import com.mapbox.mapboxsdk.annotations.Marker; import com.mapbox.mapboxsdk.annotations.MarkerView; @@ -22,6 +19,7 @@ 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 com.mapbox.mapboxsdk.testapp.utils.IconUtils; /** * Shows how to dynamically update InfoWindow when Using an MapboxMap.InfoWindowAdapter @@ -84,18 +82,12 @@ public class DynamicInfoWindowAdapterActivity extends AppCompatActivity implemen } private MarkerView addMarker(MapboxMap mapboxMap) { - IconFactory iconFactory = IconFactory.getInstance(this); - Drawable iconDrawable = ContextCompat.getDrawable(this, R.drawable.ic_location_city_24dp); - iconDrawable.setColorFilter( - ContextCompat.getColor(DynamicInfoWindowAdapterActivity.this, R.color.mapbox_blue), - PorterDuff.Mode.SRC_IN - ); - return mapboxMap.addMarker( new MarkerViewOptions() .position(paris) - .icon(iconFactory.fromDrawable(iconDrawable)) - ); + .icon(IconUtils.drawableToIcon(this, R.drawable.ic_location_city, + ResourcesCompat.getColor(getResources(),R.color.mapbox_blue, getTheme())) + )); } private void addCustomInfoWindowAdapter(final MapboxMap mapboxMap) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/InfoWindowAdapterActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/InfoWindowAdapterActivity.java index f6a07c1310..7026a797d5 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/InfoWindowAdapterActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/infowindow/InfoWindowAdapterActivity.java @@ -1,17 +1,13 @@ package com.mapbox.mapboxsdk.testapp.activity.infowindow; import android.graphics.Color; -import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; import com.mapbox.mapboxsdk.annotations.Icon; -import com.mapbox.mapboxsdk.annotations.IconFactory; import com.mapbox.mapboxsdk.annotations.Marker; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapView; @@ -20,22 +16,18 @@ import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; import com.mapbox.mapboxsdk.testapp.R; import com.mapbox.mapboxsdk.testapp.model.annotations.CityStateMarker; import com.mapbox.mapboxsdk.testapp.model.annotations.CityStateMarkerOptions; +import com.mapbox.mapboxsdk.testapp.utils.IconUtils; public class InfoWindowAdapterActivity extends AppCompatActivity { private MapView mapView; private MapboxMap mapboxMap; - private IconFactory iconFactory; - private Drawable iconDrawable; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_infowindow_adapter); - iconFactory = IconFactory.getInstance(this); - iconDrawable = ContextCompat.getDrawable(this, R.drawable.ic_location_city_24dp); - mapView = (MapView) findViewById(R.id.mapView); mapView.onCreate(savedInstanceState); mapView.getMapAsync(new OnMapReadyCallback() { @@ -63,8 +55,7 @@ public class InfoWindowAdapterActivity extends AppCompatActivity { marker.position(new LatLng(lat, lng)); marker.infoWindowBackground(color); - iconDrawable.setColorFilter(Color.parseColor(color), PorterDuff.Mode.SRC_IN); - Icon icon = iconFactory.fromDrawable(iconDrawable); + Icon icon = IconUtils.drawableToIcon(this, R.drawable.ic_location_city, Color.parseColor(color)); marker.icon(icon); return marker; } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/NavigationDrawerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/NavigationDrawerActivity.java index 7f59dd3bdb..888482b219 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/NavigationDrawerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/NavigationDrawerActivity.java @@ -148,8 +148,8 @@ public class NavigationDrawerActivity extends AppCompatActivity { android.R.layout.simple_list_item_activated_1, android.R.id.text1, new String[] { - getString(R.string.title_section1), - getString(R.string.title_section2) + "Different style", + "Show snackbar" })); drawerListView.setItemChecked(currentSelectedPosition, true); return drawerListView; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CustomSpriteActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CustomSpriteActivity.java index bcf2fd822c..fa5ddb3802 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CustomSpriteActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/CustomSpriteActivity.java @@ -79,7 +79,7 @@ public class CustomSpriteActivity extends AppCompatActivity { // lets add a circle below labels! mapboxMap.addLayer(layer, "waterway-label"); - fab.setImageResource(R.drawable.ic_directions_car_black_24dp); + fab.setImageResource(R.drawable.ic_directions_car_black); } else { // Update point point = Point.fromCoordinates( diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationDrawableActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationDrawableActivity.java index c15e3b6058..c02ddd8c13 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationDrawableActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationDrawableActivity.java @@ -42,8 +42,8 @@ public class MyLocationDrawableActivity extends AppCompatActivity implements Loc mapboxMapOptions.styleUrl(Style.MAPBOX_STREETS); // configure MyLocationView drawables - mapboxMapOptions.myLocationForegroundDrawable(ContextCompat.getDrawable(this, R.drawable.ic_chelsea)); - mapboxMapOptions.myLocationBackgroundDrawable(ContextCompat.getDrawable(this, R.drawable.ic_arsenal)); + mapboxMapOptions.myLocationForegroundDrawable(ContextCompat.getDrawable(this, R.drawable.ic_android)); + mapboxMapOptions.myLocationBackgroundDrawable(ContextCompat.getDrawable(this, R.drawable.ic_android)); mapboxMapOptions.myLocationForegroundTintColor(Color.GREEN); mapboxMapOptions.myLocationBackgroundTintColor(Color.YELLOW); mapboxMapOptions.myLocationBackgroundPadding(new int[] {0, 0, diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationToggleActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationToggleActivity.java index 8bf40e3cf5..9e98d8c6b9 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationToggleActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationToggleActivity.java @@ -150,9 +150,9 @@ public class MyLocationToggleActivity extends AppCompatActivity { }; locationServices.addLocationEngineListener(locationListener); } - locationToggleFab.setImageResource(R.drawable.ic_location_disabled_24dp); + locationToggleFab.setImageResource(R.drawable.ic_location_disabled); } else { - locationToggleFab.setImageResource(R.drawable.ic_my_location_24dp); + locationToggleFab.setImageResource(R.drawable.ic_my_location); } mapboxMap.setMyLocationEnabled(enabled); } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineDownloadRegionDialog.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineDownloadRegionDialog.java index b70144123f..c4aa934139 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineDownloadRegionDialog.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineDownloadRegionDialog.java @@ -37,7 +37,7 @@ public class OfflineDownloadRegionDialog extends DialogFragment { final EditText regionNameEdit = new EditText(getActivity()); builder.setTitle("Choose a name for the region") - .setIcon(R.drawable.ic_airplanemode_active_black_24dp) + .setIcon(R.drawable.ic_airplanemode_active_black) .setView(regionNameEdit) .setPositiveButton("Start", new DialogInterface.OnClickListener() { @Override diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineListRegionsDialog.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineListRegionsDialog.java index 65c4102a8c..f717daeada 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineListRegionsDialog.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/model/other/OfflineListRegionsDialog.java @@ -28,7 +28,7 @@ public class OfflineListRegionsDialog extends DialogFragment { CharSequence[] items = offlineRegionsNames.toArray(new CharSequence[offlineRegionsNames.size()]); builder.setTitle("List of offline regions") - .setIcon(R.drawable.ic_airplanemode_active_black_24dp) + .setIcon(R.drawable.ic_airplanemode_active_black) .setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/IconUtils.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/IconUtils.java new file mode 100644 index 0000000000..b6768a91a3 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/IconUtils.java @@ -0,0 +1,31 @@ +package com.mapbox.mapboxsdk.testapp.utils; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.drawable.Drawable; +import android.support.annotation.ColorInt; +import android.support.annotation.DrawableRes; +import android.support.annotation.NonNull; +import android.support.v4.content.res.ResourcesCompat; +import android.support.v4.graphics.drawable.DrawableCompat; + +import com.mapbox.mapboxsdk.annotations.Icon; +import com.mapbox.mapboxsdk.annotations.IconFactory; + +public class IconUtils { + + /** + * Demonstrates converting any Drawable to an Icon, for use as a marker icon. + */ + public static Icon drawableToIcon(@NonNull Context context, @DrawableRes int id, @ColorInt int colorRes) { + Drawable vectorDrawable = ResourcesCompat.getDrawable(context.getResources(), id, context.getTheme()); + Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(), + vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + DrawableCompat.setTint(vectorDrawable, colorRes); + vectorDrawable.draw(canvas); + return IconFactory.getInstance(context).fromBitmap(bitmap); + } +} |