diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main')
28 files changed, 540 insertions, 236 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index bb2bef35fb..d2a5032c81 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -709,6 +709,17 @@ android:value=".activity.FeatureOverviewActivity" /> </activity> <activity + android:name=".activity.storage.CacheManagementActivity" + android:description="@string/description_cache_management" + android:label="@string/activity_cache_management"> + <meta-data + android:name="@string/category" + android:value="@string/category_storage" /> + <meta-data + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity" /> + </activity> + <activity android:name=".activity.maplayout.BottomSheetActivity" android:description="@string/description_bottom_sheet" android:label="@string/activity_bottom_sheet"> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/assets/points-sf.geojson b/platform/android/MapboxGLAndroidSDKTestApp/src/main/assets/points-sf.geojson new file mode 100644 index 0000000000..9c96c4ef9f --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/assets/points-sf.geojson @@ -0,0 +1,115 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 237.5580596923828, + 37.78563944612241 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 237.58346557617185, + 37.743571187449064 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 237.51068115234375, + 37.72347854862523 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 237.51583099365234, + 37.77125750792944 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 237.5913619995117, + 37.795406713958236 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 237.56080627441403, + 37.69441603823106 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 237.62981414794922, + 37.722392304715825 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 237.52235412597656, + 37.807071480609274 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 237.53608703613278, + 37.75334401310656 + ] + } + }, + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [ + 237.57591247558594, + 37.77071473849609 + ] + } + } + ] +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/LatLngBoundsActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/LatLngBoundsActivity.java deleted file mode 100644 index 6d73ee776e..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/LatLngBoundsActivity.java +++ /dev/null @@ -1,172 +0,0 @@ -package com.mapbox.mapboxsdk.testapp.activity.camera; - -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.design.widget.BottomSheetBehavior; -import android.support.v7.app.AppCompatActivity; -import android.view.View; - -import com.mapbox.mapboxsdk.annotations.MarkerOptions; -import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; -import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.geometry.LatLngBounds; -import com.mapbox.mapboxsdk.maps.MapView; -import com.mapbox.mapboxsdk.maps.MapboxMap; -import com.mapbox.mapboxsdk.maps.Style; -import com.mapbox.mapboxsdk.testapp.R; -import com.mapbox.mapboxsdk.testapp.view.LockableBottomSheetBehavior; - -import java.util.ArrayList; -import java.util.List; - -/** - * Test activity showcasing using the LatLngBounds camera API. - */ -public class LatLngBoundsActivity extends AppCompatActivity implements View.OnClickListener { - - private static final List<LatLng> LOCATIONS = new ArrayList<LatLng>() { - { - add(new LatLng(37.806866, -122.422502)); - add(new LatLng(37.812905, -122.477605)); - add(new LatLng(37.826944, -122.423188)); - add(new LatLng(37.752676, -122.447736)); - add(new LatLng(37.769305, -122.479322)); - add(new LatLng(37.749834, -122.417867)); - add(new LatLng(37.756149, -122.405679)); - add(new LatLng(37.751403, -122.387397)); - add(new LatLng(37.793064, -122.391517)); - add(new LatLng(37.769122, -122.427394)); - } - }; - private static final LatLngBounds BOUNDS = new LatLngBounds.Builder().includes(LOCATIONS).build(); - private static final int ANIMATION_DURATION_LONG = 450; - private static final int ANIMATION_DURATION_SHORT = 250; - private static final int BOUNDS_PADDING_DIVIDER_SMALL = 3; - private static final int BOUNDS_PADDING_DIVIDER_LARGE = 9; - - private MapView mapView; - private MapboxMap mapboxMap; - private View bottomSheet; - private LockableBottomSheetBehavior bottomSheetBehavior; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_latlngbounds); - initBottomSheet(); - initMapView(savedInstanceState); - } - - private void initMapView(Bundle savedInstanceState) { - mapView = findViewById(R.id.mapView); - mapView.onCreate(savedInstanceState); - mapView.getMapAsync(map -> { - mapboxMap = map; - disableGestures(); - moveToBounds(bottomSheet.getMeasuredHeight(), BOUNDS_PADDING_DIVIDER_SMALL, ANIMATION_DURATION_SHORT); - loadStyle(); - }); - } - - private void loadStyle() { - mapboxMap.setStyle(new Style.Builder().fromUri(Style.MAPBOX_STREETS), style -> { - addMarkers(); - initFab(); - }); - } - - private void disableGestures() { - mapboxMap.getUiSettings().setTiltGesturesEnabled(false); - mapboxMap.getUiSettings().setRotateGesturesEnabled(false); - } - - private void addMarkers() { - for (LatLng location : LOCATIONS) { - mapboxMap.addMarker(new MarkerOptions().position(location)); - } - } - - private void initFab() { - findViewById(R.id.fab).setOnClickListener(this); - } - - @Override - public void onClick(View v) { - bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN); - v.animate().alpha(0.0f).setDuration(ANIMATION_DURATION_SHORT); - } - - private void initBottomSheet() { - bottomSheet = findViewById(R.id.bottom_sheet); - bottomSheetBehavior = (LockableBottomSheetBehavior) BottomSheetBehavior.from(bottomSheet); - bottomSheetBehavior.setLocked(true); - bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { - @Override - public void onStateChanged(@NonNull View bottomSheet, int newState) { - if (newState == BottomSheetBehavior.STATE_SETTLING && mapboxMap != null) { - moveToBounds(0, BOUNDS_PADDING_DIVIDER_LARGE, ANIMATION_DURATION_LONG); - } - } - - @Override - public void onSlide(@NonNull View bottomSheet, float slideOffset) { - - } - }); - } - - private void moveToBounds(int verticalOffset, int boundsPaddingDivider, int duration) { - int paddingHorizontal = mapView.getMeasuredWidth() / boundsPaddingDivider; - int paddingVertical = (mapView.getMeasuredHeight() - verticalOffset) / boundsPaddingDivider; - mapboxMap.animateCamera(CameraUpdateFactory.newLatLngBounds( - BOUNDS, - paddingHorizontal, - paddingVertical, - paddingHorizontal, - paddingVertical + verticalOffset), - duration - ); - } - - @Override - protected void onStart() { - super.onStart(); - mapView.onStart(); - } - - @Override - protected void onResume() { - super.onResume(); - mapView.onResume(); - } - - @Override - protected void onPause() { - super.onPause(); - mapView.onPause(); - } - - @Override - protected void onStop() { - super.onStop(); - mapView.onStop(); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapView.onLowMemory(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mapView.onDestroy(); - } - - @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - mapView.onSaveInstanceState(outState); - } -} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/LatLngBoundsActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/LatLngBoundsActivity.kt new file mode 100644 index 0000000000..23707f52a5 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/camera/LatLngBoundsActivity.kt @@ -0,0 +1,165 @@ +package com.mapbox.mapboxsdk.testapp.activity.camera + +import android.content.Context +import android.os.Bundle +import android.support.design.widget.BottomSheetBehavior +import android.support.v7.app.AppCompatActivity +import android.view.View +import com.mapbox.geojson.FeatureCollection +import com.mapbox.geojson.FeatureCollection.fromJson +import com.mapbox.geojson.Point +import com.mapbox.mapboxsdk.geometry.LatLng +import com.mapbox.mapboxsdk.geometry.LatLngBounds +import com.mapbox.mapboxsdk.maps.MapboxMap +import com.mapbox.mapboxsdk.maps.Style +import com.mapbox.mapboxsdk.style.layers.Property.ICON_ANCHOR_CENTER +import com.mapbox.mapboxsdk.style.layers.PropertyFactory.* +import com.mapbox.mapboxsdk.style.layers.SymbolLayer +import com.mapbox.mapboxsdk.style.sources.GeoJsonSource +import com.mapbox.mapboxsdk.testapp.R +import com.mapbox.mapboxsdk.testapp.utils.GeoParseUtil.loadStringFromAssets +import com.mapbox.mapboxsdk.utils.BitmapUtils +import kotlinx.android.synthetic.main.activity_latlngbounds.* +import java.net.URISyntaxException + +/** + * Test activity showcasing using the LatLngBounds camera API. + */ +class LatLngBoundsActivity : AppCompatActivity() { + + private lateinit var mapboxMap: MapboxMap + private lateinit var bottomSheetBehavior: BottomSheetBehavior<*> + private lateinit var bounds: LatLngBounds + + private val peekHeight by lazy { + 375.toPx(this) // 375dp + } + + private val additionalPadding by lazy { + 32.toPx(this) // 32dp + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_latlngbounds) + initMapView(savedInstanceState) + } + + private fun initMapView(savedInstanceState: Bundle?) { + mapView.onCreate(savedInstanceState) + mapView.getMapAsync { map -> + mapboxMap = map + + val featureCollection: FeatureCollection = fromJson(loadStringFromAssets(this, "points-sf.geojson")) + bounds = createBounds(featureCollection) + + map.getCameraForLatLngBounds(bounds, createPadding(peekHeight))?.let { + map.cameraPosition = it + } + + try { + loadStyle(featureCollection) + } catch (e: URISyntaxException) { + e.printStackTrace() + } + } + } + + private fun loadStyle(featureCollection: FeatureCollection) { + mapboxMap.setStyle(Style.Builder() + .fromUri(Style.MAPBOX_STREETS) + .withLayer(SymbolLayer("symbol", "symbol") + .withProperties( + iconAllowOverlap(true), + iconIgnorePlacement(true), + iconImage("icon"), + iconAnchor(ICON_ANCHOR_CENTER) + ) + ) + .withSource(GeoJsonSource("symbol", featureCollection)) + .withImage("icon", BitmapUtils.getDrawableFromRes(this@LatLngBoundsActivity, R.drawable.ic_android)!!) + ) { + initBottomSheet() + fab.setOnClickListener { bottomSheetBehavior.state = BottomSheetBehavior.STATE_EXPANDED } + } + } + + private fun initBottomSheet() { + bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet) + bottomSheetBehavior.setBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() { + override fun onSlide(bottomSheet: View, slideOffset: Float) { + val offset = convertSlideOffset(slideOffset) + val bottomPadding = (peekHeight * offset).toInt() + + mapboxMap.getCameraForLatLngBounds(bounds, createPadding(bottomPadding))?.let { + mapboxMap.cameraPosition = it + } + } + + override fun onStateChanged(bottomSheet: View, newState: Int) { + // no-op + } + }) + } + + // slideOffset ranges from NaN to -1.0, range from 1.0 to 0 instead + fun convertSlideOffset(slideOffset: Float): Float { + return if (slideOffset.equals(Float.NaN)) { + 1.0f + } else { + 1 + slideOffset + } + } + + fun createPadding(bottomPadding: Int): IntArray { + return intArrayOf(additionalPadding, additionalPadding, additionalPadding, bottomPadding) + } + + private fun createBounds(featureCollection: FeatureCollection): LatLngBounds { + val boundsBuilder = LatLngBounds.Builder() + featureCollection.features()?.let { + for (feature in it) { + val point = feature.geometry() as Point + boundsBuilder.include(LatLng(point.latitude(), point.longitude())) + } + } + return boundsBuilder.build() + } + + override fun onStart() { + super.onStart() + mapView.onStart() + } + + override fun onResume() { + super.onResume() + mapView.onResume() + } + + override fun onPause() { + super.onPause() + mapView.onPause() + } + + override fun onStop() { + super.onStop() + mapView.onStop() + } + + override fun onLowMemory() { + super.onLowMemory() + mapView.onLowMemory() + } + + override fun onDestroy() { + super.onDestroy() + mapView.onDestroy() + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + mapView.onSaveInstanceState(outState) + } +} + +fun Int.toPx(context: Context): Int = (this * context.resources.displayMetrics.density).toInt()
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/espresso/PixelTestActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/espresso/PixelTestActivity.kt index b69d1ee5ed..7de4da1985 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/espresso/PixelTestActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/espresso/PixelTestActivity.kt @@ -63,4 +63,4 @@ class PixelTestActivity : AppCompatActivity(), OnMapReadyCallback { super.onLowMemory() mapView.onLowMemory() } -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/NestedViewPagerActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/NestedViewPagerActivity.kt index 37909662ab..de7f0bb5ac 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/NestedViewPagerActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/NestedViewPagerActivity.kt @@ -17,7 +17,6 @@ import android.widget.TextView import com.mapbox.mapboxsdk.camera.CameraPosition import com.mapbox.mapboxsdk.geometry.LatLng import com.mapbox.mapboxsdk.maps.MapboxMapOptions -import com.mapbox.mapboxsdk.maps.OnMapReadyCallback import com.mapbox.mapboxsdk.maps.Style import com.mapbox.mapboxsdk.maps.SupportMapFragment import com.mapbox.mapboxsdk.testapp.R @@ -106,7 +105,7 @@ class NestedViewPagerActivity : AppCompatActivity() { class MapPagerAdapter(private val context: Context, fm: FragmentManager?) : FragmentStatePagerAdapter(fm) { override fun getItem(position: Int): Fragment { - val options = MapboxMapOptions.createFromAttributes(context, null) + val options = MapboxMapOptions.createFromAttributes(context) options.textureMode(true) options.doubleTapGesturesEnabled(false) options.rotateGesturesEnabled(false) @@ -127,7 +126,8 @@ class NestedViewPagerActivity : AppCompatActivity() { options.camera(CameraPosition.Builder().target(LatLng(62.326440, 92.764913)).zoom(3.0).build()) val fragment = SupportMapFragment.newInstance(options) fragment.getMapAsync { mapboxMap -> mapboxMap.setStyle(Style.DARK) } - return fragment } + return fragment + } 3 -> { return EmptyFragment.newInstance() } @@ -135,7 +135,8 @@ class NestedViewPagerActivity : AppCompatActivity() { options.camera(CameraPosition.Builder().target(LatLng(-25.007786, 133.623852)).zoom(3.0).build()) val fragment = SupportMapFragment.newInstance(options) fragment.getMapAsync { mapboxMap -> mapboxMap.setStyle(Style.SATELLITE) } - return fragment } + return fragment + } 5 -> { return EmptyFragment.newInstance() } @@ -162,4 +163,4 @@ class NestedViewPagerActivity : AppCompatActivity() { } } } -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/ViewPagerActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/ViewPagerActivity.kt index b6fba01d81..d1cb9acab6 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/ViewPagerActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/ViewPagerActivity.kt @@ -45,7 +45,7 @@ class ViewPagerActivity : AppCompatActivity() { } override fun getItem(position: Int): Fragment? { - val options = MapboxMapOptions.createFromAttributes(context, null) + val options = MapboxMapOptions.createFromAttributes(context) options.textureMode(true) options.camera( CameraPosition.Builder() diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/imagegenerator/SnapshotActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/imagegenerator/SnapshotActivity.kt index d01c8eb508..7c111865d1 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/imagegenerator/SnapshotActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/imagegenerator/SnapshotActivity.kt @@ -83,7 +83,7 @@ class SnapshotActivity : AppCompatActivity(), OnMapReadyCallback { } companion object { - const val TAG ="Mbgl-SnapshotActivity" + const val TAG = "Mbgl-SnapshotActivity" const val LOG_MESSAGE = "OnSnapshot" } -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt index 6a01d14249..9411c1c6a7 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationFragmentActivity.kt @@ -119,7 +119,7 @@ class LocationFragmentActivity : AppCompatActivity() { } override fun onFailure(exception: Exception) { - //noop + // noop } override fun onStart() { @@ -172,4 +172,4 @@ class LocationFragmentActivity : AppCompatActivity() { return textView } } -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java index f9adf608a1..6ec64e1d0c 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/location/LocationModesActivity.java @@ -356,6 +356,8 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea private void showTrackingListDialog() { List<String> trackingTypes = new ArrayList<>(); trackingTypes.add("None"); + trackingTypes.add("None Compass"); + trackingTypes.add("None GPS"); trackingTypes.add("Tracking"); trackingTypes.add("Tracking Compass"); trackingTypes.add("Tracking GPS"); @@ -370,6 +372,10 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea locationTrackingBtn.setText(selectedTrackingType); if (selectedTrackingType.contentEquals("None")) { setCameraTrackingMode(CameraMode.NONE); + } else if (selectedTrackingType.contentEquals("None Compass")) { + setCameraTrackingMode(CameraMode.NONE_COMPASS); + } else if (selectedTrackingType.contentEquals("None GPS")) { + setCameraTrackingMode(CameraMode.NONE_GPS); } else if (selectedTrackingType.contentEquals("Tracking")) { setCameraTrackingMode(CameraMode.TRACKING); } else if (selectedTrackingType.contentEquals("Tracking Compass")) { @@ -409,6 +415,10 @@ public class LocationModesActivity extends AppCompatActivity implements OnMapRea this.cameraMode = currentMode; if (currentMode == CameraMode.NONE) { locationTrackingBtn.setText("None"); + } else if (currentMode == CameraMode.NONE_COMPASS) { + locationTrackingBtn.setText("None Compass"); + } else if (currentMode == CameraMode.NONE_GPS) { + locationTrackingBtn.setText("None GPS"); } else if (currentMode == CameraMode.TRACKING) { locationTrackingBtn.setText("Tracking"); } else if (currentMode == CameraMode.TRACKING_COMPASS) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/BottomSheetActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/BottomSheetActivity.java index 4af6777995..9db7cb2c9d 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/BottomSheetActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/BottomSheetActivity.java @@ -133,7 +133,7 @@ public class BottomSheetActivity extends AppCompatActivity { Bundle bundle = new Bundle(); bundle.putInt("mapcounter", mapCounter); mapFragment.setArguments(bundle); - MapboxMapOptions mapboxMapOptions = MapboxMapOptions.createFromAttributes(context, null); + MapboxMapOptions mapboxMapOptions = MapboxMapOptions.createFromAttributes(context); mapFragment.setArguments(MapFragmentUtils.createFragmentArgs(mapboxMapOptions)); return mapFragment; } @@ -211,7 +211,7 @@ public class BottomSheetActivity extends AppCompatActivity { public static BottomSheetFragment newInstance(Context context) { BottomSheetFragment mapFragment = new BottomSheetFragment(); - MapboxMapOptions mapboxMapOptions = MapboxMapOptions.createFromAttributes(context, null); + MapboxMapOptions mapboxMapOptions = MapboxMapOptions.createFromAttributes(context); mapboxMapOptions.renderSurfaceOnTop(true); mapFragment.setArguments(MapFragmentUtils.createFragmentArgs(mapboxMapOptions)); return mapFragment; diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/GLSurfaceRecyclerViewActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/GLSurfaceRecyclerViewActivity.kt index 3acb7aa382..eae8c71f7e 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/GLSurfaceRecyclerViewActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/GLSurfaceRecyclerViewActivity.kt @@ -151,4 +151,4 @@ open class GLSurfaceRecyclerViewActivity : AppCompatActivity() { } } } -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/OverlayMapActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/OverlayMapActivity.kt index d0f3f2e964..3666459951 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/OverlayMapActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/OverlayMapActivity.kt @@ -65,7 +65,7 @@ class OverlayMapActivity : AppCompatActivity() { class OverlayView(context: Context) : View(context) { private lateinit var paint: Paint - + @SuppressLint("DrawAllocation") // only happens once override fun onDraw(canvas: Canvas?) { super.onDraw(canvas) @@ -83,4 +83,4 @@ class OverlayMapActivity : AppCompatActivity() { } } } -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/TextureRecyclerViewActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/TextureRecyclerViewActivity.kt index 940d4b4f19..2f3017435b 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/TextureRecyclerViewActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/TextureRecyclerViewActivity.kt @@ -12,4 +12,4 @@ class TextureRecyclerViewActivity : GLSurfaceRecyclerViewActivity() { override fun getMapItemLayoutId(): Int { return R.layout.item_map_texture } -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/ChangeResourcesCachePathActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/ChangeResourcesCachePathActivity.kt index 74b5bde17d..4e1963d7fc 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/ChangeResourcesCachePathActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/ChangeResourcesCachePathActivity.kt @@ -74,7 +74,7 @@ class ChangeResourcesCachePathActivity : AppCompatActivity(), offlineManager.listOfflineRegions(object : OfflineManager.ListOfflineRegionsCallback { override fun onList(offlineRegions: Array<out OfflineRegion>?) { - Logger.i(TAG, "Number of saved offline regions in the new path: ${offlineRegions?.size.toString()}") + Logger.i(TAG, "Number of saved offline regions in the new path: ${offlineRegions?.size}") } override fun onError(error: String?) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/DeleteRegionActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/DeleteRegionActivity.java index 037c51f723..11ee68702f 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/DeleteRegionActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/DeleteRegionActivity.java @@ -12,7 +12,6 @@ import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; - import com.mapbox.mapboxsdk.offline.OfflineManager; import com.mapbox.mapboxsdk.offline.OfflineRegion; import com.mapbox.mapboxsdk.testapp.R; @@ -25,7 +24,8 @@ import java.util.List; /** * Test activity showing integration of deleting an OfflineRegion. */ -public class DeleteRegionActivity extends AppCompatActivity implements AdapterView.OnItemClickListener { +public class DeleteRegionActivity extends AppCompatActivity implements AdapterView.OnItemClickListener, + AdapterView.OnItemLongClickListener { private OfflineRegionAdapter adapter; @@ -34,10 +34,11 @@ public class DeleteRegionActivity extends AppCompatActivity implements AdapterVi super.onCreate(savedInstanceState); setContentView(R.layout.activity_offline_region_delete); - ListView listView = (ListView) findViewById(R.id.listView); + ListView listView = findViewById(R.id.listView); listView.setAdapter(adapter = new OfflineRegionAdapter(this)); listView.setEmptyView(findViewById(android.R.id.empty)); listView.setOnItemClickListener(this); + listView.setOnItemLongClickListener(this); } @Override @@ -58,6 +59,23 @@ public class DeleteRegionActivity extends AppCompatActivity implements AdapterVi builder.show(); } + @Override + public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { + final OfflineRegion region = adapter.getItem(position); + region.invalidate(new OfflineRegion.OfflineRegionInvalidateCallback() { + @Override + public void onInvalidate() { + Toast.makeText(DeleteRegionActivity.this, "Invalidate region success", Toast.LENGTH_SHORT).show(); + } + + @Override + public void onError(String error) { + Toast.makeText(DeleteRegionActivity.this, "Error:" + error, Toast.LENGTH_LONG).show(); + } + }); + return true; + } + private void delete(OfflineRegion region) { region.delete(new OfflineRegion.OfflineRegionDeleteCallback() { @Override diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/DownloadRegionActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/DownloadRegionActivity.kt index 41dbe56112..36a8ccf0f1 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/DownloadRegionActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/DownloadRegionActivity.kt @@ -145,7 +145,8 @@ class DownloadRegionActivity : AppCompatActivity(), OfflineRegion.OfflineRegionO } if (status.completedResourceCount > status.requiredResourceCount && - previousCompletedResourceCount <= status.requiredResourceCount) { + previousCompletedResourceCount <= status.requiredResourceCount + ) { logMessage("FAILURE! Completed > required") } } @@ -279,11 +280,9 @@ class DownloadRegionActivity : AppCompatActivity(), OfflineRegion.OfflineRegionO } override fun onStartTrackingTouch(seekBar: SeekBar) { - } override fun onStopTrackingTouch(seekBar: SeekBar) { - } }) @@ -293,17 +292,19 @@ class DownloadRegionActivity : AppCompatActivity(), OfflineRegion.OfflineRegionO } override fun onStartTrackingTouch(seekBar: SeekBar) { - } override fun onStopTrackingTouch(seekBar: SeekBar) { - } }) } - private fun validCoordinates(latitudeNorth: Double, longitudeEast: Double, latitudeSouth: Double, - longitudeWest: Double): Boolean { + private fun validCoordinates( + latitudeNorth: Double, + longitudeEast: Double, + latitudeSouth: Double, + longitudeWest: Double + ): Boolean { if (latitudeNorth < -90 || latitudeNorth > 90) { return false } else if (longitudeEast < -180 || longitudeEast > 180) { @@ -315,4 +316,4 @@ class DownloadRegionActivity : AppCompatActivity(), OfflineRegion.OfflineRegionO } return true } -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/MergeOfflineRegionsActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/MergeOfflineRegionsActivity.kt index 12169dbe8f..0f59191d06 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/MergeOfflineRegionsActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/offline/MergeOfflineRegionsActivity.kt @@ -144,4 +144,4 @@ class MergeOfflineRegionsActivity : AppCompatActivity() { super.onSaveInstanceState(outState) mapView.onSaveInstanceState(outState) } -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java index d7ceda699e..dea10198b6 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java @@ -6,6 +6,8 @@ import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.PointF; import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.annotation.VisibleForTesting; import android.support.v7.app.AppCompatActivity; import android.view.MotionEvent; import android.view.View; @@ -64,6 +66,7 @@ public class MapSnapshotterMarkerActivity extends AppCompatActivity implements M @SuppressLint("ClickableViewAccessibility") @Override public void onSnapshotReady(MapSnapshot snapshot) { + this.mapSnapshot = snapshot; Timber.i("Snapshot ready"); ImageView imageView = (ImageView) findViewById(R.id.snapshot_image); Bitmap image = addMarker(snapshot); @@ -93,4 +96,10 @@ public class MapSnapshotterMarkerActivity extends AppCompatActivity implements M return snapshot.getBitmap(); } + @VisibleForTesting + @Nullable + public MapSnapshot getMapSnapshot() { + return mapSnapshot; + } + } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/storage/CacheManagementActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/storage/CacheManagementActivity.kt new file mode 100644 index 0000000000..54427ad20d --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/storage/CacheManagementActivity.kt @@ -0,0 +1,78 @@ +package com.mapbox.mapboxsdk.testapp.activity.storage + +import android.os.Bundle +import android.os.Looper +import android.support.design.widget.Snackbar +import android.support.v7.app.AppCompatActivity +import com.mapbox.mapboxsdk.offline.OfflineManager +import com.mapbox.mapboxsdk.testapp.R +import junit.framework.Assert.assertTrue +import kotlinx.android.synthetic.main.activity_cache_management.* + +/** + * Test activity showcasing the cache management APIs + */ +class CacheManagementActivity : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_cache_management) + + val fileSource = OfflineManager.getInstance(this) + resetDatabaseButton.setOnClickListener { + fileSource.resetDatabase(object : OfflineManager.FileSourceCallback { + override fun onSuccess() { + showSnackbar("Reset database success") + } + + override fun onError(message: String) { + showSnackbar("Reset database fail: $message") + } + }) + } + + invalidateAmbientCacheButton.setOnClickListener { + fileSource.invalidateAmbientCache(object : OfflineManager.FileSourceCallback { + override fun onSuccess() { + showSnackbar("Invalidate ambient cache success") + } + + override fun onError(message: String) { + showSnackbar("Invalidate ambient cache fail: $message") + } + }) + } + + clearAmbientCacheButton.setOnClickListener { + fileSource.clearAmbientCache(object : OfflineManager.FileSourceCallback { + override fun onSuccess() { + showSnackbar("Clear ambient cache success") + } + + override fun onError(message: String) { + showSnackbar("Clear ambient cache fail: $message") + } + }) + } + + setMaximumAmbientCacheSizeButton.setOnClickListener { + fileSource.setMaximumAmbientCacheSize(5000000, object : OfflineManager.FileSourceCallback { + override fun onSuccess() { + showSnackbar("Set maximum ambient cache size success") + } + + override fun onError(message: String) { + showSnackbar("Set maximum ambient cache size fail: $message") + } + }) + } + } + + fun showSnackbar(message: String) { + // validate that all callbacks occur on main thread + assertTrue(Looper.myLooper() == Looper.getMainLooper()) + + // show snackbar + Snackbar.make(container, message, Snackbar.LENGTH_SHORT).show() + } +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DraggableMarkerActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DraggableMarkerActivity.kt index 0b784675e9..6de00e24f9 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DraggableMarkerActivity.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/DraggableMarkerActivity.kt @@ -171,11 +171,17 @@ class DraggableMarkerActivity : AppCompatActivity() { * @param touchAreaMaxX maximum value of X-axis motion event * @param touchAreaMaxY maximum value of Y-axis motion event */ - class DraggableSymbolsManager(mapView: MapView, private val mapboxMap: MapboxMap, - private val symbolsCollection: FeatureCollection, - private val symbolsSource: GeoJsonSource, private val symbolsLayerId: String, - private val touchAreaShiftX: Int = 0, private val touchAreaShiftY: Int = 0, - private val touchAreaMaxX: Int = mapView.width, private val touchAreaMaxY: Int = mapView.height) { + class DraggableSymbolsManager( + mapView: MapView, + private val mapboxMap: MapboxMap, + private val symbolsCollection: FeatureCollection, + private val symbolsSource: GeoJsonSource, + private val symbolsLayerId: String, + private val touchAreaShiftY: Int = 0, + private val touchAreaShiftX: Int = 0, + private val touchAreaMaxX: Int = mapView.width, + private val touchAreaMaxY: Int = mapView.height + ) { private val androidGesturesManager: AndroidGesturesManager = AndroidGesturesManager(mapView.context, false) private var draggedSymbolId: String? = null @@ -322,4 +328,4 @@ class DraggableMarkerActivity : AppCompatActivity() { private fun MapboxMap.queryRenderedSymbols(latLng: LatLng, layerId: String): List<Feature> { return this.queryRenderedFeatures(this.projection.toScreenLocation(latLng), layerId) -} +}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolLayerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolLayerActivity.java index 243fa67ec4..3d65a92f72 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolLayerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolLayerActivity.java @@ -43,7 +43,9 @@ import static com.mapbox.mapboxsdk.style.expressions.Expression.format; import static com.mapbox.mapboxsdk.style.expressions.Expression.formatEntry; import static com.mapbox.mapboxsdk.style.expressions.Expression.get; import static com.mapbox.mapboxsdk.style.expressions.Expression.literal; +import static com.mapbox.mapboxsdk.style.expressions.Expression.match; import static com.mapbox.mapboxsdk.style.expressions.Expression.rgb; +import static com.mapbox.mapboxsdk.style.expressions.Expression.stop; import static com.mapbox.mapboxsdk.style.expressions.Expression.switchCase; import static com.mapbox.mapboxsdk.style.expressions.Expression.toBool; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconAllowOverlap; @@ -51,6 +53,7 @@ import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconAnchor; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconColor; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconIgnorePlacement; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconImage; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconOpacity; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconSize; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textAllowOverlap; import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textAnchor; @@ -114,7 +117,7 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap. setContentView(R.layout.activity_symbollayer); // Create map configuration - MapboxMapOptions mapboxMapOptions = MapboxMapOptions.createFromAttributes(this, null); + MapboxMapOptions mapboxMapOptions = MapboxMapOptions.createFromAttributes(this); mapboxMapOptions.camera(new CameraPosition.Builder().target( new LatLng(52.35273, 4.91638)) .zoom(13) @@ -198,6 +201,12 @@ public class SymbolLayerActivity extends AppCompatActivity implements MapboxMap. // use DDS boolean selected = feature.getBooleanProperty(SELECTED_FEATURE_PROPERTY); feature.addBooleanProperty(SELECTED_FEATURE_PROPERTY, !selected); + + // validate symbol flicker regression for #13407 + markerSymbolLayer.setProperties(iconOpacity(match( + get(ID_FEATURE_PROPERTY), literal(1.0f), + stop(feature.getStringProperty("id"), selected ? 0.3f : 1.0f) + ))); } } markerSource.setGeoJson(markerCollection); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/FileUtils.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/FileUtils.kt index 457ad928db..e0c1ca4207 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/FileUtils.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/FileUtils.kt @@ -19,7 +19,6 @@ class FileUtils { override fun doInBackground(vararg strings: String): Boolean? { val assetName = strings[0] val destinationPath = strings[1] - contextWeakReference.get()?.let { try { copyAsset(it, assetName, destinationPath) diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_arrow_upward.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_arrow_upward.xml new file mode 100644 index 0000000000..c64ae35166 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_arrow_upward.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="M4,12l1.41,1.41L11,7.83V20h2V7.83l5.58,5.59L20,12l-8,-8 -8,8z"/> +</vector> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_cache_management.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_cache_management.xml new file mode 100644 index 0000000000..a79ed9352b --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_cache_management.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/container" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <Button + android:id="@+id/resetDatabaseButton" + android:text="Reset Database" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + + <Button + android:id="@+id/invalidateAmbientCacheButton" + android:text="Invalidate Ambient Cache" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + + <Button + android:id="@+id/clearAmbientCacheButton" + android:text="Clear Ambient Cache" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + + <Button + android:id="@+id/setMaximumAmbientCacheSizeButton" + android:text="Set Maximum Ambient Cache Size to 5mb" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + +</LinearLayout>
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_latlngbounds.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_latlngbounds.xml index e565c3c9d1..e25fd1882c 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_latlngbounds.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_latlngbounds.xml @@ -1,36 +1,47 @@ <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:id="@+id/coordinator_layout" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:fitsSystemWindows="true" - android:orientation="vertical"> - - <com.mapbox.mapboxsdk.maps.MapView - android:id="@id/mapView" + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/coordinator_layout" android:layout_width="match_parent" android:layout_height="match_parent" - app:layout_behavior="@string/appbar_scrolling_view_behavior"/> + android:fitsSystemWindows="true" + android:orientation="vertical"> + + <com.mapbox.mapboxsdk.maps.MapView + android:id="@id/mapView" + android:layout_width="match_parent" + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior"/> <android.support.v4.widget.NestedScrollView - android:id="@+id/bottom_sheet" - android:layout_width="match_parent" - android:layout_height="375dp" - android:background="@color/primaryDark" - app:behavior_hideable="true" - app:behavior_skipCollapsed="false" - app:layout_behavior="com.mapbox.mapboxsdk.testapp.view.LockableBottomSheetBehavior"/> + android:id="@+id/bottomSheet" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/primaryDark" + app:behavior_hideable="true" + app:behavior_peekHeight="375dp" + app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> + + <TextView + android:text="Hello World" + android:gravity="center" + android:textSize="120sp" + android:textColor="@android:color/white" + android:background="@color/primary" + android:layout_width="match_parent" + android:layout_height="375dp"/> + + </android.support.v4.widget.NestedScrollView> <android.support.design.widget.FloatingActionButton - android:id="@+id/fab" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="@dimen/fab_margin" - android:src="@drawable/ic_arrow_downward" - app:backgroundTint="@color/primary" - app:layout_anchor="@id/bottom_sheet" - app:layout_anchorGravity="top|end"/> + android:id="@+id/fab" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="@dimen/fab_margin" + android:src="@drawable/ic_arrow_upward" + app:backgroundTint="@color/primary" + app:layout_anchor="@id/bottomSheet" + app:layout_anchorGravity="top|end"/> </android.support.design.widget.CoordinatorLayout>
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml index 684220f2c4..082eb39256 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml @@ -51,6 +51,7 @@ <string name="description_map_in_dialog">Display a map inside a dialog fragment</string> <string name="description_circle_layer">Show bus stops and route in Singapore</string> <string name="description_url_transform">Transform urls on the fly</string> + <string name="description_cache_management">Control the cache management with FileSource API</string> <string name="description_restricted_bounds">Limit viewport to Iceland</string> <string name="description_fill_extrusion_layer">Shows how to add 3D extruded shapes</string> <string name="description_building_fill_extrusion_layer">Shows how to show 3D extruded buildings</string> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml index 027198c71b..94566ea995 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml @@ -50,6 +50,7 @@ <string name="activity_map_visibility">Visibility Map</string> <string name="activity_map_in_dialog">Dialog with map</string> <string name="activity_url_transform">Url transform</string> + <string name="activity_cache_management">Cache management</string> <string name="activity_restricted_bounds">Restrict camera to a bounds</string> <string name="activity_fill_extrusion_layer">Fill extrusions</string> <string name="activity_building_fill_extrusion_layer">Building layer</string> |