diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp')
78 files changed, 2118 insertions, 228 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle index 7d18fabe32..76dd07b7d6 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/build.gradle +++ b/platform/android/MapboxGLAndroidSDKTestApp/build.gradle @@ -7,7 +7,7 @@ task accessToken { if (!tokenFile.exists()) { String tokenFileContents = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + "<resources>\n" + - " <string name=\"access_token\">" + "$System.env.MAPBOX_ACCESS_TOKEN" + "</string>\n" + + " <string name=\"mapbox_access_token\">" + "$System.env.MAPBOX_ACCESS_TOKEN" + "</string>\n" + "</resources>" if (tokenFileContents == null) { @@ -33,8 +33,8 @@ android { applicationId "com.mapbox.mapboxsdk.testapp" minSdkVersion 15 targetSdkVersion 23 - versionCode 7 - versionName "3.1.0" + versionCode 8 + versionName "4.0.0" // Specify AndroidJUnitRunner as the default test instrumentation runner testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/platform/android/MapboxGLAndroidSDKTestApp/proguard-rules.pro b/platform/android/MapboxGLAndroidSDKTestApp/proguard-rules.pro index c6445ac6a4..255a724744 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/proguard-rules.pro +++ b/platform/android/MapboxGLAndroidSDKTestApp/proguard-rules.pro @@ -1,8 +1,6 @@ # Mapbox ProGuard configuration is handled in the SDK - -keep class android.support.** { *; } - --dontwarn retrofit.** --keep class retrofit.** { *; } --keepattributes Signature --keepattributes Exceptions
\ No newline at end of file +-dontwarn com.squareup.** +-dontwarn com.retrofit.** +-dontwarn java.lang.** +-dontwarn org.codehaus.**
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/CameraActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/CameraActivityTest.java new file mode 100644 index 0000000000..1f176af879 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/CameraActivityTest.java @@ -0,0 +1,35 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.app.Activity; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on CameraActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class CameraActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<CameraActivity> mActivityRule = new ActivityTestRule<>(CameraActivity.class); + + private Activity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.cameraMapView); + } +} + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/CoordinateChangeActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/CoordinateChangeActivityTest.java new file mode 100644 index 0000000000..68633547ed --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/CoordinateChangeActivityTest.java @@ -0,0 +1,34 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.app.Activity; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on CameraActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class CoordinateChangeActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<CoordinateChangeActivity> mActivityRule = new ActivityTestRule<>(CoordinateChangeActivity.class); + + private Activity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.mapView); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/DirectionsActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/DirectionsActivityTest.java new file mode 100644 index 0000000000..3ce8d00aa0 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/DirectionsActivityTest.java @@ -0,0 +1,34 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.app.Activity; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on DirectionsActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class DirectionsActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<DirectionsActivity> mActivityRule = new ActivityTestRule<>(DirectionsActivity.class); + + private Activity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.mapView); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/DoubleMapActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/DoubleMapActivityTest.java new file mode 100644 index 0000000000..db014b69ac --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/DoubleMapActivityTest.java @@ -0,0 +1,35 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.app.Activity; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on DoubleMapActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class DoubleMapActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<DoubleMapActivity> mActivityRule = new ActivityTestRule<>(DoubleMapActivity.class); + + private Activity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.mapView); + checkViewIsDisplayed(R.id.mini_map); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/DynamicMarkerChangeActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/DynamicMarkerChangeActivityTest.java new file mode 100644 index 0000000000..b6feb8f1be --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/DynamicMarkerChangeActivityTest.java @@ -0,0 +1,33 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import com.mapbox.mapboxsdk.testapp.utils.ViewUtils; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on DynamicMarkerChange + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class DynamicMarkerChangeActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<DynamicMarkerChangeActivity> mActivityRule = new ActivityTestRule<>( + DynamicMarkerChangeActivity.class); + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.mapView); + } + + @Test + public void testFabClick() { + ViewUtils.clickView(R.id.fab); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/GeocoderActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/GeocoderActivityTest.java new file mode 100644 index 0000000000..c1ca7413c2 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/GeocoderActivityTest.java @@ -0,0 +1,34 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.app.Activity; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on GeocoderActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class GeocoderActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<GeocoderActivity> mActivityRule = new ActivityTestRule<>(GeocoderActivity.class); + + private Activity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.mapView); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowConcurrentActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowConcurrentActivityTest.java new file mode 100644 index 0000000000..e507c6cd61 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/InfoWindowConcurrentActivityTest.java @@ -0,0 +1,34 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.app.Activity; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on InfoWindowConcurrentActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class InfoWindowConcurrentActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<InfoWindowConcurrentActivity> mActivityRule = new ActivityTestRule<>(InfoWindowConcurrentActivity.class); + + private Activity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.infoWindowConcurrentMapView); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/LatLngBoundsActivityTest.java index ad74ea21c8..057979aeb8 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/VisibleCoordinateBoundsActivityTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/LatLngBoundsActivityTest.java @@ -14,7 +14,7 @@ import org.junit.runner.RunWith; */ @RunWith(AndroidJUnit4.class) @LargeTest -public class VisibleCoordinateBoundsActivityTest extends BaseTest { +public class LatLngBoundsActivityTest extends BaseTest { @Rule public ActivityTestRule<LatLngBoundsActivity> mActivityRule = new ActivityTestRule<>( diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityScreenTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityScreenTest.java index bbfa4ec73a..7c56f4c874 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityScreenTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityScreenTest.java @@ -4,17 +4,18 @@ import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.LargeTest; +import com.mapbox.mapboxsdk.testapp.utils.DrawerUtils; +import com.mapbox.mapboxsdk.testapp.utils.GestureUtils; +import com.mapbox.mapboxsdk.testapp.utils.ScreenshotUtil; + import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.action.ViewActions.doubleClick; -import static android.support.test.espresso.matcher.ViewMatchers.withContentDescription; import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static android.support.test.espresso.matcher.ViewMatchers.withText; /** * Tests on MainActivity with screenshots @@ -23,8 +24,6 @@ import static android.support.test.espresso.matcher.ViewMatchers.withText; @LargeTest public class MainActivityScreenTest extends BaseTest { - private final static String HOME_BUTTON_STRING = "Navigate up"; - @Rule public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>( MainActivity.class); @@ -41,26 +40,49 @@ public class MainActivityScreenTest extends BaseTest { checkViewIsDisplayed(R.id.mainMapView); } - /* - * Take a screenshot of Mapbox Streets to monitor #1649 - */ + @Test + public void testStyleEmerald() { + DrawerUtils.openDrawer(); + DrawerUtils.clickItem(R.string.styleEmerald); + GestureUtils.doubleClickGesture(R.id.mainMapView); + GestureUtils.doubleClickGesture(R.id.mainMapView); + takeNamedScreenshot(mActivity, "testEmeraldStyle"); + } @Test - public void testMapboxStreetsBlackAndWhite() { - // Click home and switch to Mapbox streets - onView(withContentDescription(HOME_BUTTON_STRING)) - .perform(click()); - onView(withText(R.string.styleMapboxStreets)) - .perform(click()); + public void testStyleStreets() { + DrawerUtils.openDrawer(); + DrawerUtils.clickItem(R.string.styleMapboxStreets); + GestureUtils.doubleClickGesture(R.id.mainMapView); + GestureUtils.doubleClickGesture(R.id.mainMapView); + takeNamedScreenshot(mActivity, "testStreetsStyle"); + } - // Zoom in - onView(withId(R.id.mainMapView)) - .perform(doubleClick()); - onView(withId(R.id.mainMapView)) - .perform(doubleClick()); + @Test + public void testStyleDark() { + DrawerUtils.openDrawer(); + DrawerUtils.clickItem(R.string.styleDark); + GestureUtils.doubleClickGesture(R.id.mainMapView); + GestureUtils.doubleClickGesture(R.id.mainMapView); + takeNamedScreenshot(mActivity, "testDarkStyle"); + } - // Standard screenshot - takeNamedScreenshot(mActivity, "testMapboxStreetsBlackAndWhite"); + @Test + public void testStyleLight() { + DrawerUtils.openDrawer(); + DrawerUtils.clickItem(R.string.styleLight); + GestureUtils.doubleClickGesture(R.id.mainMapView); + GestureUtils.doubleClickGesture(R.id.mainMapView); + takeNamedScreenshot(mActivity, "testLightStyle"); + } + + @Test + public void testStyleSatellite() { + DrawerUtils.openDrawer(); + DrawerUtils.clickItem(R.string.styleSatellite); + GestureUtils.doubleClickGesture(R.id.mainMapView); + GestureUtils.doubleClickGesture(R.id.mainMapView); + takeNamedScreenshot(mActivity, "testSatelliteStyle"); } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityTest.java index c545bc118b..a5f3a2e791 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MainActivityTest.java @@ -129,34 +129,6 @@ public class MainActivityTest extends BaseTest { .check(matches(isDisplayed())); } - @Test - public void testSwipeLeftMap() { - onView(withId(R.id.mainMapView)) - .perform(swipeLeft()) - .check(matches(isDisplayed())); - } - - @Test - public void testSwipeRightMap() { - onView(withId(R.id.mainMapView)) - .perform(swipeRight()) - .check(matches(isDisplayed())); - } - - @Test - public void testSwipeDownMap() { - onView(withId(R.id.mainMapView)) - .perform(swipeDown()) - .check(matches(isDisplayed())); - } - - @Test - public void testSwipeUpMap() { - onView(withId(R.id.mainMapView)) - .perform(swipeUp()) - .check(matches(isDisplayed())); - } - /* * Test the main drawer options */ diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/ManualZoomActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/ManualZoomActivityTest.java new file mode 100644 index 0000000000..8ce8498d64 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/ManualZoomActivityTest.java @@ -0,0 +1,34 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.app.Activity; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on ManualZoomActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class ManualZoomActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<ManualZoomActivity> mActivityRule = new ActivityTestRule<>(ManualZoomActivity.class); + + private Activity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.manualZoomMapView); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapPaddingActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapPaddingActivityTest.java new file mode 100644 index 0000000000..c252077856 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapPaddingActivityTest.java @@ -0,0 +1,34 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.app.Activity; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on MapPaddingActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class MapPaddingActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<MapPaddingActivity> mActivityRule = new ActivityTestRule<>(MapPaddingActivity.class); + + private Activity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.mapView); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapboxMapActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapboxMapActivityTest.java new file mode 100644 index 0000000000..eaa1584a3f --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MapboxMapActivityTest.java @@ -0,0 +1,34 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.app.Activity; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on MapboxMapActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class MapboxMapActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<MapboxMapActivity> mActivityRule = new ActivityTestRule<>(MapboxMapActivity.class); + + private Activity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.mapView); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MaxMinZoomActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MaxMinZoomActivityTest.java new file mode 100644 index 0000000000..e93a7675f0 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/MaxMinZoomActivityTest.java @@ -0,0 +1,34 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.app.Activity; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on MaxMinZoomActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class MaxMinZoomActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<MaxMinZoomActivity> mActivityRule = new ActivityTestRule<>(MaxMinZoomActivity.class); + + private Activity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.manualZoomMapView); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/ScrollByActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/ScrollByActivityTest.java new file mode 100644 index 0000000000..05386b089e --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/ScrollByActivityTest.java @@ -0,0 +1,26 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on ScrollByActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class ScrollByActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<ScrollByActivity> mActivityRule = new ActivityTestRule<>(ScrollByActivity.class); + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.mapView); + } +} + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/SupportMapFragmentActivityTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/SupportMapFragmentActivityTest.java new file mode 100644 index 0000000000..7ae03e0d07 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/SupportMapFragmentActivityTest.java @@ -0,0 +1,35 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.app.Activity; +import android.support.test.rule.ActivityTestRule; +import android.support.test.runner.AndroidJUnit4; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Tests on SupportMapFragmentActivity + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class SupportMapFragmentActivityTest extends BaseTest { + + @Rule + public ActivityTestRule<SupportMapFragmentActivity> mActivityRule = new ActivityTestRule<>(SupportMapFragmentActivity.class); + + private Activity mActivity = null; + + @Before + public void setActivity() { + mActivity = mActivityRule.getActivity(); + } + + @Test + public void testSanity() { + checkViewIsDisplayed(R.id.fragment_container); + } +} + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/DrawerUtils.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/DrawerUtils.java new file mode 100644 index 0000000000..8d8905fdf4 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/DrawerUtils.java @@ -0,0 +1,29 @@ +package com.mapbox.mapboxsdk.testapp.utils; + +import android.support.annotation.StringRes; +import android.support.test.espresso.Espresso; +import android.support.test.espresso.action.ViewActions; +import android.support.test.espresso.matcher.ViewMatchers; + +import com.mapbox.mapboxsdk.testapp.R; + +import org.hamcrest.Matchers; + +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.action.ViewActions.click; +import static android.support.test.espresso.matcher.ViewMatchers.withContentDescription; + +public class DrawerUtils { + + private final static String HOME_BUTTON_STRING = "Navigate up"; + + public static void openDrawer(){ + onView(withContentDescription(HOME_BUTTON_STRING)).perform(click()); + } + + public static void clickItem(@StringRes int txtId){ + Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.design_menu_item_text), + ViewMatchers.hasSibling(ViewMatchers.withText(txtId)))).perform(ViewActions.click()); + } + +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/GestureUtils.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/GestureUtils.java new file mode 100644 index 0000000000..37c18399e4 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/GestureUtils.java @@ -0,0 +1,17 @@ +package com.mapbox.mapboxsdk.testapp.utils; + +import android.support.annotation.IdRes; + +import com.mapbox.mapboxsdk.testapp.R; + +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.action.ViewActions.doubleClick; +import static android.support.test.espresso.matcher.ViewMatchers.withId; + +public class GestureUtils { + + public static void doubleClickGesture(@IdRes int id){ + onView(withId(id)).perform(doubleClick()); + } + +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/ViewUtils.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/ViewUtils.java new file mode 100644 index 0000000000..01ee3e9b9f --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/utils/ViewUtils.java @@ -0,0 +1,15 @@ +package com.mapbox.mapboxsdk.testapp.utils; + +import android.support.annotation.IdRes; + +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.action.ViewActions.click; +import static android.support.test.espresso.matcher.ViewMatchers.withId; + +public class ViewUtils { + + public static void clickView(@IdRes int viewRes) { + onView(withId(viewRes)) + .perform(click()); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index e331884224..4b44efdfe5 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -5,6 +5,8 @@ <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <application android:name=".MapboxApplication" @@ -84,10 +86,27 @@ <activity android:name=".ScrollByActivity" android:label="@string/activity_scroll_by" /> + <activity + android:name=".DynamicMarkerChangeActivity" + android:label="@string/activity_dynamic_marker" /> + <activity + android:name=".MapPaddingActivity" + android:screenOrientation="portrait" + android:label="@string/activity_map_padding" /> <meta-data android:name="com.mapbox.AccessToken" android:value="" /> + + <meta-data + android:name="com.mapbox.TestEventsServer" + android:value="https://cloudfront-staging.tilestream.net" /> + + <meta-data + android:name="com.mapbox.TestEventsAccessToken" + android:value="sk.eyJ1IjoiYmxlZWdlIiwiYSI6InNpcml1c2x5In0.KyT-boMyC_xZYTYojTc8zg" /> + + <service android:name="com.mapbox.mapboxsdk.telemetry.TelemetryService" /> </application> </manifest> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivity.java index 3c5e53a0ad..e85f0dda63 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/BulkMarkerActivity.java @@ -17,7 +17,7 @@ import android.widget.Spinner; import com.mapbox.mapboxsdk.annotations.MarkerOptions; import com.mapbox.mapboxsdk.camera.CameraPosition; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; @@ -150,7 +150,7 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView public LoadBulkMarkerTask(Context context, MapboxMap mapboxMap, int amount) { mMapboxMap = mapboxMap; - mapboxMap.removeAllAnnotations(); + mapboxMap.removeAnnotations(); mProgressDialog = ProgressDialog.show(context, "Loading", "Fetching markers", false); mAppContext = context.getApplicationContext(); mAmount = amount; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/CameraActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/CameraActivity.java index 9ccbc34c3d..50c3c3e42e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/CameraActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/CameraActivity.java @@ -10,9 +10,10 @@ import android.view.MenuItem; import android.view.View; import android.widget.Toast; +import com.mapbox.mapboxsdk.constants.MapboxConstants; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.camera.CameraPosition; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; @@ -47,6 +48,12 @@ public class CameraActivity extends AppCompatActivity { public void onMapReady(@NonNull final MapboxMap mapboxMap) { // set a style mapboxMap.setStyle(Style.MAPBOX_STREETS); + mapboxMap.setOnCameraChangeListener(new MapboxMap.OnCameraChangeListener() { + @Override + public void onCameraChange(CameraPosition position) { + Log.v(MapboxConstants.TAG, position.toString()); + } + }); // handle move button clicks findViewById(R.id.cameraMoveButton).setOnClickListener(new View.OnClickListener() { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/CoordinateChangeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/CoordinateChangeActivity.java index 25c3896be2..615b3388c3 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/CoordinateChangeActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/CoordinateChangeActivity.java @@ -10,7 +10,7 @@ import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapboxMap; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/DirectionsActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/DirectionsActivity.java index 7c37fc9540..6045eeadfd 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/DirectionsActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/DirectionsActivity.java @@ -17,7 +17,7 @@ import com.mapbox.directions.service.models.Waypoint; import com.mapbox.mapboxsdk.annotations.MarkerOptions; import com.mapbox.mapboxsdk.annotations.PolylineOptions; import com.mapbox.mapboxsdk.camera.CameraPosition; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/DoubleMapActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/DoubleMapActivity.java index 9bf168ee75..7af3790443 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/DoubleMapActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/DoubleMapActivity.java @@ -12,12 +12,13 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.MyLocationTracking; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.TrackingSettings; import com.mapbox.mapboxsdk.maps.UiSettings; public class DoubleMapActivity extends AppCompatActivity { @@ -63,7 +64,7 @@ public class DoubleMapActivity extends AppCompatActivity { super.onViewCreated(view, savedInstanceState); // MapView large - mMapView = (MapView) view.findViewById(R.id.mapview); + mMapView = (MapView) view.findViewById(R.id.mapView); mMapView.onCreate(savedInstanceState); mMapView.getMapAsync(new OnMapReadyCallback() { @Override @@ -72,7 +73,8 @@ public class DoubleMapActivity extends AppCompatActivity { mapboxMap.moveCamera(CameraUpdateFactory.zoomTo(18)); try { - mapboxMap.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW); + TrackingSettings settings = mapboxMap.getTrackingSettings(); + settings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW); } catch (SecurityException e) { // permission is handled in MainActivity getActivity().finish(); @@ -96,7 +98,8 @@ public class DoubleMapActivity extends AppCompatActivity { uiSettings.setLogoEnabled(false); try { - mapboxMap.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW); + TrackingSettings settings = mapboxMap.getTrackingSettings(); + settings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW); }catch (SecurityException e){ // permission is handled in MainActivity getActivity().finish(); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/DynamicMarkerChangeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/DynamicMarkerChangeActivity.java new file mode 100644 index 0000000000..6bd7596ea1 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/DynamicMarkerChangeActivity.java @@ -0,0 +1,145 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.design.widget.FloatingActionButton; +import android.support.v4.content.ContextCompat; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.MenuItem; +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.constants.Style; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.utils.ApiAccess; + +public class DynamicMarkerChangeActivity extends AppCompatActivity { + + private static final LatLng LAT_LNG_CHELSEA = new LatLng(51.481670, -0.190849); + private static final LatLng LAT_LNG_ARSENAL = new LatLng(51.555062, -0.108417); + + private MapView mMapView; + private MapboxMap mMapboxMap; + private IconFactory mIconFactory; + private Marker mMarker; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_dynamic_marker); + + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setDisplayShowHomeEnabled(true); + } + + mIconFactory = IconFactory.getInstance(this); + + mMapView = (MapView) findViewById(R.id.mapView); + mMapView.setTag(true); + mMapView.setAccessToken(ApiAccess.getToken(this)); + mMapView.onCreate(savedInstanceState); + mMapView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + mMapboxMap = mapboxMap; + mapboxMap.setStyle(Style.MAPBOX_STREETS); + mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(51.506675, -0.128699), 10)); + + // Create marker + MarkerOptions markerOptions = new MarkerOptions() + .position(LAT_LNG_CHELSEA) + .icon(mIconFactory.fromResource(R.drawable.ic_chelsea)); + mMarker = mapboxMap.addMarker(markerOptions); + } + }); + + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setColorFilter(ContextCompat.getColor(this, R.color.primary)); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mMapboxMap != null) { + updateMarker(); + } + } + }); + } + + private void updateMarker() { + // update model + boolean first = (boolean) mMapView.getTag(); + mMapView.setTag(!first); + + // update marker + mMarker.setPosition(first ? LAT_LNG_CHELSEA : LAT_LNG_ARSENAL); + mMarker.setIcon(mIconFactory.fromResource(first ? R.drawable.ic_chelsea : R.drawable.ic_arsenal)); + } + + + @Override + protected void onStart() { + super.onStart(); + mMapView.onStart(); + } + + @Override + public void onResume() { + super.onResume(); + mMapView.onResume(); + } + + @Override + public void onPause() { + super.onPause(); + mMapView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mMapView.onStop(); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + mMapView.onSaveInstanceState(outState); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mMapView.onDestroy(); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mMapView.onLowMemory(); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + onBackPressed(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/GeocoderActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/GeocoderActivity.java index b87812277c..5594348be7 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/GeocoderActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/GeocoderActivity.java @@ -78,7 +78,7 @@ public class GeocoderActivity extends AppCompatActivity { @Override public void onMapClick(@NonNull LatLng point) { setMessage("Geocoding..."); - mapboxMap.removeAllAnnotations(); + mapboxMap.removeAnnotations(); mapboxMap.addMarker(new MarkerOptions() .position(point) .title("Your finger is here")); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivity.java index e34bff9eed..f12a183563 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowActivity.java @@ -6,6 +6,7 @@ import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.MenuItem; +import android.widget.Toast; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.annotations.Marker; @@ -46,21 +47,24 @@ public class InfoWindowActivity extends AppCompatActivity { mapboxMap.addMarker(new MarkerOptions() .title("Intersection") .snippet("H St NW with 15th St NW") - .icon(IconFactory.getInstance(InfoWindowActivity.this) - .fromAsset("london-underground-24.png")) .position(new LatLng(38.9002073, -77.03364419))); mapboxMap.addMarker(new MarkerOptions() .title("White House") .snippet("The official residence and principal workplace of the President of the United States, located at 1600 Pennsylvania Avenue NW in Washington, D.C. It has been the residence of every U.S. president since John Adams in 1800.") - .icon(IconFactory.getInstance(InfoWindowActivity.this).fromAsset("town-hall-24.png")) .position(new LatLng(38.897705003219784, -77.03655168667463))); mapboxMap.addMarker(new MarkerOptions().title("Intersection") .snippet("E St NW with 17th St NW") - .icon(IconFactory.getInstance(InfoWindowActivity.this).fromAsset("commercial-24.png")) .position(new LatLng(38.8954236, -77.0394623))); + mapboxMap.setOnInfoWindowCloseListener(new MapboxMap.OnInfoWindowCloseListener() { + @Override + public void onInfoWindowClose(Marker marker) { + Toast.makeText(getApplicationContext(),"OnClose: "+marker.getTitle(),Toast.LENGTH_LONG).show(); + } + }); + final DecimalFormat formatter = new DecimalFormat("#.#####"); mapboxMap.setOnMapLongClickListener(new MapboxMap.OnMapLongClickListener() { @Override @@ -78,6 +82,25 @@ public class InfoWindowActivity extends AppCompatActivity { .position(point)); } }); + + + mapboxMap.setOnInfoWindowClickListener(new MapboxMap.OnInfoWindowClickListener() { + @Override + public boolean onInfoWindowClick(@NonNull Marker marker) { + Toast.makeText(getApplicationContext(), "OnClick: " + marker.getTitle(), Toast.LENGTH_LONG).show(); + // return false to close the info window + // return true to leave the info window open + return false; + } + }); + + mapboxMap.setOnInfoWindowLongClickListener(new MapboxMap.OnInfoWindowLongClickListener() { + @Override + public void onInfoWindowLongClick(Marker marker) { + Toast.makeText(getApplicationContext(),"OnLongClick: "+marker.getTitle(),Toast.LENGTH_LONG).show(); + } + }); + } }); } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java index 52f0bddc28..02380e59f2 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/InfoWindowAdapterActivity.java @@ -16,10 +16,11 @@ import android.widget.TextView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.annotations.Icon; import com.mapbox.mapboxsdk.annotations.Marker; -import com.mapbox.mapboxsdk.annotations.MarkerOptions; import com.mapbox.mapboxsdk.annotations.IconFactory; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.testapp.annotations.CityStateMarker; +import com.mapbox.mapboxsdk.testapp.annotations.CityStateMarkerOptions; import com.mapbox.mapboxsdk.utils.ApiAccess; import com.mapbox.mapboxsdk.maps.MapView; @@ -54,12 +55,12 @@ public class InfoWindowAdapterActivity extends AppCompatActivity { @Override public void onMapReady(@NonNull MapboxMap mapboxMap) { // add markers - mapboxMap.addMarker(generateMarker("Andorra", 42.505777, 1.52529, "#F44336")); - mapboxMap.addMarker(generateMarker("Luxembourg", 49.815273, 6.129583, "#3F51B5")); - mapboxMap.addMarker(generateMarker("Monaco", 43.738418, 7.424616, "#673AB7")); - mapboxMap.addMarker(generateMarker("Vatican City", 41.902916, 12.453389, "#009688")); - mapboxMap.addMarker(generateMarker("San Marino", 43.942360, 12.457777, "#795548")); - mapboxMap.addMarker(generateMarker("Liechtenstein", 47.166000, 9.555373, "#FF5722")); + mapboxMap.addMarker(generateCityStateMarker("Andorra", 42.505777, 1.52529, "#F44336")); + mapboxMap.addMarker(generateCityStateMarker("Luxembourg", 49.815273, 6.129583, "#3F51B5")); + mapboxMap.addMarker(generateCityStateMarker("Monaco", 43.738418, 7.424616, "#673AB7")); + mapboxMap.addMarker(generateCityStateMarker("Vatican City", 41.902916, 12.453389, "#009688")); + mapboxMap.addMarker(generateCityStateMarker("San Marino", 43.942360, 12.457777, "#795548")); + mapboxMap.addMarker(generateCityStateMarker("Liechtenstein", 47.166000, 9.555373, "#FF5722")); // add custom window adapter mapboxMap.setInfoWindowAdapter(new MapboxMap.InfoWindowAdapter() { @@ -71,7 +72,12 @@ public class InfoWindowAdapterActivity extends AppCompatActivity { TextView textView = new TextView(InfoWindowAdapterActivity.this); textView.setText(marker.getTitle()); textView.setTextColor(Color.WHITE); - textView.setBackgroundColor(Color.parseColor(marker.getSnippet())); + + if(marker instanceof CityStateMarker){ + CityStateMarker cityStateMarker = (CityStateMarker)marker; + textView.setBackgroundColor(Color.parseColor(cityStateMarker.getInfoWindowBackgroundColor())); + } + textView.setPadding(tenDp, tenDp, tenDp, tenDp); return textView; } @@ -80,13 +86,13 @@ public class InfoWindowAdapterActivity extends AppCompatActivity { }); } - private MarkerOptions generateMarker(String title, double lat, double lng, String color) { - MarkerOptions marker = new MarkerOptions(); + private CityStateMarkerOptions generateCityStateMarker(String title, double lat, double lng, String color) { + CityStateMarkerOptions marker = new CityStateMarkerOptions(); marker.title(title); - marker.snippet(color); marker.position(new LatLng(lat, lng)); + marker.infoWindowBackground(color); - mIconDrawable.setColorFilter(Color.parseColor(marker.getSnippet()), PorterDuff.Mode.SRC_IN); + mIconDrawable.setColorFilter(Color.parseColor(color), PorterDuff.Mode.SRC_IN); Icon icon = mIconFactory.fromDrawable(mIconDrawable); marker.icon(icon); return marker; @@ -144,4 +150,5 @@ public class InfoWindowAdapterActivity extends AppCompatActivity { return super.onOptionsItemSelected(item); } } + } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/LatLngBoundsActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/LatLngBoundsActivity.java index ee39beb04a..3246807f89 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/LatLngBoundsActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/LatLngBoundsActivity.java @@ -10,7 +10,7 @@ import android.view.MenuItem; import com.mapbox.mapboxsdk.annotations.MarkerOptions; import com.mapbox.mapboxsdk.constants.MapboxConstants; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.geometry.LatLngBounds; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java index 3a473f63c5..d1ac656cd0 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MainActivity.java @@ -38,6 +38,7 @@ import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.layers.CustomLayer; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.TrackingSettings; import com.mapbox.mapboxsdk.maps.UiSettings; import com.mapbox.mapboxsdk.testapp.layers.ExampleCustomLayer; import com.mapbox.mapboxsdk.testapp.utils.GeoParseUtil; @@ -213,13 +214,21 @@ public class MainActivity extends AppCompatActivity { mMapboxMap.setOnInfoWindowClickListener(new MapboxMap.OnInfoWindowClickListener() { @Override - public boolean onMarkerClick(@NonNull Marker marker) { + public boolean onInfoWindowClick(@NonNull Marker marker) { Snackbar.make(mCoordinatorLayout, "InfoWindow Click Listener for " + marker.getTitle(), Snackbar.LENGTH_SHORT).show(); marker.hideInfoWindow(); return true; } }); + + mMapboxMap.setOnCameraChangeListener(new MapboxMap.OnCameraChangeListener() { + @Override + public void onCameraChange(CameraPosition position) { + Log.v(TAG, "OnCameraChange : " + position); + } + }); + changeMapStyle(mSelectedStyle); } }); @@ -455,6 +464,14 @@ public class MainActivity extends AppCompatActivity { startActivity(new Intent(getApplicationContext(), ScrollByActivity.class)); return true; + case R.id.action_dynamic_marker: + startActivity(new Intent(getApplicationContext(), DynamicMarkerChangeActivity.class)); + return true; + + case R.id.action_map_padding: + startActivity(new Intent(getApplicationContext(),MapPaddingActivity.class)); + return true; + default: return changeMapStyle(menuItem.getItemId()); } @@ -539,12 +556,20 @@ public class MainActivity extends AppCompatActivity { } }); mMapboxMap.setMyLocationEnabled(true); - mMapboxMap.setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE); - mMapboxMap.setMyBearingTrackingMode(MyBearingTracking.GPS); + + TrackingSettings trackingSettings = mMapboxMap.getTrackingSettings(); + trackingSettings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE); + trackingSettings.setMyBearingTrackingMode(MyBearingTracking.GPS); + mLocationFAB.setColorFilter(ContextCompat.getColor(this, R.color.primary)); } } else { - mMapboxMap.setMyLocationEnabled(false); + if ((ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) + == PackageManager.PERMISSION_GRANTED) || + (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED)) { + mMapboxMap.setMyLocationEnabled(false); + } mLocationFAB.setColorFilter(Color.TRANSPARENT); } } @@ -630,7 +655,7 @@ public class MainActivity extends AppCompatActivity { private void removeAnnotations() { mMarkerList.clear(); - mMapboxMap.removeAllAnnotations(); + mMapboxMap.removeAnnotations(); } private void addCustomLayer() { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/ManualZoomActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/ManualZoomActivity.java index 83f50f7e61..1f74d1e7f8 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/ManualZoomActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/ManualZoomActivity.java @@ -10,7 +10,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.View; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java index e8750b66d7..4615d35e33 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapFragmentActivity.java @@ -9,7 +9,7 @@ import android.support.v7.widget.Toolbar; import android.view.MenuItem; import com.mapbox.mapboxsdk.camera.CameraPosition; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.maps.MapFragment; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapPaddingActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapPaddingActivity.java new file mode 100644 index 0000000000..524925d51b --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapPaddingActivity.java @@ -0,0 +1,162 @@ +package com.mapbox.mapboxsdk.testapp; + +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.Menu; +import android.view.MenuItem; + +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.constants.MyLocationTracking; +import com.mapbox.mapboxsdk.constants.Style; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.TrackingSettings; +import com.mapbox.mapboxsdk.utils.ApiAccess; + +public class MapPaddingActivity extends AppCompatActivity { + + private MapView mMapView; + private MapboxMap mMapboxMap; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_map_padding); + + final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setDisplayShowHomeEnabled(true); + } + + mMapView = (MapView) findViewById(R.id.mapView); + mMapView.setTag(true); + mMapView.setAccessToken(ApiAccess.getToken(this)); + mMapView.onCreate(savedInstanceState); + mMapView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(@NonNull MapboxMap mapboxMap) { + mMapboxMap = mapboxMap; + mapboxMap.setStyle(Style.MAPBOX_STREETS); + + moveToBangalore(); + + int paddingLeft = (int) getResources().getDimension(R.dimen.map_padding_left); + int paddingBottom = (int) getResources().getDimension(R.dimen.map_padding_bottom); + int paddingRight = (int) getResources().getDimension(R.dimen.map_padding_right); + mapboxMap.setPadding(paddingLeft, toolbar.getHeight(), paddingRight, paddingBottom); + } + }); + } + + @Override + protected void onStart() { + super.onStart(); + mMapView.onStart(); + } + + @Override + public void onResume() { + super.onResume(); + mMapView.onResume(); + } + + @Override + public void onPause() { + super.onPause(); + mMapView.onPause(); + } + + @Override + protected void onStop() { + super.onStop(); + mMapView.onStop(); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + mMapView.onSaveInstanceState(outState); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mMapView.onDestroy(); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + mMapView.onLowMemory(); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_padding, menu); + return true; + } + + private void toggleGps(boolean enable) { + try { + // Enable user location + mMapboxMap.setMyLocationEnabled(enable); + + TrackingSettings trackingSettings = mMapboxMap.getTrackingSettings(); + trackingSettings.setDismissTrackingOnGesture(false); + trackingSettings.setMyLocationTrackingMode(enable ? MyLocationTracking.TRACKING_FOLLOW : MyLocationTracking.TRACKING_NONE); + } catch (SecurityException e) { + // permission not granted is handled in MainActivity + finish(); + } + } + + private void moveToBangalore() { + toggleGps(false); + LatLng bangalore = new LatLng(12.9810816, 77.6368034); + mMapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition( + new CameraPosition.Builder() + .zoom(16) + .target(bangalore) + .bearing(40) + .tilt(45) + .build())); + mMapboxMap.addMarker(new MarkerOptions().title("Center map").position(bangalore)); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + onBackPressed(); + return true; + + case R.id.action_user_tracking: + if (mMapboxMap != null) { + toggleGps(true); + } + return true; + + case R.id.action_bangalore: + if (mMapboxMap != null) { + moveToBangalore(); + } + return true; + + default: + return super.onOptionsItemSelected(item); + } + } + +} + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxMapActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxMapActivity.java index 89ae1150ea..16160a2fc6 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxMapActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxMapActivity.java @@ -9,7 +9,7 @@ import android.support.v7.widget.Toolbar; import android.view.MenuItem; import com.mapbox.mapboxsdk.camera.CameraPosition; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MaxMinZoomActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MaxMinZoomActivity.java index 3ace776e02..19c2578db2 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MaxMinZoomActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MaxMinZoomActivity.java @@ -9,12 +9,13 @@ import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.UiSettings; import com.mapbox.mapboxsdk.utils.ApiAccess; public class MaxMinZoomActivity extends AppCompatActivity { @@ -44,8 +45,11 @@ public class MaxMinZoomActivity extends AppCompatActivity { public void onMapReady(@NonNull final MapboxMap mapboxMap) { mMapboxMap = mapboxMap; mMapboxMap.setStyle(Style.SATELLITE_STREETS); - mMapboxMap.setMinZoom(3); - mMapboxMap.setMaxZoom(5); + + UiSettings uiSettings = mapboxMap.getUiSettings(); + uiSettings.setMinZoom(3); + uiSettings.setMaxZoom(5); + mMapboxMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(-1.063510, 32.895425))); } }); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MyLocationTrackingModeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MyLocationTrackingModeActivity.java index 411ca36316..2f3f744e71 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MyLocationTrackingModeActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MyLocationTrackingModeActivity.java @@ -15,12 +15,13 @@ import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.Toast; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.constants.MyBearingTracking; import com.mapbox.mapboxsdk.constants.MyLocationTracking; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.TrackingSettings; import com.mapbox.mapboxsdk.utils.ApiAccess; import com.mapbox.mapboxsdk.maps.MapView; @@ -39,25 +40,13 @@ public class MyLocationTrackingModeActivity extends AppCompatActivity implements Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); - ActionBar actionBar = getSupportActionBar(); + final ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayShowHomeEnabled(true); } - ArrayAdapter<CharSequence> locationTrackingAdapter = ArrayAdapter.createFromResource(actionBar.getThemedContext(), R.array.user_tracking_mode, android.R.layout.simple_spinner_item); - locationTrackingAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - mLocationSpinner = (Spinner) findViewById(R.id.spinner_location); - mLocationSpinner.setAdapter(locationTrackingAdapter); - mLocationSpinner.setOnItemSelectedListener(this); - - ArrayAdapter<CharSequence> bearingTrackingAdapter = ArrayAdapter.createFromResource(actionBar.getThemedContext(), R.array.user_bearing_mode, android.R.layout.simple_spinner_item); - bearingTrackingAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - mBearingSpinner = (Spinner) findViewById(R.id.spinner_bearing); - mBearingSpinner.setAdapter(bearingTrackingAdapter); - mBearingSpinner.setOnItemSelectedListener(this); - mMapView = (MapView) findViewById(R.id.mapView); mMapView.setAccessToken(ApiAccess.getToken(this)); mMapView.onCreate(savedInstanceState); @@ -68,6 +57,18 @@ public class MyLocationTrackingModeActivity extends AppCompatActivity implements mapboxMap.setOnMyLocationChangeListener(MyLocationTrackingModeActivity.this); + ArrayAdapter<CharSequence> locationTrackingAdapter = ArrayAdapter.createFromResource(actionBar.getThemedContext(), R.array.user_tracking_mode, android.R.layout.simple_spinner_item); + locationTrackingAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + mLocationSpinner = (Spinner) findViewById(R.id.spinner_location); + mLocationSpinner.setAdapter(locationTrackingAdapter); + mLocationSpinner.setOnItemSelectedListener(MyLocationTrackingModeActivity.this); + + ArrayAdapter<CharSequence> bearingTrackingAdapter = ArrayAdapter.createFromResource(actionBar.getThemedContext(), R.array.user_bearing_mode, android.R.layout.simple_spinner_item); + bearingTrackingAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + mBearingSpinner = (Spinner) findViewById(R.id.spinner_bearing); + mBearingSpinner.setAdapter(bearingTrackingAdapter); + mBearingSpinner.setOnItemSelectedListener(MyLocationTrackingModeActivity.this); + try { mapboxMap.setMyLocationEnabled(true); } catch (SecurityException e) { @@ -135,28 +136,29 @@ public class MyLocationTrackingModeActivity extends AppCompatActivity implements @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) throws SecurityException { + TrackingSettings trackingSettings = mMapboxMap.getTrackingSettings(); if (parent.getId() == R.id.spinner_location) { switch (position) { case 0: - mMapboxMap.setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE); + trackingSettings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE); break; case 1: - mMapboxMap.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW); + trackingSettings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW); break; } } else if (parent.getId() == R.id.spinner_bearing) { switch (position) { case 0: - mMapboxMap.setMyBearingTrackingMode(MyBearingTracking.NONE); + trackingSettings.setMyBearingTrackingMode(MyBearingTracking.NONE); break; case 1: - mMapboxMap.setMyBearingTrackingMode(MyBearingTracking.GPS); + trackingSettings.setMyBearingTrackingMode(MyBearingTracking.GPS); break; case 2: - mMapboxMap.setMyBearingTrackingMode(MyBearingTracking.COMPASS); + trackingSettings.setMyBearingTrackingMode(MyBearingTracking.COMPASS); break; } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java index eaf2b240b0..313eb6722b 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/PolylineActivity.java @@ -169,7 +169,7 @@ public class PolylineActivity extends AppCompatActivity { case R.id.action_id_remove: // test to remove all annotations mPolylineOptions.clear(); - mMapboxMap.removeAllAnnotations(); + mMapboxMap.removeAnnotations(); return true; case android.R.id.home: diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/ScrollByActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/ScrollByActivity.java index 47b81d35a8..2e0e741677 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/ScrollByActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/ScrollByActivity.java @@ -15,7 +15,7 @@ import android.widget.TextView; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/SupportMapFragmentActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/SupportMapFragmentActivity.java index 67d329d0d6..bf690b7943 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/SupportMapFragmentActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/SupportMapFragmentActivity.java @@ -9,7 +9,7 @@ import android.support.v7.widget.Toolbar; import android.view.MenuItem; import com.mapbox.mapboxsdk.camera.CameraPosition; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapboxMap; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TiltActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TiltActivity.java index 75c1eae191..1713673129 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TiltActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TiltActivity.java @@ -8,7 +8,7 @@ import android.support.v7.widget.Toolbar; import android.view.MenuItem; import com.mapbox.mapboxsdk.camera.CameraPosition; -import com.mapbox.mapboxsdk.maps.CameraUpdateFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.maps.MapboxMap; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/annotations/CityStateMarker.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/annotations/CityStateMarker.java new file mode 100644 index 0000000000..1ec5aa9c76 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/annotations/CityStateMarker.java @@ -0,0 +1,18 @@ +package com.mapbox.mapboxsdk.testapp.annotations; + +import com.mapbox.mapboxsdk.annotations.Marker; + +public class CityStateMarker extends Marker { + + private String mInfoWindowBackgroundColor; + + public CityStateMarker(CityStateMarkerOptions cityStateOptions, String color) { + super(cityStateOptions); + mInfoWindowBackgroundColor = color; + } + + public String getInfoWindowBackgroundColor() { + return mInfoWindowBackgroundColor; + } + +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/annotations/CityStateMarkerOptions.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/annotations/CityStateMarkerOptions.java new file mode 100644 index 0000000000..379a9210e5 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/annotations/CityStateMarkerOptions.java @@ -0,0 +1,68 @@ +package com.mapbox.mapboxsdk.testapp.annotations; + +import android.graphics.Bitmap; +import android.os.Parcel; +import android.os.Parcelable; + +import com.mapbox.mapboxsdk.annotations.BaseMarkerOptions; +import com.mapbox.mapboxsdk.annotations.Icon; +import com.mapbox.mapboxsdk.annotations.IconFactory; +import com.mapbox.mapboxsdk.geometry.LatLng; + +public class CityStateMarkerOptions extends BaseMarkerOptions<CityStateMarker, CityStateMarkerOptions> { + + private String mInfoWindowBackgroundColor; + + public CityStateMarkerOptions infoWindowBackground(String color) { + mInfoWindowBackgroundColor = color; + return getThis(); + } + + public CityStateMarkerOptions() { + } + + private CityStateMarkerOptions(Parcel in) { + position((LatLng) in.readParcelable(LatLng.class.getClassLoader())); + snippet(in.readString()); + String iconId = in.readString(); + Bitmap iconBitmap = in.readParcelable(Bitmap.class.getClassLoader()); + Icon icon = IconFactory.recreate(iconId, iconBitmap); + icon(icon); + title(in.readString()); + } + + @Override + public CityStateMarkerOptions getThis() { + return this; + } + + @Override + public CityStateMarker getMarker() { + return new CityStateMarker(this, mInfoWindowBackgroundColor); + } + + public static final Parcelable.Creator<CityStateMarkerOptions> CREATOR + = new Parcelable.Creator<CityStateMarkerOptions>() { + public CityStateMarkerOptions createFromParcel(Parcel in) { + return new CityStateMarkerOptions(in); + } + + public CityStateMarkerOptions[] newArray(int size) { + return new CityStateMarkerOptions[size]; + } + }; + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + out.writeParcelable(position, flags); + out.writeString(snippet); + out.writeString(icon.getId()); + out.writeParcelable(icon.getBitmap(), flags); + out.writeString(title); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_arsenal.png b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_arsenal.png Binary files differnew file mode 100644 index 0000000000..6fdac4ef09 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_arsenal.png diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_chelsea.png b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_chelsea.png Binary files differnew file mode 100644 index 0000000000..6cd376b281 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable-xxhdpi/ic_chelsea.png diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_dynamic_marker.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_dynamic_marker.xml new file mode 100644 index 0000000000..e16f6b317d --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_dynamic_marker.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0"> + <path + android:fillColor="#FF000000" + android:pathData="M7,7h10v3l4,-4 -4,-4v3H5v6h2V7zm10,10H7v-3l-4,4 4,4v-3h12v-6h-2v4zm-4,-2V9h-1l-2,1v1h1.5v4H13z"/> +</vector> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_map_padding.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_map_padding.xml new file mode 100644 index 0000000000..60b75a5493 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_map_padding.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0"> + <path + android:fillColor="#FF000000" + android:pathData="M19,19H5V5h7V3H5c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2v-7h-2v7zM14,3v2h3.59l-9.83,9.83 1.41,1.41L19,6.41V10h2V3h-7z"/> +</vector> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_directions.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_directions.xml index 5de3651272..21684ccadb 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_directions.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_directions.xml @@ -16,6 +16,6 @@ android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="match_parent" - app:style_url="@string/style_mapbox_streets" /> + app:style_url="@string/mapbox_style_mapbox_streets" /> </LinearLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_dynamic_marker.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_dynamic_marker.xml new file mode 100644 index 0000000000..73592448b2 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_dynamic_marker.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <android.support.v7.widget.Toolbar + android:id="@+id/toolbar" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:background="@color/primary" + android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> + + <FrameLayout + android:id="@+id/content_frame" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_below="@+id/toolbar"> + + <android.support.design.widget.CoordinatorLayout + android:id="@+id/coordinator_layout" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <com.mapbox.mapboxsdk.maps.MapView + android:id="@+id/mapView" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + + <android.support.design.widget.FloatingActionButton + android:id="@+id/fab" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="end|bottom" + android:layout_margin="@dimen/fab_margin" + android:src="@drawable/ic_animate_coordinates" + app:backgroundTint="@color/white" /> + + </android.support.design.widget.CoordinatorLayout> + + </FrameLayout> + +</RelativeLayout> + + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow.xml index eccd3ea8eb..f9e0145356 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow.xml @@ -16,7 +16,7 @@ android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="match_parent" - app:style_url="@string/style_mapbox_streets" + app:style_url="@string/mapbox_style_mapbox_streets" app:center_latitude="38.897705003219784" app:center_longitude="-77.03655168667463" app:zoom="15" /> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_adapter.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_adapter.xml index ccced6bbff..8cf30a4475 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_adapter.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_adapter.xml @@ -16,7 +16,7 @@ android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="match_parent" - app:style_url="@string/style_mapbox_streets" + app:style_url="@string/mapbox_style_mapbox_streets" app:center_latitude="47.798202" app:center_longitude="7.573781" app:zoom="4" /> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_concurrent.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_concurrent.xml index 062726fcb2..69276ad491 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_concurrent.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_infowindow_concurrent.xml @@ -16,7 +16,7 @@ android:id="@+id/infoWindowConcurrentMapView" android:layout_width="match_parent" android:layout_height="match_parent" - app:style_url="@string/style_mapbox_streets" + app:style_url="@string/mapbox_style_mapbox_streets" app:center_latitude="38.897705003219784" app:center_longitude="-77.03655168667463" app:zoom="15" /> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_padding.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_padding.xml new file mode 100644 index 0000000000..aa3c50d65c --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_map_padding.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <com.mapbox.mapboxsdk.maps.MapView + android:id="@+id/mapView" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + + <View + android:layout_width="@dimen/map_padding_left" + android:layout_height="match_parent" + android:layout_marginTop="?attr/actionBarSize" + android:alpha="0.5" + android:background="@color/mapbox_blue" /> + + <View + android:layout_width="match_parent" + android:layout_height="@dimen/map_padding_bottom" + android:layout_gravity="bottom" + android:layout_marginEnd="@dimen/map_padding_right" + android:layout_marginLeft="@dimen/map_padding_left" + android:layout_marginRight="@dimen/map_padding_right" + android:layout_marginStart="@dimen/map_padding_left" + android:alpha="0.5" + android:background="@color/mapbox_blue" /> + + + <android.support.v7.widget.Toolbar + android:id="@+id/toolbar" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:alpha="0.5" + android:background="@color/primary" + android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> + + <View + android:layout_width="@dimen/map_padding_right" + android:layout_height="match_parent" + android:layout_gravity="end" + android:layout_marginLeft="@dimen/map_padding_left" + android:layout_marginStart="@dimen/map_padding_left" + android:alpha="0.5" + android:layout_marginTop="?attr/actionBarSize" + android:background="@color/mapbox_blue" /> + +</FrameLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_mapboxmap.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_mapboxmap.xml index eccd3ea8eb..f9e0145356 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_mapboxmap.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_mapboxmap.xml @@ -16,7 +16,7 @@ android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="match_parent" - app:style_url="@string/style_mapbox_streets" + app:style_url="@string/mapbox_style_mapbox_streets" app:center_latitude="38.897705003219784" app:center_longitude="-77.03655168667463" app:zoom="15" /> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml index ce108ba129..5e9b8e62d7 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_marker_bulk.xml @@ -25,7 +25,7 @@ android:layout_height="match_parent" app:center_latitude="38.897705003219784" app:center_longitude="-77.03655168667463" - app:style_url="@string/style_mapbox_streets" + app:style_url="@string/mapbox_style_mapbox_streets" app:zoom="15" /> </LinearLayout> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_my_location_tracking.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_my_location_tracking.xml index 699fa4be6b..7b16910953 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_my_location_tracking.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_my_location_tracking.xml @@ -42,7 +42,7 @@ android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="match_parent" - app:style_url="@string/style_mapbox_streets" + app:style_url="@string/mapbox_style_mapbox_streets" app:zoom="15" /> </LinearLayout>
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_polyline.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_polyline.xml index 7875fc2021..7f4012f74e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_polyline.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_polyline.xml @@ -19,7 +19,7 @@ android:layout_below="@+id/toolbar" app:center_latitude="47.798202" app:center_longitude="7.573781" - app:style_url="@string/style_mapbox_streets" + app:style_url="@string/mapbox_style_mapbox_streets" app:zoom="4" /> <android.support.design.widget.FloatingActionButton diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml index 230a0a308e..88788fc429 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/fragment_double_map.xml @@ -5,10 +5,10 @@ android:layout_height="fill_parent"> <com.mapbox.mapboxsdk.maps.MapView - android:id="@+id/mapview" + android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="match_parent" - mapbox:access_token="@string/access_token" /> + mapbox:access_token="@string/mapbox_access_token" /> <FrameLayout android:id="@+id/map_card" @@ -22,6 +22,6 @@ android:id="@+id/mini_map" android:layout_width="100dp" android:layout_height="100dp" - mapbox:access_token="@string/access_token" /> + mapbox:access_token="@string/mapbox_access_token" /> </FrameLayout> </RelativeLayout>
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml index b008a4f636..512d195593 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_drawer.xml @@ -192,7 +192,18 @@ android:icon="@drawable/ic_input_24dp" android:title="@string/activity_scroll_by" /> + <item + android:id="@+id/action_dynamic_marker" + android:checkable="false" + android:icon="@drawable/ic_dynamic_marker" + android:title="@string/action_dynamic_marker" /> + + <item + android:id="@+id/action_map_padding" + android:checkable="false" + android:icon="@drawable/ic_map_padding" + android:title="@string/action_map_padding" /> + </menu> </item> - </menu> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_padding.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_padding.xml new file mode 100644 index 0000000000..0db887c4e7 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_padding.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:mapbox="http://schemas.android.com/apk/res-auto"> + <item + android:id="@+id/action_user_tracking" + android:title="My Location Tracking" + mapbox:showAsAction="never" /> + <item + android:id="@+id/action_bangalore" + android:title="Bangalore" + mapbox:showAsAction="never" /> +</menu>
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml index 87cfebffd6..c852ed0e7a 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml @@ -3,4 +3,8 @@ <dimen name="fab_margin">16dp</dimen> <dimen name="attr_margin">10dp</dimen> <dimen name="coordinatebounds_margin">32dp</dimen> + <dimen name="map_padding_left">96dp</dimen> + <dimen name="map_padding_bottom">256dp</dimen> + <dimen name="map_padding_right">32dp</dimen> + </resources> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml index 773642f291..ea346674b5 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml @@ -25,6 +25,8 @@ <string name="activity_geocoder">Geocoder Activity</string> <string name="activity_double_map">Double Map Activity</string> <string name="activity_scroll_by">Scroll By Activity</string> + <string name="activity_dynamic_marker">Dynamic Marker Activity</string> + <string name="activity_map_padding">Map Padding Activity</string> <string name="navdrawer_menu_title_mainactivity_controls">Main Activity Controls</string> <string name="navdrawer_menu_title_mainactivity_styles">Main Activity Styles</string> @@ -52,6 +54,8 @@ <string name="action_visible_bounds_explanation">Center map around 2 markers</string> <string name="action_remove_polylines">Remove polylines</string> <string name="action_double_mapview">Double MapView</string> + <string name="action_dynamic_marker">Dynamic Marker</string> + <string name="action_map_padding">Map Padding</string> <string name="button_camera_move">Move</string> <string name="button_camera_ease">Ease</string> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/IconTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/IconTest.java new file mode 100644 index 0000000000..9e95451cb1 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/IconTest.java @@ -0,0 +1,55 @@ +package com.mapbox.mapboxsdk.annotations; + +import android.graphics.Bitmap; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertNotSame; + +public class IconTest { + + @Mock + Bitmap mBitmap; + + @Before + public void beforeTest() { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testId() { + String id = "test"; + Icon icon = IconFactory.recreate(id, Bitmap.createBitmap(0, 0, Bitmap.Config.ALPHA_8)); + assertEquals("id should match", id, icon.getId()); + } + + @Test + public void testBitmap() { + Icon icon = IconFactory.recreate("test", mBitmap); + assertEquals("bitmap should match", mBitmap, icon.getBitmap()); + } + + @Test + public void testEquals() { + Icon icon1 = IconFactory.recreate("test", mBitmap); + Icon icon2 = IconFactory.recreate("test", mBitmap); + assertEquals("icons should not match", icon1, icon2); + } + + @Test + public void testEqualsObject() { + Icon icon = IconFactory.recreate("test", Bitmap.createBitmap(0, 0, Bitmap.Config.ALPHA_8)); + assertNotSame("icon should not match", new Object(), icon); + } + + @Test + public void testHashcode() { + Icon icon = IconFactory.recreate("test", mBitmap); + long expectedHashcode = 31 * mBitmap.hashCode() + "test".hashCode(); + assertEquals("hashcode should match", expectedHashcode, icon.hashCode()); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/InfoWindowTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/InfoWindowTest.java new file mode 100644 index 0000000000..11ab8173fd --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/InfoWindowTest.java @@ -0,0 +1,86 @@ +package com.mapbox.mapboxsdk.annotations; + +import android.graphics.PointF; + +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.Projection; + +import org.junit.Test; +import org.mockito.InjectMocks; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class InfoWindowTest { + + @InjectMocks + MapView mMapView = mock(MapView.class); + + @InjectMocks + MapboxMap mMapboxMap = mock(MapboxMap.class); + + @Test + public void testSanity() { + InfoWindow infoWindow = new InfoWindow(mMapView, mMapboxMap); + assertNotNull("infoWindow should exist", infoWindow); + } + + @Test + public void testBoundMarker() { + MarkerOptions markerOptions = new MarkerOptions(); + Marker marker = markerOptions.getMarker(); + InfoWindow infoWindow = new InfoWindow(mMapView, mMapboxMap).setBoundMarker(marker); + assertEquals("marker should match", marker, infoWindow.getBoundMarker()); + } + + @Test + public void testClose() { + InfoWindow infoWindow = new InfoWindow(mMapView, mMapboxMap); + infoWindow.close(); + assertEquals("infowindow should not be visible", false, infoWindow.isVisible()); + } + + + @Test + public void testOpen() { + LatLng latLng = new LatLng(0, 0); + Projection projection = mock(Projection.class); + when(mMapboxMap.getProjection()).thenReturn(projection); + when(projection.toScreenLocation(latLng)).thenReturn(new PointF(0, 0)); + + InfoWindow infoWindow = new InfoWindow(mMapView, mMapboxMap); + infoWindow.open(mMapView, new MarkerOptions().getMarker(), latLng, 0, 0); + assertEquals("infowindow should not be visible", true, infoWindow.isVisible()); + } + + @Test + public void testOpenClose() { + LatLng latLng = new LatLng(0, 0); + Projection projection = mock(Projection.class); + when(mMapboxMap.getProjection()).thenReturn(projection); + when(projection.toScreenLocation(latLng)).thenReturn(new PointF(0, 0)); + + InfoWindow infoWindow = new InfoWindow(mMapView, mMapboxMap); + infoWindow.open(mMapView, new MarkerOptions().getMarker(), latLng, 0, 0); + infoWindow.close(); + assertEquals("infowindow should not be visible", false, infoWindow.isVisible()); + } + + + @Test + public void testUpdate() { + LatLng latLng = new LatLng(0, 0); + Projection projection = mock(Projection.class); + when(mMapboxMap.getProjection()).thenReturn(projection); + when(projection.toScreenLocation(latLng)).thenReturn(new PointF(0, 0)); + + InfoWindow infoWindow = new InfoWindow(mMapView, mMapboxMap); + infoWindow.open(mMapView, new MarkerOptions().position(latLng).getMarker(), latLng, 0, 0); + infoWindow.update(); + } + +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/MarkerTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/MarkerTest.java new file mode 100644 index 0000000000..76e29c208b --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/MarkerTest.java @@ -0,0 +1,119 @@ +package com.mapbox.mapboxsdk.annotations; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; + +import com.mapbox.mapboxsdk.annotations.Marker; +import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.geometry.LatLng; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; + +public class MarkerTest { + + @Test + public void testSanity() { + MarkerOptions markerOptions = new MarkerOptions(); + assertNotNull("markerOptions should not be null", markerOptions); + } + + @Test + public void testMarker() { + MarkerOptions markerOptions = new MarkerOptions(); + assertNotNull("marker should not be null", markerOptions.getMarker()); + } + + @Test + public void testPosition() { + MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(10, 12)); + Marker marker = markerOptions.getMarker(); + assertEquals(marker.getPosition(), new LatLng(10, 12)); + assertEquals(markerOptions.getPosition(), new LatLng(10, 12)); + } + + @Test + public void testTitle() { + MarkerOptions markerOptions = new MarkerOptions().title("Mapbox"); + Marker marker = markerOptions.getMarker(); + assertEquals(marker.getTitle(), "Mapbox"); + assertEquals(markerOptions.getTitle(), "Mapbox"); + } + + @Test + public void testSnippet() { + MarkerOptions markerOptions = new MarkerOptions().snippet("Mapbox"); + Marker marker = markerOptions.getMarker(); + assertEquals(marker.getSnippet(), "Mapbox"); + } + + @Test + public void testBuilder() { + Marker marker = new MarkerOptions().title("title").snippet("snippet").position(new LatLng(10, 12)).getMarker(); + assertEquals(marker.getSnippet(), "snippet"); + + assertEquals(marker.getPosition(), new LatLng(10, 12)); + } + + @Test + public void testIcon() { + Bitmap bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_4444); + Icon icon = IconFactory.recreate("test", bitmap); + MarkerOptions markerOptions = new MarkerOptions().icon(icon); + Marker marker = markerOptions.getMarker(); + assertEquals("Icon should match", icon, marker.getIcon()); + assertEquals("Icon should match", icon, markerOptions.getIcon()); + } + + @Test + public void testHashCode() { + Marker marker = new MarkerOptions().position(new LatLng(10, 12)).getMarker(); + assertEquals("hash code should match", marker.hashCode(), -1946419200); + } + + @Test + public void testHashCodeBuilder() { + MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(10, 12)); + assertEquals("hash code should match", markerOptions.hashCode(), 579999617); + } + + @Test + public void testEquals() { + Marker markerOne = new MarkerOptions().position(new LatLng(0, 0)).getMarker(); + Marker markerTwo = new MarkerOptions().position(new LatLng(0, 0)).getMarker(); + assertEquals(markerOne, markerTwo); + } + + @Test + public void testEqualsItself() { + MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(0, 0)); + Marker marker = markerOptions.getMarker(); + assertEquals("Marker should match", marker, marker); + assertEquals("MarkerOptions should match", markerOptions, markerOptions); + } + + @Test + public void testNotEquals() { + MarkerOptions markerOptions = new MarkerOptions().position(new LatLng(0, 0)); + Marker marker = markerOptions.getMarker(); + assertNotEquals("MarkerOptions should match", markerOptions, new Object()); + assertNotEquals("Marker should match", marker, new Object()); + } + + @Test + public void testEqualityBuilder() { + MarkerOptions markerOne = new MarkerOptions().position(new LatLng(0, 0)); + MarkerOptions markerTwo = new MarkerOptions().position(new LatLng(0, 0)); + assertEquals(markerOne, markerTwo); + } + + @Test + public void testToString() { + Marker marker = new MarkerOptions().position(new LatLng(0, 0)).getMarker(); + assertEquals(marker.toString(), "Marker [position[" + "LatLng [longitude=0.0, latitude=0.0, altitude=0.0]" + "]]"); + } + +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/PolygonTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/PolygonTest.java index 281277692f..744bf55c07 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/PolygonTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/PolygonTest.java @@ -1,4 +1,4 @@ -package com.mapbox.mapboxsdk.maps; +package com.mapbox.mapboxsdk.annotations; import com.mapbox.mapboxsdk.annotations.Polygon; import com.mapbox.mapboxsdk.annotations.PolygonOptions; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/PolylineTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/PolylineTest.java index 78af961e02..b95c9dba2a 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/PolylineTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/annotations/PolylineTest.java @@ -1,4 +1,4 @@ -package com.mapbox.mapboxsdk.maps; +package com.mapbox.mapboxsdk.annotations; import com.mapbox.mapboxsdk.annotations.Polyline; import com.mapbox.mapboxsdk.annotations.PolylineOptions; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/camera/CameraPositionTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/camera/CameraPositionTest.java new file mode 100644 index 0000000000..e2109adf47 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/camera/CameraPositionTest.java @@ -0,0 +1,77 @@ +package com.mapbox.mapboxsdk.camera; + +import com.mapbox.mapboxsdk.constants.MapboxConstants; +import com.mapbox.mapboxsdk.constants.MathConstants; +import com.mapbox.mapboxsdk.geometry.LatLng; +import com.mapbox.mapboxsdk.utils.MathUtils; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +public class CameraPositionTest { + + @Test + public void testSanity() { + LatLng latLng = new LatLng(1, 2); + CameraPosition cameraPosition = new CameraPosition(latLng, 3, 4, 5); + assertNotNull("cameraPosition should not be null", cameraPosition); + } + + @Test + public void testToString() { + LatLng latLng = new LatLng(1, 2); + CameraPosition cameraPosition = new CameraPosition(latLng, 3, 4, 5); + assertEquals("toString should match", "Target: LatLng [longitude=2.0, latitude=1.0, altitude=0.0], Zoom:3.0, Bearing:5.0, Tilt:4.0", cameraPosition.toString()); + } + + @Test + public void testHashcode() { + LatLng latLng = new LatLng(1, 2); + CameraPosition cameraPosition = new CameraPosition(latLng, 3, 4, 5); + assertEquals("toString should match", -1007681505, cameraPosition.hashCode()); + } + + @Test + public void testRadiantBuilder() { + LatLng latLng = new LatLng(1, 2); + CameraPosition.Builder builder = new CameraPosition.Builder(true); + builder.target(latLng); + builder.zoom(3); + builder.tilt(4); + builder.bearing(5); + CameraPosition cameraPosition = new CameraPosition(latLng, 3, 4, 5); + assertEquals("CameraPosition should match", cameraPosition, builder.build()); + } + + @Test + public void testDegreesRadiantBuilder() { + LatLng latLng = new LatLng(1, 2); + float tilt = 4; + float bearing = 5; + float bearingRadiant = (float) (-bearing * MathConstants.DEG2RAD); + float tiltRadiant = (float) (MathUtils.clamp(tilt, MapboxConstants.MINIMUM_TILT, MapboxConstants.MAXIMUM_TILT) * MathConstants.DEG2RAD); + + CameraPosition.Builder degreeBuilder = new CameraPosition.Builder(false); + degreeBuilder.target(latLng); + degreeBuilder.zoom(3); + degreeBuilder.tilt(tilt); + degreeBuilder.bearing(bearing); + + CameraPosition.Builder radiantBuilder = new CameraPosition.Builder(true); + radiantBuilder.target(latLng); + radiantBuilder.zoom(3); + radiantBuilder.tilt(tiltRadiant); + radiantBuilder.bearing(bearingRadiant); + assertEquals("CameraPosition should match", radiantBuilder.build(), degreeBuilder.build()); + } + + @Test + public void testZoomUpdateBuilder() { + float zoomLevel = 5; + CameraPosition.Builder builder = new CameraPosition.Builder( + (CameraUpdateFactory.ZoomUpdate) CameraUpdateFactory.zoomTo(zoomLevel)); + assertEquals("zoom should match", zoomLevel, builder.build().zoom, 0); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngBoundsTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngBoundsTest.java index 451d774a78..e3870b63e2 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngBoundsTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngBoundsTest.java @@ -2,9 +2,11 @@ package com.mapbox.mapboxsdk.geometry; import com.mapbox.mapboxsdk.exceptions.InvalidLatLngBoundsException; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -85,6 +87,18 @@ public class LatLngBoundsTest { } @Test + public void testToLatLngs() { + mLatLngBounds = new LatLngBounds.Builder() + .include(LAT_LNG_NOT_NULL_ISLAND) + .include(LAT_LNG_NULL_ISLAND) + .build(); + + assertArrayEquals("LatLngs should match", + new LatLng[]{LAT_LNG_NOT_NULL_ISLAND, LAT_LNG_NULL_ISLAND}, + mLatLngBounds.toLatLngs()); + } + + @Test public void testIncluding() { assertTrue("LatLng should be included", mLatLngBounds.including(new LatLng(1, 1))); } @@ -106,6 +120,7 @@ public class LatLngBoundsTest { .include(LAT_LNG_NOT_NULL_ISLAND) .build(); assertEquals("equality should match", mLatLngBounds, latLngBounds); + assertEquals("not equal to a different object type", mLatLngBounds.equals(LAT_LNG_NOT_NULL_ISLAND), false); } @Test diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngSpanTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngSpanTest.java index 452046082e..7bf164166c 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngSpanTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/LatLngSpanTest.java @@ -10,6 +10,7 @@ import static org.junit.Assert.assertNotNull; public class LatLngSpanTest { private static final double DELTA = 1e-15; + private static final LatLng LAT_LNG_NULL_ISLAND = new LatLng(0, 0); @Test public void testSanity() { @@ -18,6 +19,12 @@ public class LatLngSpanTest { } @Test + public void testEquality() { + LatLngSpan latLngSpan = new LatLngSpan(0.0, 0.0); + assertEquals("latLngSpan is not equal to a LatLng", latLngSpan.equals(LAT_LNG_NULL_ISLAND), false); + } + + @Test public void testLatitudeConstructor() { double latitude = 1.23; LatLngSpan latLngSpan = new LatLngSpan(latitude, 0.0); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/ProjectedMetersTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/ProjectedMetersTest.java index 057cbaed56..bd40221706 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/ProjectedMetersTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/ProjectedMetersTest.java @@ -1,17 +1,55 @@ package com.mapbox.mapboxsdk.geometry; -import com.mapbox.mapboxsdk.geometry.ProjectedMeters; - import org.junit.Test; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; public class ProjectedMetersTest { + private static final LatLng LAT_LNG_NULL_ISLAND = new LatLng(0, 0); + @Test public void testSanity() { ProjectedMeters projectedMeters = new ProjectedMeters(0.0, 0.0); assertNotNull("projectedMeters should not be null", projectedMeters); } + @Test + public void testEquality() { + ProjectedMeters projectedMeters = new ProjectedMeters(0.0, 0.0); + assertEquals("projectedMeters is not equal to a LatLng", projectedMeters.equals(LAT_LNG_NULL_ISLAND), false); + assertEquals("projectedMeters is equal to itself", projectedMeters.equals(projectedMeters), true); + } + + @Test + public void testNorthing() { + ProjectedMeters projectedMeters = new ProjectedMeters(1.0, 0.0); + assertEquals("northing should be 1", 1, projectedMeters.getNorthing(), 0); + } + + @Test + public void testEasting() { + ProjectedMeters projectedMeters = new ProjectedMeters(0.0, 1.0); + assertEquals("easting should be 1", 1, projectedMeters.getEasting(), 0); + } + + @Test + public void testConstructor() { + ProjectedMeters projectedMeters1 = new ProjectedMeters(1, 2); + ProjectedMeters projectedMeters2 = new ProjectedMeters(projectedMeters1); + assertEquals("projectedmeters should match", projectedMeters1, projectedMeters2); + } + + @Test + public void testHashcode() { + ProjectedMeters meters = new ProjectedMeters(1, 2); + assertEquals("hashcode should match", -1048576, meters.hashCode()); + } + + @Test + public void testToString(){ + ProjectedMeters meters = new ProjectedMeters(1, 1); + assertEquals("toString should match","ProjectedMeters [northing=1.0, easting=1.0]",meters.toString()); + } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/VisibleRegionTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/VisibleRegionTest.java index 9423108214..83cfa37841 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/VisibleRegionTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/geometry/VisibleRegionTest.java @@ -20,6 +20,13 @@ public class VisibleRegionTest { } @Test + public void testEquality() { + VisibleRegion region = new VisibleRegion(FAR_LEFT, FAR_RIGHT, NEAR_LEFT, NEAR_RIGHT, BOUNDS); + assertEquals("visibleRegion is not equal to a LatLng", region.equals(FAR_LEFT), false); + assertEquals("visibleRegion is equal to itself", region.equals(region), true); + } + + @Test public void testFarLeftConstructor() { VisibleRegion region = new VisibleRegion(FAR_LEFT, FAR_RIGHT, NEAR_LEFT, NEAR_RIGHT, BOUNDS); assertEquals("LatLng should match", region.farLeft, FAR_LEFT); @@ -57,6 +64,12 @@ public class VisibleRegionTest { } @Test + public void testHashcode() { + VisibleRegion region = new VisibleRegion(FAR_LEFT, FAR_RIGHT, NEAR_LEFT, NEAR_RIGHT, BOUNDS); + assertEquals("hashcode should match", -923534102, region.hashCode()); + } + + @Test public void testToString() { VisibleRegion region = new VisibleRegion(FAR_LEFT, FAR_RIGHT, NEAR_LEFT, NEAR_RIGHT, BOUNDS); assertEquals("string should match", diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.java index 0f75655dc9..2fac586da1 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/MapboxMapTest.java @@ -1,11 +1,17 @@ package com.mapbox.mapboxsdk.maps; +import android.graphics.Color; import android.graphics.Point; import com.mapbox.mapboxsdk.annotations.Marker; import com.mapbox.mapboxsdk.annotations.MarkerOptions; +import com.mapbox.mapboxsdk.annotations.Polygon; +import com.mapbox.mapboxsdk.annotations.PolygonOptions; +import com.mapbox.mapboxsdk.annotations.Polyline; +import com.mapbox.mapboxsdk.annotations.PolylineOptions; import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; @@ -15,9 +21,13 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import java.util.ArrayList; +import java.util.List; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.matches; import static org.mockito.Mockito.mock; import static org.junit.Assert.assertNotNull; @@ -35,6 +45,39 @@ public class MapboxMapTest { @Mock MapboxMap.OnMarkerClickListener mOnMarkerClickListener; + @Mock + MapboxMap.OnCameraChangeListener mOnCameraChangeListener; + + @Mock + MapboxMap.InfoWindowAdapter mInfoWindowAdapter; + + @Mock + MapboxMap.OnScrollListener mScrollListener; + + @Mock + MapboxMap.OnFlingListener mFlingListener; + + @Mock + MapboxMap.OnFpsChangedListener mFpsChangedListener; + + @Mock + MapboxMap.OnInfoWindowClickListener mWindowClickListener; + + @Mock + MapboxMap.OnInfoWindowCloseListener mWindowCloseListener; + + @Mock + MapboxMap.OnInfoWindowLongClickListener mWindowLongClickListener; + + @Mock + MapboxMap.OnMyLocationChangeListener mLocationChangeListener; + + @Mock + MapboxMap.OnMyLocationTrackingModeChangeListener mMyLocationTrackingModeChangeListener; + + @Mock + MapboxMap.OnMyBearingTrackingModeChangeListener mMyBearingTrackingModeChangeListener; + @Before public void beforeTest() { MockitoAnnotations.initMocks(this); @@ -46,6 +89,16 @@ public class MapboxMapTest { assertNotNull("mMapboxMap should not be null", mMapboxMap); } + @Test + public void testMock() { + assertNotNull("mMapView should be mocked", mMapView); + } + + @Test + public void testGetMapView() { + assertNotNull("MapView should be non null", mMapboxMap.getMapView()); + } + // // UiSettings // @@ -56,15 +109,22 @@ public class MapboxMapTest { } // - // Projection + // TrackingSettings // @Test - public void testProjection(){ - assertNotNull("Projection should not be null",mMapboxMap.getProjection()); + public void testTrackingSettings() { + assertNotNull("TrackingSettings should not be null", mMapboxMap.getTrackingSettings()); } + // + // Projection + // + @Test + public void testProjection() { + assertNotNull("Projection should not be null", mMapboxMap.getProjection()); + } // // InfoWindow @@ -82,31 +142,97 @@ public class MapboxMapTest { assertFalse("ConcurrentWindows should be false", mMapboxMap.isAllowConcurrentMultipleOpenInfoWindows()); } + @Test + public void testInfoWindowAdapter() { + mMapboxMap.setInfoWindowAdapter(mInfoWindowAdapter); + assertEquals("InfoWindowAdpter should be the same", mInfoWindowAdapter, mMapboxMap.getInfoWindowAdapter()); + } + // // Location // @Test public void testMyLocationEnabled() { - try { - mMapboxMap.setMyLocationEnabled(true); - assertTrue("MyLocationEnabled should be true", mMapboxMap.isMyLocationEnabled()); - } catch (SecurityException e) { - assertTrue(false); - } + when(mMapView.isPermissionsAccepted()).thenReturn(true); + mMapboxMap.setMyLocationEnabled(true); + assertTrue("MyLocationEnabled should be true", mMapboxMap.isMyLocationEnabled()); + } @Test public void testMyLocationDisabled() { - try { - mMapboxMap.setMyLocationEnabled(false); - assertFalse("MyLocationEnabled should be false", mMapboxMap.isMyLocationEnabled()); - } catch (SecurityException e) { - assertTrue(false); - } + when(mMapView.isPermissionsAccepted()).thenReturn(true); + mMapboxMap.setMyLocationEnabled(false); + assertFalse("MyLocationEnabled should be false", mMapboxMap.isMyLocationEnabled()); + } + + // + // padding + // + + @Test + public void testPadding() { + mMapboxMap.setOnCameraChangeListener(mOnCameraChangeListener); + CameraPosition position = new CameraPosition.Builder().bearing(1).tilt(2).zoom(3).target(new LatLng(4, 5)).build(); + mMapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(position)); + mMapboxMap.setPadding(0, 0, 0, 0); + verify(mOnCameraChangeListener, times(2)).onCameraChange(position); } // + // setters/getters interfaces + // + + @Test + public void testScrollListener() { + mMapboxMap.setOnScrollListener(mScrollListener); + assertEquals("ScrollListener should match", mScrollListener, mMapboxMap.getOnScrollListener()); + } + + @Test + public void testFlingListener() { + mMapboxMap.setOnFlingListener(mFlingListener); + assertEquals("FlingListener should match", mFlingListener, mMapboxMap.getOnFlingListener()); + } + + @Test + public void testFpsListener() { + mMapboxMap.setOnFpsChangedListener(mFpsChangedListener); + assertEquals("FpsListener should match", mFpsChangedListener, mMapboxMap.getOnFpsChangedListener()); + } + + @Test + public void testInfoWindowClickListener() { + mMapboxMap.setOnInfoWindowClickListener(mWindowClickListener); + assertEquals("InfoWidowClickListener should match", mWindowClickListener, mMapboxMap.getOnInfoWindowClickListener()); + } + + @Test + public void testInfoWindowCloseListener() { + mMapboxMap.setOnInfoWindowCloseListener(mWindowCloseListener); + assertEquals("InfoWindowCloseListener should match", mWindowCloseListener, mMapboxMap.getOnInfoWindowCloseListener()); + } + + @Test + public void testInfoWindowLongClickListener() { + mMapboxMap.setOnInfoWindowLongClickListener(mWindowLongClickListener); + assertEquals("InfoWindowLongClickListener should match", mWindowLongClickListener, mMapboxMap.getOnInfoWindowLongClickListener()); + } + + @Test + public void testOnBearingTrackingModeChangeListener(){ + mMapboxMap.setOnMyBearingTrackingModeChangeListener(mMyBearingTrackingModeChangeListener); + assertEquals("MyBearingTrackingChangeListerner should match",mMyBearingTrackingModeChangeListener, mMapboxMap.getOnMyBearingTrackingModeChangeListener()); + } + + @Test + public void testOnLocationTrackingModeChangeListener(){ + mMapboxMap.setOnMyLocationTrackingModeChangeListener(mMyLocationTrackingModeChangeListener); + assertEquals("MyLocationTrackigChangeListener should match",mMyLocationTrackingModeChangeListener, mMapboxMap.getOnMyLocationTrackingModeChangeListener()); + } + + // // Style // @@ -183,7 +309,7 @@ public class MapboxMapTest { @Test public void testNewCameraPositionEaseCamera() { CameraPosition position = new CameraPosition.Builder().bearing(1).tilt(2).zoom(3).target(new LatLng(4, 5)).build(); - mMapboxMap.easeCamera(CameraUpdateFactory.newCameraPosition(position), 1000); + mMapboxMap.easeCamera(CameraUpdateFactory.newCameraPosition(position)); assertEquals("CameraPosition should be same", position, mMapboxMap.getCameraPosition()); } @@ -369,6 +495,238 @@ public class MapboxMapTest { } // + // OnCameraChangeListener + // + + @Test + public void testOnCameraChangeListener() { + CameraPosition position = new CameraPosition.Builder().bearing(1).tilt(2).zoom(3).target(new LatLng(4, 5)).build(); + mMapboxMap.setOnCameraChangeListener(mOnCameraChangeListener); + mMapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(position)); + verify(mOnCameraChangeListener, times(1)).onCameraChange(position); + } + + // + // Annotations + // + + @Test + public void testAddMarker() { + MarkerOptions markerOptions = new MarkerOptions(); + Marker marker = mMapboxMap.addMarker(markerOptions); + assertTrue("Marker should be contained", mMapboxMap.getMarkers().contains(marker)); + } + + @Test + public void testAddMarkers() { + List<MarkerOptions> markerList = new ArrayList<>(); + MarkerOptions markerOptions1 = new MarkerOptions().title("a"); + MarkerOptions markerOptions2 = new MarkerOptions().title("b"); + markerList.add(markerOptions1); + markerList.add(markerOptions2); + mMapboxMap.addMarkers(markerList); + assertEquals("Markers size should be 2", 2, mMapboxMap.getMarkers().size()); + assertTrue(mMapboxMap.getMarkers().contains(markerOptions1.getMarker())); + assertTrue(mMapboxMap.getMarkers().contains(markerOptions2.getMarker())); + } + + @Test + public void testAddPolygon() { + PolygonOptions polygonOptions = new PolygonOptions().add(new LatLng()); + Polygon polygon = mMapboxMap.addPolygon(polygonOptions); + assertTrue("Polygon should be contained", mMapboxMap.getPolygons().contains(polygon)); + } + + @Test + public void testAddEmptyPolygon() { + PolygonOptions polygonOptions = new PolygonOptions(); + Polygon polygon = mMapboxMap.addPolygon(polygonOptions); + assertTrue("Polygon should be ignored", !mMapboxMap.getPolygons().contains(polygon)); + } + + @Test + public void testAddPolygons() { + List<PolygonOptions> polygonList = new ArrayList<>(); + PolygonOptions polygonOptions1 = new PolygonOptions().fillColor(Color.BLACK).add(new LatLng()); + PolygonOptions polygonOptions2 = new PolygonOptions().fillColor(Color.WHITE).add(new LatLng()); + PolygonOptions polygonOptions3 = new PolygonOptions(); + polygonList.add(polygonOptions1); + polygonList.add(polygonOptions2); + polygonList.add(polygonOptions3); + mMapboxMap.addPolygons(polygonList); + assertEquals("Polygons size should be 2", 2, mMapboxMap.getPolygons().size()); + assertTrue(mMapboxMap.getPolygons().contains(polygonOptions1.getPolygon())); + assertTrue(mMapboxMap.getPolygons().contains(polygonOptions2.getPolygon())); + assertTrue("Polygon should be ignored", !mMapboxMap.getPolygons().contains(polygonOptions3.getPolygon())); + } + + @Test + public void testAddPolyline() { + PolylineOptions polylineOptions = new PolylineOptions().add(new LatLng()); + Polyline polyline = mMapboxMap.addPolyline(polylineOptions); + assertTrue("Polyline should be contained", mMapboxMap.getPolylines().contains(polyline)); + } + + @Test + public void testAddEmptyPolyline() { + PolylineOptions polylineOptions = new PolylineOptions(); + Polyline polyline = mMapboxMap.addPolyline(polylineOptions); + assertTrue("Polyline should be ignored", !mMapboxMap.getPolylines().contains(polyline)); + } + + @Test + public void testAddPolylines() { + List<PolylineOptions> polylineList = new ArrayList<>(); + PolylineOptions polygonOptions1 = new PolylineOptions().color(Color.BLACK).add(new LatLng()); + PolylineOptions polygonOptions2 = new PolylineOptions().color(Color.WHITE).add(new LatLng()); + PolylineOptions polygonOptions3 = new PolylineOptions(); + polylineList.add(polygonOptions1); + polylineList.add(polygonOptions2); + polylineList.add(polygonOptions3); + mMapboxMap.addPolylines(polylineList); + assertEquals("Polygons size should be 2", 2, mMapboxMap.getPolylines().size()); + assertTrue(mMapboxMap.getPolylines().contains(polygonOptions1.getPolyline())); + assertTrue(mMapboxMap.getPolylines().contains(polygonOptions2.getPolyline())); + assertTrue("Polyline should be ignored", !mMapboxMap.getPolylines().contains(polygonOptions3.getPolyline())); + } + + @Test + public void testRemoveMarker() { + MarkerOptions markerOptions = new MarkerOptions(); + Marker marker = mMapboxMap.addMarker(markerOptions); + mMapboxMap.removeMarker(marker); + assertTrue("Markers should be empty", mMapboxMap.getMarkers().isEmpty()); + } + + @Test + public void testRemovePolygon() { + PolygonOptions polygonOptions = new PolygonOptions(); + Polygon polygon = mMapboxMap.addPolygon(polygonOptions); + mMapboxMap.removePolygon(polygon); + assertTrue("Polygons should be empty", mMapboxMap.getPolylines().isEmpty()); + } + + @Test + public void testRemovePolyline() { + PolylineOptions polylineOptions = new PolylineOptions(); + Polyline polyline = mMapboxMap.addPolyline(polylineOptions); + mMapboxMap.removePolyline(polyline); + assertTrue("Polylines should be empty", mMapboxMap.getPolylines().isEmpty()); + } + + @Test + public void testRemoveAnnotation() { + MarkerOptions markerOptions = new MarkerOptions(); + Marker marker = mMapboxMap.addMarker(markerOptions); + mMapboxMap.removeAnnotation(marker); + assertTrue("Annotations should be empty", mMapboxMap.getAnnotations().isEmpty()); + } + + @Test + public void testRemoveAnnotationById() { + MarkerOptions markerOptions = new MarkerOptions(); + mMapboxMap.addMarker(markerOptions); + // id will always be 0 in unit tests + mMapboxMap.removeAnnotation(0); + assertTrue("Annotations should be empty", mMapboxMap.getAnnotations().isEmpty()); + } + + @Test + public void testRemoveAnnotations() { + List<MarkerOptions> markerList = new ArrayList<>(); + MarkerOptions markerOptions1 = new MarkerOptions().title("a"); + MarkerOptions markerOptions2 = new MarkerOptions().title("b"); + markerList.add(markerOptions1); + markerList.add(markerOptions2); + mMapboxMap.addMarkers(markerList); + mMapboxMap.removeAnnotations(); + assertTrue("Annotations should be empty", mMapboxMap.getAnnotations().isEmpty()); + } + + @Test + public void testRemoveAnnotationsByList() { + List<MarkerOptions> markerList = new ArrayList<>(); + MarkerOptions markerOptions1 = new MarkerOptions().title("a"); + MarkerOptions markerOptions2 = new MarkerOptions().title("b"); + markerList.add(markerOptions1); + markerList.add(markerOptions2); + List<Marker> markers = mMapboxMap.addMarkers(markerList); + Marker marker = mMapboxMap.addMarker(new MarkerOptions().title("c")); + mMapboxMap.removeAnnotations(markers); + assertTrue("Annotations should not be empty", mMapboxMap.getAnnotations().size() == 1); + assertTrue("Marker should be contained", mMapboxMap.getAnnotations().contains(marker)); + } + + @Test + public void testGetAnnotationById() { + MarkerOptions markerOptions = new MarkerOptions(); + Marker initialMarker = mMapboxMap.addMarker(markerOptions); + Marker retrievedMarker = (Marker) mMapboxMap.getAnnotation(0); + assertEquals("Markers should match", initialMarker, retrievedMarker); + } + + @Test + public void testGetAnnotations() { + assertNotNull("Annotations should be non null", mMapboxMap.getAnnotations()); + } + + @Test + public void testGetMarkers() { + assertNotNull("Markers should be non null", mMapboxMap.getMarkers()); + } + + @Test + public void testGetPolygons() { + assertNotNull("Polygons should be non null", mMapboxMap.getPolygons()); + } + + @Test + public void testGetPolylines() { + assertNotNull("Polylines should be non null", mMapboxMap.getPolylines()); + } + + @Test + public void testGetSelectedMarkers() { + assertNotNull("Selected markers should be non null", mMapboxMap.getSelectedMarkers()); + } + + @Test + public void testSelectMarker() { + mMapboxMap.setOnMarkerClickListener(mOnMarkerClickListener); + MarkerOptions markerOptions = new MarkerOptions(); + Marker marker = mMapboxMap.addMarker(markerOptions); + when(mOnMarkerClickListener.onMarkerClick(marker)).thenReturn(true); + mMapboxMap.selectMarker(marker); + assertTrue("Marker should be contained", mMapboxMap.getSelectedMarkers().contains(marker)); + } + + @Test + public void testDeselectMarker() { + mMapboxMap.setOnMarkerClickListener(mOnMarkerClickListener); + MarkerOptions markerOptions = new MarkerOptions(); + Marker marker = mMapboxMap.addMarker(markerOptions); + when(mOnMarkerClickListener.onMarkerClick(marker)).thenReturn(true); + mMapboxMap.selectMarker(marker); + mMapboxMap.deselectMarker(marker); + assertTrue("Selected markers should be empty", mMapboxMap.getSelectedMarkers().isEmpty()); + } + + @Test + public void testDeselectMarkers() { + mMapboxMap.setOnMarkerClickListener(mOnMarkerClickListener); + MarkerOptions markerOptions = new MarkerOptions(); + Marker marker1 = mMapboxMap.addMarker(markerOptions); + Marker marker2 = mMapboxMap.addMarker(markerOptions); + when(mOnMarkerClickListener.onMarkerClick(marker1)).thenReturn(true); + when(mOnMarkerClickListener.onMarkerClick(marker2)).thenReturn(true); + mMapboxMap.selectMarker(marker1); + mMapboxMap.selectMarker(marker2); + mMapboxMap.deselectMarkers(); + assertTrue("Selected markers should be empty", mMapboxMap.getSelectedMarkers().isEmpty()); + } + + + // // OnMarkerClick interface // diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/MarkerTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/MarkerTest.java deleted file mode 100644 index efe94e5396..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/MarkerTest.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.mapbox.mapboxsdk.maps; - -import com.mapbox.mapboxsdk.annotations.Marker; -import com.mapbox.mapboxsdk.annotations.MarkerOptions; -import com.mapbox.mapboxsdk.geometry.LatLng; - -import org.junit.Test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -public class MarkerTest { - - @Test - public void testSanity() { - MarkerOptions markerOptions = new MarkerOptions(); - assertNotNull("markerOptions should not be null", markerOptions); - } - - @Test - public void testMarker() { - MarkerOptions markerOptions = new MarkerOptions(); - assertNotNull("marker should not be null", markerOptions.getMarker()); - } - - @Test - public void testPosition() { - Marker marker = new MarkerOptions().position(new LatLng(10, 12)).getMarker(); - assertEquals(marker.getPosition(), new LatLng(10, 12)); - } - - @Test - public void testTitle() { - Marker marker = new MarkerOptions().title("Mapbox").getMarker(); - assertEquals(marker.getTitle(), "Mapbox"); - } - - @Test - public void testSnippet() { - Marker marker = new MarkerOptions().snippet("Mapbox").getMarker(); - assertEquals(marker.getSnippet(), "Mapbox"); - } - - @Test - public void testBuilder() { - Marker marker = new MarkerOptions().title("title").snippet("snippet").position(new LatLng(10, 12)).getMarker(); - assertEquals(marker.getTitle(), "title"); - assertEquals(marker.getSnippet(), "snippet"); - assertEquals(marker.getPosition(), new LatLng(10, 12)); - } - - @Test - public void testIcon() { - // find a way to test Icon - } - - @Test - public void testHashCode() { - Marker marker = new MarkerOptions().position(new LatLng(10, 12)).getMarker(); - assertEquals("hash code should match", marker.hashCode(), -1946419200); - } - - @Test - public void testEquality() { - Marker markerOne = new MarkerOptions().position(new LatLng(0, 0)).getMarker(); - Marker markerTwo = new MarkerOptions().position(new LatLng(0, 0)).getMarker(); - assertEquals(markerOne, markerTwo); - } - - @Test - public void testToString() { - Marker marker = new MarkerOptions().position(new LatLng(0, 0)).getMarker(); - assertEquals(marker.toString(), "Marker [position[" + "LatLng [longitude=0.0, latitude=0.0, altitude=0.0]" + "]]"); - } - -} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/TrackingSettingsTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/TrackingSettingsTest.java new file mode 100644 index 0000000000..266bbadd95 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/TrackingSettingsTest.java @@ -0,0 +1,53 @@ +package com.mapbox.mapboxsdk.maps; + +import com.mapbox.mapboxsdk.constants.MyBearingTracking; +import com.mapbox.mapboxsdk.constants.MyLocationTracking; + +import org.junit.Test; +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.mockito.Mockito.mock; + +public class TrackingSettingsTest { + + @InjectMocks + MapView mMapView = mock(MapView.class); + + @Test + public void testSanity() { + TrackingSettings trackingSettings = new TrackingSettings(mMapView, new UiSettings(mMapView)); + assertNotNull("trackingsettings should not be null", trackingSettings); + } + + @Test + public void testMyLocationTrackingMode() { + TrackingSettings trackingSettings = new TrackingSettings(mMapView, new UiSettings(mMapView)); + trackingSettings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW); + assertEquals("MyLocationTrackingMode should match", MyLocationTracking.TRACKING_FOLLOW, trackingSettings.getMyLocationTrackingMode()); + } + + @Test + public void testMyBearingTrackingMode() { + TrackingSettings trackingSettings = new TrackingSettings(mMapView, new UiSettings(mMapView)); + trackingSettings.setMyBearingTrackingMode(MyBearingTracking.COMPASS); + assertEquals("MyLocationTrackingMode should match", MyBearingTracking.COMPASS, trackingSettings.getMyBearingTrackingMode()); + } + + @Test + public void testDismissTrackingModesOnGesture() { + TrackingSettings trackingSettings = new TrackingSettings(mMapView, new UiSettings(mMapView)); + trackingSettings.setDismissTrackingOnGesture(false); + assertFalse("DismissTrackingOnGesture should be false", trackingSettings.isDismissTrackingOnGesture()); + } + + @Test + public void testValidateGesturesForTrackingModes(){ + TrackingSettings trackingSettings = new TrackingSettings(mMapView, new UiSettings(mMapView)); + trackingSettings.setDismissTrackingOnGesture(false); + trackingSettings.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW); + assertFalse("DismissTrackingOnGesture should be false", trackingSettings.isDismissTrackingOnGesture()); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/UiSettingsTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/UiSettingsTest.java index 9c867bf776..cb9031c66e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/UiSettingsTest.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/test/java/com/mapbox/mapboxsdk/maps/UiSettingsTest.java @@ -22,6 +22,30 @@ public class UiSettingsTest { } @Test + public void testMinZoom() { + double zoom = 10; + UiSettings uiSettings = new UiSettings(mMapView); + uiSettings.setMinZoom(zoom); + assertEquals("MinZoom should match", zoom, uiSettings.getMinZoom(), 0); + } + + @Test + public void testMaxZoom() { + double zoom = 10; + UiSettings uiSettings = new UiSettings(mMapView); + uiSettings.setMaxZoom(zoom); + assertEquals("MaxZoom should match", zoom, uiSettings.getMaxZoom(), 0); + } + + @Test + public void testInitialZoomLevels() { + //we are mocking MapView we expect a value of 0 to be returned + UiSettings uiSettings = new UiSettings(mMapView); + assertEquals("MaxZoom should match", 0, uiSettings.getMaxZoom(), 0); + assertEquals("MinZoom should match", 0, uiSettings.getMinZoom(), 0); + } + + @Test public void testCompassEnabled() { UiSettings uiSettings = new UiSettings(mMapView); uiSettings.setCompassEnabled(true); @@ -204,4 +228,10 @@ public class UiSettingsTest { assertEquals("Scroll gesture should be disabled", false, uiSettings.isScrollGesturesEnabled()); } + @Test + public void testInvalidate() { + UiSettings uiSettings = new UiSettings(mMapView); + uiSettings.invalidate(); + } + }
\ No newline at end of file |