[android] - remove location enabled flag from MapboxMap (#7308)
* [android] - remove location enabled flag from MapboxMap, decouple TrackingSettings from MyLocationViewSettings using a FocalPointChangeListener interface, Move state related to tracking modes to MyLocationView (shared object between MyLocationViewSettings and FocalPointChangeListener). * fixup tests
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
package com.mapbox.mapboxsdk.maps;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
|
||||
import com.mapbox.mapboxsdk.constants.MyBearingTracking;
|
||||
import com.mapbox.mapboxsdk.constants.MyLocationTracking;
|
||||
import com.mapbox.mapboxsdk.maps.widgets.MyLocationView;
|
||||
@@ -11,7 +15,11 @@ import org.mockito.InjectMocks;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class TrackingSettingsTest {
|
||||
|
||||
@@ -27,7 +35,7 @@ public class TrackingSettingsTest {
|
||||
private TrackingSettings trackingSettings;
|
||||
|
||||
@Before
|
||||
public void beforeTest(){
|
||||
public void beforeTest() {
|
||||
trackingSettings = new TrackingSettings(myLocationView, uiSettings, focalPointChangeListener);
|
||||
}
|
||||
|
||||
@@ -35,19 +43,7 @@ public class TrackingSettingsTest {
|
||||
public void testSanity() {
|
||||
assertNotNull("trackingsettings should not be null", trackingSettings);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMyLocationTrackingMode() {
|
||||
trackingSettings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW);
|
||||
assertEquals("MyLocationTrackingMode should match", MyLocationTracking.TRACKING_FOLLOW, trackingSettings.getMyLocationTrackingMode());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMyBearingTrackingMode() {
|
||||
trackingSettings.setMyBearingTrackingMode(MyBearingTracking.COMPASS);
|
||||
assertEquals("MyLocationTrackingMode should match", MyBearingTracking.COMPASS, trackingSettings.getMyBearingTrackingMode());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testDismissTrackingModesOnGesture() {
|
||||
trackingSettings.setDismissTrackingOnGesture(false);
|
||||
@@ -60,4 +56,16 @@ public class TrackingSettingsTest {
|
||||
trackingSettings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW);
|
||||
assertFalse("DismissTrackingOnGesture should be false", trackingSettings.isDismissTrackingOnGesture());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMyLocationEnabled() {
|
||||
// setup mock context to provide accepted location permission
|
||||
Context context = mock(Context.class);
|
||||
when(myLocationView.getContext()).thenReturn(context);
|
||||
when(context.checkPermission(eq(Manifest.permission.ACCESS_COARSE_LOCATION), anyInt(), anyInt())).thenReturn(PackageManager.PERMISSION_GRANTED);
|
||||
|
||||
assertFalse("Location should be disabled by default.", trackingSettings.isMyLocationEnabled());
|
||||
trackingSettings.setMyLocationEnabled(true);
|
||||
assertTrue("Location should be enabled", trackingSettings.isMyLocationEnabled());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mapbox.mapboxsdk.maps.widgets;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
import com.mapbox.mapboxsdk.maps.FocalPointChangeListener;
|
||||
import com.mapbox.mapboxsdk.maps.Projection;
|
||||
import com.mapbox.mapboxsdk.maps.TrackingSettings;
|
||||
|
||||
@@ -30,11 +31,14 @@ public class MyLocationViewSettingsTest {
|
||||
@InjectMocks
|
||||
TrackingSettings trackingSettings = mock(TrackingSettings.class);
|
||||
|
||||
@InjectMocks
|
||||
FocalPointChangeListener focalPointChangeListener = mock(FocalPointChangeListener.class);
|
||||
|
||||
private MyLocationViewSettings locationViewSettings;
|
||||
|
||||
@Before
|
||||
public void beforeTest() {
|
||||
locationViewSettings = new MyLocationViewSettings(projection, myLocationView, trackingSettings);
|
||||
locationViewSettings = new MyLocationViewSettings(myLocationView, projection, focalPointChangeListener);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -83,6 +87,5 @@ public class MyLocationViewSettingsTest {
|
||||
locationViewSettings.setEnabled(true);
|
||||
assertTrue("state should be true", locationViewSettings.isEnabled());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user