diff options
author | langsmith <langstonlmcs@gmail.com> | 2019-03-26 15:18:09 -0700 |
---|---|---|
committer | langsmith <langstonlmcs@gmail.com> | 2019-04-09 17:25:35 -0700 |
commit | 38dd5e85a3fa93c70ec9236673e8f5a06f6a1189 (patch) | |
tree | 55f9d2db0bc72f0993e136ee069fc97eb313343c | |
parent | 52018dba647c6324ce3a3091531c08372c8a0d1b (diff) | |
download | qtlocation-mapboxgl-38dd5e85a3fa93c70ec9236673e8f5a06f6a1189.tar.gz |
[android] got rid of frequency option
10 files changed, 57 insertions, 106 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponent.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponent.java index 3b0099af0f..4fef8ed4a6 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponent.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponent.java @@ -11,6 +11,7 @@ import android.support.annotation.Nullable; import android.support.annotation.RequiresPermission; import android.support.annotation.StyleRes; import android.support.annotation.VisibleForTesting; +import android.util.Log; import android.view.WindowManager; import com.mapbox.android.core.location.LocationEngine; @@ -657,6 +658,7 @@ public final class LocationComponent { @SuppressLint("MissingPermission") public void applyStyle(@NonNull final LocationComponentOptions options) { checkActivationState(); + Logger.d(TAG, "LocationComponent applyStyle()"); LocationComponent.this.options = options; if (mapboxMap.getStyle() != null) { locationLayerController.applyStyle(options); @@ -1069,7 +1071,6 @@ public final class LocationComponent { public void onStop() { onLocationLayerStop(); isComponentStarted = false; - Logger.d(TAG, "onStop()"); } /** @@ -1089,8 +1090,15 @@ public final class LocationComponent { * Internal use. */ public void onFinishLoadingStyle() { + Logger.d(TAG, "onFinishLoadingStyle"); + Logger.d(TAG, "isComponentInitialized = " + isComponentInitialized); + if (isComponentInitialized) { style = mapboxMap.getStyle(); + Logger.d(TAG, "isComponentInitialized == true && options.pulseAlpha() = " + options.pulseAlpha()); + Logger.d(TAG, "isComponentInitialized == true && options.pulseSingleDuration() = " + options.pulseSingleDuration()); + Logger.d(TAG, "isComponentInitialized == true && options.pulseColor() = " + options.pulseColor()); + locationLayerController.initializeComponents(style, options); locationCameraController.initializeOptions(options); onLocationLayerStart(); @@ -1110,6 +1118,13 @@ public final class LocationComponent { if (options.enableStaleState()) { staleStateManager.onStart(); } + Logger.d(TAG, "onLocationLayerStart: options.pulseEnabled() = " + options.pulseEnabled()); + if (options.pulseEnabled()) { + Logger.d(TAG, "onLocationLayerStart: locationAnimatorCoordinator.startLocationCirclePulsing(options, mapboxMap)"); + Logger.d(TAG, "onLocationLayerStart: options.pulseColor() = " + options.pulseColor()); + Logger.d(TAG, "onLocationLayerStart: options.pulseSingleDuration() = " + options.pulseSingleDuration()); + locationAnimatorCoordinator.startLocationCirclePulsing(options, mapboxMap); + } } if (isEnabled) { @@ -1125,9 +1140,6 @@ public final class LocationComponent { setLastLocation(); updateCompassListenerState(true); setLastCompassHeading(); - if (options.pulseEnabled()) { - locationAnimatorCoordinator.startLocationCirclePulsing(options, mapboxMap); - } } } @@ -1147,7 +1159,8 @@ public final class LocationComponent { locationEngine.removeLocationUpdates(currentLocationEngineListener); } if (options.pulseEnabled()) { - Logger.d(TAG, "onLocationLayerStop: about to stop animation "); + Logger.d(TAG, "onLocationLayerStop: options.pulseEnabled()"); + Logger.d(TAG, "onLocationLayerStop: locationAnimatorCoordinator.stopPulsingAnimation()"); locationAnimatorCoordinator.stopPulsingAnimation(); } mapboxMap.removeOnCameraMoveListener(onCameraMoveListener); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponentOptions.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponentOptions.java index ce9d0b485d..60a77baa66 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponentOptions.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationComponentOptions.java @@ -75,11 +75,6 @@ public class LocationComponentOptions implements Parcelable { private static final long CIRCLE_PULSING_DURATION_DEFAULT_MS = 1500; /** - * Default number of milliseconds which pass after the LocationComponent circle pulse ends and a new pulse begins. - */ - private static final float CIRCLE_PULSING_FREQUENCY_DEFAULT_MS = 1800; - - /** * Default opacity of the LocationComponent circle when it ends a single pulse. */ private static final float CIRCLE_PULSING_FINAL_ALPHA_DEFAULT = 0.6f; @@ -132,7 +127,6 @@ public class LocationComponentOptions implements Parcelable { private Boolean pulsingCircleFadeEnabled; private int pulseColor; private float pulseSingleDuration; - private float pulseFrequency; private Float pulseAlpha; private String pulseInterpolator; @@ -173,7 +167,6 @@ public class LocationComponentOptions implements Parcelable { Boolean pulsingCircleFadeEnabled, Integer pulsingCircleColor, Float pulsingCircleDuration, - Float pulsingCircleFrequency, Float pulsingCircleAlpha, String pulsingCircleInterpolator) { this.accuracyAlpha = accuracyAlpha; @@ -215,7 +208,6 @@ public class LocationComponentOptions implements Parcelable { this.pulsingCircleFadeEnabled = pulsingCircleFadeEnabled; this.pulseColor = pulsingCircleColor; this.pulseSingleDuration = pulsingCircleDuration; - this.pulseFrequency = pulsingCircleFrequency; this.pulseAlpha = pulsingCircleAlpha; this.pulseInterpolator = pulsingCircleInterpolator; } @@ -350,10 +342,6 @@ public class LocationComponentOptions implements Parcelable { R.styleable.mapbox_LocationComponent_mapbox_pulsingLocationCircleDuration, CIRCLE_PULSING_DURATION_DEFAULT_MS ); - builder.pulsingCircleFrequency = typedArray.getFloat( - R.styleable.mapbox_LocationComponent_mapbox_pulsingLocationCircleFrequency, CIRCLE_PULSING_FREQUENCY_DEFAULT_MS - ); - builder.pulsingCircleAlpha = typedArray.getFloat( R.styleable.mapbox_LocationComponent_mapbox_pulsingLocationCircleAlpha, CIRCLE_PULSING_FINAL_ALPHA_DEFAULT ); @@ -822,15 +810,6 @@ public class LocationComponentOptions implements Parcelable { } /** - * The number of milliseconds between each pulse of the LocationComponent's circle - * - * @return the current set length of time between pulses - */ - public float pulseFrequency() { - return pulseFrequency; - } - - /** * The opacity of the LocationComponent's circle as it pulses. * * @return the current set opacity of the LocationComponent's circle @@ -885,7 +864,6 @@ public class LocationComponentOptions implements Parcelable { + "enablePulsingCircleFade=" + pulsingCircleFadeEnabled + "pulseColor=" + pulseColor + "pulseSingleDuration=" + pulseSingleDuration - + "pulseFrequency=" + pulseFrequency + "pulseAlpha=" + pulseAlpha + "pulseInterpolator=" + pulseInterpolator + "}"; @@ -946,8 +924,6 @@ public class LocationComponentOptions implements Parcelable { && (this.pulseColor == that.pulseColor()) && (Float.floatToIntBits(this.pulseSingleDuration) == Float.floatToIntBits(that.pulseSingleDuration())) - && (Float.floatToIntBits(this.pulseFrequency) - == Float.floatToIntBits(that.pulseFrequency())) && (Float.floatToIntBits(this.pulseAlpha) == Float.floatToIntBits(that.pulseAlpha())) && ((this.pulseInterpolator == null) ? (that.pulseInterpolator() == null) @@ -1030,8 +1006,6 @@ public class LocationComponentOptions implements Parcelable { h$ *= 1000003; h$ ^= Float.floatToIntBits(pulseSingleDuration); h$ *= 1000003; - h$ ^= Float.floatToIntBits(pulseFrequency); - h$ *= 1000003; h$ ^= Float.floatToIntBits(pulseAlpha); h$ *= 1000003; h$ ^= (pulseInterpolator == null) ? 0 : pulseInterpolator.hashCode(); @@ -1081,7 +1055,6 @@ public class LocationComponentOptions implements Parcelable { in.readInt() == 0 ? in.readInt() : null, in.readFloat(), in.readFloat(), - in.readFloat(), in.readString() ); } @@ -1190,7 +1163,6 @@ public class LocationComponentOptions implements Parcelable { dest.writeInt(pulseColor()); } dest.writeFloat(pulseSingleDuration()); - dest.writeFloat(pulseFrequency()); dest.writeFloat(pulseAlpha()); dest.writeString(pulseInterpolator()); } @@ -1241,9 +1213,6 @@ public class LocationComponentOptions implements Parcelable { pulsingSetupError += " pulsingCircleDuration"; } - if ((Float) locationComponentOptions.pulseFrequency() != null) { - pulsingSetupError += " pulsingCircleFrequency"; - } if (locationComponentOptions.pulseAlpha() != null) { pulsingSetupError += " accuracyAlpha"; } @@ -1256,12 +1225,6 @@ public class LocationComponentOptions implements Parcelable { " circle if you're going to set pulsing options."); } } - if (locationComponentOptions.pulseFrequency() < locationComponentOptions.pulseSingleDuration()) { - throw new IllegalArgumentException("Invalid relationship between the LocationComponent " + - "pulsing circle frequency of " + locationComponentOptions.pulseFrequency() + " and duration of " + - locationComponentOptions.pulseSingleDuration() + " . The frequency of the pulsing must be >= to the duration " + - "of a single pulse."); - } return locationComponentOptions; } @@ -1313,7 +1276,6 @@ public class LocationComponentOptions implements Parcelable { private Boolean pulsingCircleFadeEnabled; private Integer pulsingCircleColor; private Float pulsingCircleDuration; - private Float pulsingCircleFrequency; private Float pulsingCircleAlpha; private String pulsingCircleInterpolator; @@ -1357,7 +1319,6 @@ public class LocationComponentOptions implements Parcelable { this.pulsingCircleFadeEnabled = source.pulsingCircleFadeEnabled; this.pulsingCircleColor = source.pulseColor; this.pulsingCircleDuration = source.pulseSingleDuration; - this.pulsingCircleFrequency = source.pulseFrequency; this.pulsingCircleAlpha = source.pulseAlpha; this.pulsingCircleInterpolator = source.pulseInterpolator; } @@ -1867,16 +1828,6 @@ public class LocationComponentOptions implements Parcelable { } /** - * Sets the number of milliseconds that are waiting between pulses of the LocationComponent's pulsing circle. - * - * @return the current set length of time between pulses - */ - public LocationComponentOptions.Builder pulsingCircleFrequency(Float pulsingCircleFrequency) { - this.pulsingCircleFrequency = pulsingCircleFrequency; - return this; - } - - /** * Sets the opacity of the LocationComponent's pulsing circle. * * @return the current set opacity of the LocationComponent's circle @@ -1993,7 +1944,6 @@ public class LocationComponentOptions implements Parcelable { this.pulsingCircleFadeEnabled, this.pulsingCircleColor, this.pulsingCircleDuration, - this.pulsingCircleFrequency, this.pulsingCircleAlpha, this.pulsingCircleInterpolator); } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationLayerController.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationLayerController.java index 1b3e7dd928..cb9ea6388e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationLayerController.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationLayerController.java @@ -79,7 +79,7 @@ final class LocationLayerController { @VisibleForTesting final Set<String> layerSet = new HashSet<>(); private final List<String> layerMap = new ArrayList<>(); - private final String TAG = "LocationLayerController"; + private final String TAG = "Mbgl-LocationLayerController"; private Feature locationFeature; private GeoJsonSource locationSource; @@ -115,6 +115,7 @@ final class LocationLayerController { } void applyStyle(@NonNull LocationComponentOptions options) { + Logger.d(TAG, "applyStyle()"); String newLayerBelowOption = options.layerBelow(); if ((layerBelow != null || newLayerBelowOption != null)) { if (layerBelow == null || !layerBelow.equals(newLayerBelowOption)) { @@ -248,6 +249,7 @@ final class LocationLayerController { } private void addLayers(@NonNull String idBelowLayer) { + Logger.d(TAG, "LocationLayerController ----> addLayers()"); layerBelow = idBelowLayer; addSymbolLayer(BEARING_LAYER, idBelowLayer); addSymbolLayer(FOREGROUND_LAYER, BEARING_LAYER); @@ -273,6 +275,7 @@ final class LocationLayerController { } private void addPulsingCircleLayerToMap() { + Logger.d(TAG, "LocationLayerController ----> addPulsingCircleLayerToMap()"); Layer pulsingCircleLayer = layerSourceProvider.generatePulsingCircleLayer(); addLayerToMap(pulsingCircleLayer, ACCURACY_LAYER); } @@ -384,6 +387,7 @@ final class LocationLayerController { } private void stylePulsingCircle(LocationComponentOptions options) { + Logger.d(TAG, "stylePulsingCircle() starting && options.pulseEnabled() = " + options.pulseEnabled()); if (mapboxMap.getStyle() != null) { if (mapboxMap.getStyle().getLayer(PROPERTY_PULSING_CIRCLE_LAYER) != null) { Logger.d(TAG, "stylePulsingCircle: options.pulseEnabled() = " + options.pulseEnabled()); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/PulsingLocationCircleAnimator.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/PulsingLocationCircleAnimator.java index 65cc586a7b..0daafab0dc 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/PulsingLocationCircleAnimator.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/PulsingLocationCircleAnimator.java @@ -3,6 +3,7 @@ package com.mapbox.mapboxsdk.location; import android.animation.ValueAnimator; import android.os.Build; import android.support.annotation.NonNull; +import android.util.Log; import android.view.animation.Interpolator; import com.mapbox.mapboxsdk.log.Logger; @@ -50,25 +51,15 @@ public class PulsingLocationCircleAnimator { } private void createValueAnimator() { - // handler.postDelayed(runnable, (long) locationComponentOptions.pulseFrequency()); if (mapboxMap.getStyle().getLayer(PROPERTY_PULSING_CIRCLE_LAYER) != null) { Logger.d(TAG, "mapboxMap.getStyle().getLayer(PROPERTY_PULSING_CIRCLE_LAYER) != null"); + Logger.d(TAG, "locationComponentOptions.pulseSingleDuration() = " + locationComponentOptions.pulseSingleDuration()); pulsingCircleLayer = mapboxMap.getStyle().getLayer(PROPERTY_PULSING_CIRCLE_LAYER); - - if (pulsingCircleLayer != null) { - Logger.d(TAG, "pulsingCircleLayer != null"); - } else { - Logger.d(TAG, "pulsingCircleLayer == null"); - } animator = ValueAnimator.ofFloat(0f, PULSING_CIRCLE_RADIUS); animator.setDuration((long) locationComponentOptions.pulseSingleDuration()); animator.setRepeatMode(ValueAnimator.RESTART); animator.setRepeatCount(ValueAnimator.INFINITE); animator.setInterpolator(interpolatorToUse); - - Logger.d(TAG, "animator.getDuration() = " + animator.getDuration()); - Logger.d(TAG, "animator.getRepeatMode() = " + animator.getRepeatMode()); - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { @@ -84,6 +75,7 @@ public class PulsingLocationCircleAnimator { private void startValueAnimator() { if (animator != null) { + Log.d(TAG, "startValueAnimator() animator != null"); animator.start(); } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml b/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml index 39b6813c53..a018d92150 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml @@ -156,7 +156,6 @@ <public name="mapbox_pulsingLocationCircleFadeEnabled" format="boolean" type="attr" /> <public name="mapbox_pulsingLocationCircleColor" format="color" type="attr" /> <public name="mapbox_pulsingLocationCircleDuration" format="float" type="attr" /> - <public name="mapbox_pulsingLocationCircleFrequency" format="float" type="attr" /> <public name="mapbox_pulsingLocationCircleAlpha" format="float" type="attr" /> <public name="mapbox_pulsingLocationCircleInterpolator" format="string" type="attr" /> </resources> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml index f47327c8a9..0c44f17e6a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml @@ -181,7 +181,6 @@ <attr name="mapbox_pulsingLocationCircleFadeEnabled" format="boolean" /> <attr name="mapbox_pulsingLocationCircleColor" format="color" /> <attr name="mapbox_pulsingLocationCircleDuration" format="float" /> - <attr name="mapbox_pulsingLocationCircleFrequency" format="float" /> <attr name="mapbox_pulsingLocationCircleAlpha" format="float" /> <attr name="mapbox_pulsingLocationCircleInterpolator" format="string" /> diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values/styles.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values/styles.xml index 8db6ea6b47..a643e3559c 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values/styles.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values/styles.xml @@ -38,7 +38,6 @@ <item name="mapbox_pulsingLocationCircleFadeEnabled">true</item> <item name="mapbox_pulsingLocationCircleColor">@color/mapbox_location_layer_blue</item> <item name="mapbox_pulsingLocationCircleDuration">1700</item> - <item name="mapbox_pulsingLocationCircleFrequency">1700</item> <item name="mapbox_pulsingLocationCircleAlpha">0.4</item> <item name="mapbox_pulsingLocationCircleInterpolator">decelerate</item> </style> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java index d07b8a8245..d5cff301db 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java @@ -52,7 +52,7 @@ public class MapboxApplication extends Application { private void initializeLogger() { Logger.setLoggerDefinition(new TimberLogger()); - if (BuildConfig.DEBUG) {contro + if (BuildConfig.DEBUG) { Timber.plant(new DebugTree()); } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationPulsingCircleActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationPulsingCircleActivity.java index b94140ccd0..6e45576693 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationPulsingCircleActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationPulsingCircleActivity.java @@ -3,7 +3,6 @@ package com.mapbox.mapboxsdk.testapp.activity.location; import android.annotation.SuppressLint; import android.graphics.Color; import android.location.Location; -import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -36,7 +35,7 @@ import java.util.List; public class LocationPulsingCircleActivity extends AppCompatActivity implements OnMapReadyCallback { private MapView mapView; - private Button pulsingCircleFrequencyButton; + private Button pulsingCircleDurationButton; private Button pulsingCircleColorButton; private PermissionsManager permissionsManager; @@ -44,13 +43,12 @@ public class LocationPulsingCircleActivity extends AppCompatActivity implements private LocationComponent locationComponent; private MapboxMap mapboxMap; private boolean defaultStyle = false; - private float currentPulseFrequency; + private float currentPulseDuration; private static final String SAVED_STATE_LOCATION = "saved_state_location"; // Make sure that the frequency value is equal to or larger than the duration value. - private static final float DEFAULT_LOCATION_CIRCLE_PULSE_FREQUENCY = 5000; - private static final float DEFAULT_LOCATION_CIRCLE_PULSE_DURATION = 1900; + private static final float DEFAULT_LOCATION_CIRCLE_PULSE_DURATION = 1700; private static final float DEFAULT_LOCATION_CIRCLE_PULSE_ALPHA = .6f; private static final String DEFAULT_LOCATION_CIRCLE_INTERPOLATOR_PULSE_MODE = PulseMode.DECELERATE; @@ -69,14 +67,14 @@ public class LocationPulsingCircleActivity extends AppCompatActivity implements mapView = findViewById(R.id.mapView); - pulsingCircleFrequencyButton = findViewById(R.id.button_location_circle_frequency); - pulsingCircleFrequencyButton.setText(String.format("%sms", - String.valueOf(DEFAULT_LOCATION_CIRCLE_PULSE_FREQUENCY))); - pulsingCircleFrequencyButton.setOnClickListener(v -> { + pulsingCircleDurationButton = findViewById(R.id.button_location_circle_frequency); + pulsingCircleDurationButton.setText(String.format("%sms", + String.valueOf(DEFAULT_LOCATION_CIRCLE_PULSE_DURATION))); + pulsingCircleDurationButton.setOnClickListener(v -> { if (locationComponent == null) { return; } - showFrequencyListDialog(); + showDurationListDialog(); }); pulsingCircleColorButton = findViewById(R.id.button_location_circle_color); @@ -139,8 +137,7 @@ public class LocationPulsingCircleActivity extends AppCompatActivity implements "waterway-label", DEFAULT_LOCATION_CIRCLE_PULSE_COLOR, DEFAULT_LOCATION_CIRCLE_PULSE_ALPHA, - DEFAULT_LOCATION_CIRCLE_PULSE_DURATION, - DEFAULT_LOCATION_CIRCLE_PULSE_FREQUENCY)) + DEFAULT_LOCATION_CIRCLE_PULSE_DURATION)) .useDefaultLocationEngine(true) .locationEngineRequest(new LocationEngineRequest.Builder(750) .setFastestInterval(750) @@ -157,9 +154,9 @@ public class LocationPulsingCircleActivity extends AppCompatActivity implements private LocationComponentOptions buildLocationComponentOptions(@Nullable String idOfLayerBelow, @Nullable int pulsingCircleColor, @Nullable float pulsingCircleAlpha, - @Nullable float pulsingCircleDuration, - @Nullable float pulsingCircleFrequency) { - currentPulseFrequency = pulsingCircleFrequency; + @Nullable float pulsingCircleDuration) { + currentPulseDuration = pulsingCircleDuration; + return LocationComponentOptions.builder(this) .layerBelow(idOfLayerBelow) .pulsingCircleEnabled(true) @@ -168,12 +165,11 @@ public class LocationPulsingCircleActivity extends AppCompatActivity implements .pulsingCircleColor(pulsingCircleColor) .pulsingCircleAlpha(pulsingCircleAlpha) .pulsingCircleDuration(pulsingCircleDuration) - .pulsingCircleFrequency(pulsingCircleFrequency) .build(); } @SuppressLint("MissingPermission") - private void setNewLocationComponentOptions(@Nullable float newPulsingFrequency, + private void setNewLocationComponentOptions(@Nullable float newPulsingDuration, @Nullable int newPulsingColor) { if (mapboxMap.getStyle() != null) { @@ -181,8 +177,7 @@ public class LocationPulsingCircleActivity extends AppCompatActivity implements LocationComponentActivationOptions .builder(this, mapboxMap.getStyle()) .locationComponentOptions(buildLocationComponentOptions("waterway-label", - newPulsingColor, DEFAULT_LOCATION_CIRCLE_PULSE_ALPHA, - DEFAULT_LOCATION_CIRCLE_PULSE_DURATION, newPulsingFrequency)) + newPulsingColor, DEFAULT_LOCATION_CIRCLE_PULSE_ALPHA, newPulsingDuration)) .useDefaultLocationEngine(true) .locationEngineRequest(new LocationEngineRequest.Builder(750) .setFastestInterval(750) @@ -278,26 +273,26 @@ public class LocationPulsingCircleActivity extends AppCompatActivity implements mapView.onLowMemory(); } - private void showFrequencyListDialog() { + private void showDurationListDialog() { List<String> modes = new ArrayList<>(); - modes.add("400ms"); - modes.add("1000ms"); + modes.add("800m"); modes.add("2000ms"); + modes.add("5000ms"); ArrayAdapter<String> profileAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, modes); ListPopupWindow listPopup = new ListPopupWindow(this); listPopup.setAdapter(profileAdapter); - listPopup.setAnchorView(pulsingCircleFrequencyButton); + listPopup.setAnchorView(pulsingCircleDurationButton); listPopup.setOnItemClickListener((parent, itemView, position, id) -> { String selectedMode = modes.get(position); - pulsingCircleFrequencyButton.setText(selectedMode); + pulsingCircleDurationButton.setText(selectedMode); if (selectedMode.contentEquals(String.format("%sms", - String.valueOf(DEFAULT_LOCATION_CIRCLE_PULSE_FREQUENCY)))) { - setNewLocationComponentOptions(DEFAULT_LOCATION_CIRCLE_PULSE_FREQUENCY, Color.BLUE); - } else if (selectedMode.contentEquals("1000ms")) { - setNewLocationComponentOptions(1000, Color.BLUE); - } else if (selectedMode.contentEquals("3000ms")) { - setNewLocationComponentOptions(3000, Color.BLUE); + String.valueOf(DEFAULT_LOCATION_CIRCLE_PULSE_DURATION)))) { + setNewLocationComponentOptions(DEFAULT_LOCATION_CIRCLE_PULSE_DURATION, Color.BLUE); + } else if (selectedMode.contentEquals("2000ms")) { + setNewLocationComponentOptions(2000, Color.BLUE); + } else if (selectedMode.contentEquals("5000ms")) { + setNewLocationComponentOptions(5000, Color.BLUE); } listPopup.dismiss(); }); @@ -320,13 +315,13 @@ public class LocationPulsingCircleActivity extends AppCompatActivity implements String selectedTrackingType = trackingTypes.get(position); pulsingCircleColorButton.setText(selectedTrackingType); if (selectedTrackingType.contentEquals("Blue")) { - setNewLocationComponentOptions(currentPulseFrequency, Color.BLUE); + setNewLocationComponentOptions(currentPulseDuration, Color.BLUE); } else if (selectedTrackingType.contentEquals("Red")) { - setNewLocationComponentOptions(currentPulseFrequency, Color.RED); + setNewLocationComponentOptions(currentPulseDuration, Color.RED); } else if (selectedTrackingType.contentEquals("Green")) { - setNewLocationComponentOptions(currentPulseFrequency, Color.GREEN); + setNewLocationComponentOptions(currentPulseDuration, Color.GREEN); } else if (selectedTrackingType.contentEquals("Yellow")) { - setNewLocationComponentOptions(currentPulseFrequency, Color.YELLOW); + setNewLocationComponentOptions(currentPulseDuration, Color.YELLOW); } listPopup.dismiss(); }); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_location_layer_pulsing_circle.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_location_layer_pulsing_circle.xml index 36ab53af63..7786dfc20e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_location_layer_pulsing_circle.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_location_layer_pulsing_circle.xml @@ -37,7 +37,7 @@ android:layout_height="match_parent" android:layout_weight=".75" android:gravity="center" - android:text="Frequency:" + android:text="Duration:" android:textColor="@color/white" android:textSize="18sp" android:textStyle="bold" /> |