From 8bf186791670c0e5ea736210327f59e5d56b7040 Mon Sep 17 00:00:00 2001 From: Ander Conselvan de Oliveira Date: Tue, 11 Sep 2018 14:46:56 +0300 Subject: [android] - add bottom tab bar example" --- .../src/main/AndroidManifest.xml | 1067 ++++++++++---------- .../activity/fragment/BottomNavActivity.java | 249 +++++ .../main/res/drawable/ic_dashboard_black_24dp.xml | 9 + .../src/main/res/drawable/ic_home_black_24dp.xml | 9 + .../res/drawable/ic_notifications_black_24dp.xml | 9 + .../src/main/res/layout/activity_bottom_nav.xml | 26 + .../src/main/res/menu/bottom_navigation.xml | 29 + .../src/main/res/menu/menu_bottom.xml | 20 + .../src/main/res/values/dimens.xml | 3 + .../src/main/res/values/strings.xml | 4 + platform/node/test/ignores.json | 2 + 11 files changed, 898 insertions(+), 529 deletions(-) create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/BottomNavActivity.java create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_dashboard_black_24dp.xml create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_home_black_24dp.xml create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_notifications_black_24dp.xml create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_bottom_nav.xml create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/bottom_navigation.xml create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_bottom.xml diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index a0594d8b83..7304513290 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -1,439 +1,439 @@ + package="com.mapbox.mapboxsdk.testapp"> - + - + android:roundIcon="@drawable/ic_launcher_round" + android:supportsRtl="true" + android:theme="@style/AppTheme"> + - + - + + android:name=".activity.infowindow.InfoWindowActivity" + android:description="@string/description_info_window" + android:label="@string/activity_info_window"> + android:name="@string/category" + android:value="@string/category_infowindow"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.infowindow.InfoWindowAdapterActivity" + android:description="@string/description_info_window_adapter" + android:label="@string/activity_infowindow_adapter"> + android:name="@string/category" + android:value="@string/category_infowindow"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.infowindow.DynamicInfoWindowAdapterActivity" + android:description="@string/description_dynamic_info_window_adapter" + android:label="@string/activity_dynamic_infowindow_adapter"> + android:name="@string/category" + android:value="@string/category_infowindow"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.annotation.BulkMarkerActivity" + android:configChanges="orientation|keyboardHidden|screenSize" + android:description="@string/description_add_bulk_markers" + android:label="@string/activity_add_bulk_markers"> + android:name="@string/category" + android:value="@string/category_annotation"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.annotation.AnimatedSymbolLayerActivity" + android:description="@string/description_animated_symbollayer" + android:label="@string/activity_animated_symbollayer"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.annotation.DynamicMarkerChangeActivity" + android:description="@string/description_dynamic_marker" + android:label="@string/activity_dynamic_marker"> + android:name="@string/category" + android:value="@string/category_annotation"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.annotation.PressForMarkerActivity" + android:description="@string/description_press_for_marker" + android:label="@string/activity_press_for_marker"> + android:name="@string/category" + android:value="@string/category_annotation"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.camera.CameraAnimationTypeActivity" + android:description="@string/description_camera_animation_types" + android:label="@string/activity_camera_animation_types"> + android:name="@string/category" + android:value="@string/category_camera"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.camera.CameraAnimatorActivity" + android:description="@string/description_camera_animator" + android:label="@string/activity_camera_animator"> + android:name="@string/category" + android:value="@string/category_camera"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.camera.CameraPositionActivity" + android:description="@string/description_cameraposition" + android:label="@string/activity_camera_position"> + android:name="@string/category" + android:value="@string/category_camera"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.camera.LatLngBoundsActivity" + android:description="@string/description_visible_bounds" + android:label="@string/activity_visible_coordinate_bounds" + android:screenOrientation="portrait"> + android:name="@string/category" + android:value="@string/category_camera"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.fragment.MapFragmentActivity" + android:description="@string/description_map_fragment" + android:label="@string/activity_map_fragment"> + android:name="@string/category" + android:value="@string/category_fragment"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.fragment.SupportMapFragmentActivity" + android:description="@string/description_map_fragment_support" + android:label="@string/activity_map_fragment_suport"> + android:name="@string/category" + android:value="@string/category_fragment"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.fragment.MultiMapActivity" + android:description="@string/description_multimap" + android:label="@string/activity_multimap"> + android:name="@string/category" + android:value="@string/category_fragment"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.camera.ManualZoomActivity" + android:description="@string/description_camera_zoom" + android:label="@string/activity_camera_zoom"> + android:name="@string/category" + android:value="@string/category_camera"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.camera.MaxMinZoomActivity" + android:description="@string/description_minmax_zoom" + android:label="@string/activity_minmax_zoom"> + android:name="@string/category" + android:value="@string/category_camera"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.customlayer.CustomLayerActivity" + android:description="@string/description_custom_layer" + android:label="@string/activity_custom_layer"> + android:name="@string/category" + android:value="@string/category_custom_layer"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.annotation.PolygonActivity" + android:description="@string/description_polygon" + android:label="@string/activity_polygon"> + android:name="@string/category" + android:value="@string/category_annotation"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.annotation.PolylineActivity" + android:description="@string/description_polyline" + android:label="@string/activity_polyline"> + android:name="@string/category" + android:value="@string/category_annotation"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.camera.ScrollByActivity" + android:description="@string/description_scroll_by" + android:label="@string/activity_scroll_by" + android:theme="@style/NoActionBar"> + android:name="@string/category" + android:value="@string/category_camera"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.maplayout.MapPaddingActivity" + android:description="@string/description_map_padding" + android:label="@string/activity_map_padding" + android:screenOrientation="portrait"> + android:name="@string/category" + android:value="@string/category_maplayout"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.maplayout.DebugModeActivity" + android:configChanges="orientation|keyboardHidden|screenSize" + android:description="@string/description_debug_mode" + android:label="@string/activity_debug_mode"> + android:name="@string/category" + android:value="@string/category_basic"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.offline.OfflineActivity" + android:description="@string/description_offline" + android:label="@string/activity_offline"> + android:name="@string/category" + android:value="@string/category_offline"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.offline.UpdateMetadataActivity" + android:description="@string/description_update_metadata" + android:label="@string/activity_update_metadata"> + android:name="@string/category" + android:value="@string/category_offline"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.offline.DeleteRegionActivity" + android:description="@string/description_offline_region_delete" + android:label="@string/activity_offline_region_delete"> + android:name="@string/category" + android:value="@string/category_offline"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.imagegenerator.SnapshotActivity" + android:description="@string/description_snapshot" + android:label="@string/activity_snapshot"> + android:name="@string/category" + android:value="@string/category_imagegenerator"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.snapshot.MapSnapshotterActivity" + android:description="@string/description_map_snapshotter" + android:label="@string/activity_map_snapshotter"> + android:name="@string/category" + android:value="@string/category_imagegenerator"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.snapshot.MapSnapshotterReuseActivity" + android:description="@string/description_map_snapshotter_reuse" + android:label="@string/activity_map_snapshotter_reuse"> + android:name="@string/category" + android:value="@string/category_imagegenerator"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.snapshot.MapSnapshotterMarkerActivity" + android:description="@string/description_map_snapshotter_marker" + android:label="@string/activity_map_snapshotter_marker"> + android:name="@string/category" + android:value="@string/category_imagegenerator"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.snapshot.MapSnapshotterLocalStyleActivity" + android:description="@string/description_map_snapshotter_local_style" + android:label="@string/activity_map_snapshotter_local_style"> + android:name="@string/category" + android:value="@string/category_imagegenerator"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.maplayout.DoubleMapActivity" + android:description="@string/description_doublemap" + android:label="@string/activity_double_map"> + android:name="@string/category" + android:value="@string/category_maplayout"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.annotation.MarkerViewActivity" + android:description="@string/description_view_marker" + android:label="@string/activity_view_marker"> + android:name="@string/category" + android:value="@string/category_annotation"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.fragment.ViewPagerActivity" + android:description="@string/description_viewpager" + android:label="@string/activity_viewpager"> + android:name="@string/category" + android:value="@string/category_fragment"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.maplayout.SimpleMapActivity" + android:description="@string/description_simple_map" + android:label="@string/activity_simple_map"> + android:name="@string/category" + android:value="@string/category_basic"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.maplayout.MapChangeActivity" + android:description="@string/description_map_change" + android:label="@string/activity_map_change"> + android:name="@string/category" + android:value="@string/category_maplayout"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.maplayout.VisibilityChangeActivity" + android:description="@string/description_visibility_map" + android:label="@string/activity_map_visibility"> + android:name="@string/category" + android:value="@string/category_maplayout"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.RuntimeStyleActivity" + android:description="@string/description_runtime_style" + android:label="@string/activity_runtime_style"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:value="@string/category_style"/> + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.DataDrivenStyleActivity" + android:description="@string/description_data_driven_style" + android:label="@string/activity_data_driven_style"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.CircleLayerActivity" + android:description="@string/description_circle_layer" + android:label="@string/activity_circle_layer"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.FillExtrusionActivity" + android:description="@string/description_fill_extrusion_layer" + android:label="@string/activity_fill_extrusion_layer"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.BuildingFillExtrusionActivity" + android:description="@string/description_building_fill_extrusion_layer" + android:label="@string/activity_building_fill_extrusion_layer"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.SymbolLayerActivity" + android:description="@string/description_symbol_layer" + android:label="@string/activity_symbol_layer"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.GeoJsonClusteringActivity" + android:description="@string/description_geojson_clustering" + android:label="@string/activity_geojson_clustering"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.RealTimeGeoJsonActivity" + android:description="@string/description_geojson_realtime" + android:label="@string/activity_geojson_realtime"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.StyleFileActivity" + android:description="@string/description_style_file" + android:label="@string/activity_style_file"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.CustomSpriteActivity" + android:description="@string/description_custom_sprite" + android:label="@string/activity_add_sprite"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.imagegenerator.PrintActivity" + android:description="@string/description_print" + android:label="@string/activity_print"> + android:name="@string/category" + android:value="@string/category_imagegenerator"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.AnimatedImageSourceActivity" + android:description="@string/description_animated_image_source" + android:label="@string/activity_animated_image_source"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.GridSourceActivity" + android:description="@string/description_grid_source" + android:label="@string/activity_grid_source"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.feature.QueryRenderedFeaturesPropertiesActivity" + android:description="@string/description_query_rendered_feature_properties_point" + android:label="@string/activity_query_rendered_feature_properties"> + android:name="@string/category" + android:value="@string/category_features"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.feature.QueryRenderedFeaturesBoxCountActivity" + android:description="@string/description_query_rendered_features_box_count" + android:label="@string/activity_query_rendered_features_box_count"> + android:name="@string/category" + android:value="@string/category_features"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.feature.QueryRenderedFeaturesBoxSymbolCountActivity" + android:description="@string/description_query_rendered_features_box_symbol_count" + android:label="@string/activity_query_rendered_features_box_symbol_count"> + android:name="@string/category" + android:value="@string/category_features"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.feature.QueryRenderedFeaturesBoxHighlightActivity" + android:description="@string/description_query_rendered_features_box_highlight" + android:label="@string/activity_query_rendered_features_box_highlight"> + android:name="@string/category" + android:value="@string/category_features"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.feature.QuerySourceFeaturesActivity" + android:description="@string/description_query_source_features" + android:label="@string/activity_query_source_features"> + android:name="@string/category" + android:value="@string/category_features"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.SymbolGeneratorActivity" + android:description="@string/description_symbol_generator" + android:label="@string/activity_symbol_generator"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.ZoomFunctionSymbolLayerActivity" + android:description="@string/description_add_remove_markers" + android:label="@string/activity_add_remove_markers"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.maplayout.MapInDialogActivity" + android:description="@string/description_map_in_dialog" + android:label="@string/activity_map_in_dialog"> + android:name="@string/category" + android:value="@string/category_maplayout"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.annotation.MarkerViewsInRectangleActivity" + android:description="@string/description_marker_view_rectangle" + android:label="@string/activity_marker_view_rectangle"> + android:name="@string/category" + android:value="@string/category_annotation"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.maplayout.LatLngBoundsForCameraActivity" + android:description="@string/description_restricted_bounds" + android:label="@string/activity_restricted_bounds"> + android:name="@string/category" + android:value="@string/category_maplayout"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.storage.UrlTransformActivity" + android:description="@string/description_url_transform" + android:label="@string/activity_url_transform"> + android:name="@string/category" + android:value="@string/category_storage"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.maplayout.BottomSheetActivity" + android:description="@string/description_bottom_sheet" + android:label="@string/activity_bottom_sheet"> + android:name="@string/category" + android:value="@string/category_maplayout"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.textureview.TextureViewDebugModeActivity" + android:description="@string/description_textureview_debug" + android:label="@string/activity_textureview_debug"> + android:name="@string/category" + android:value="@string/category_textureview"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.textureview.TextureViewResizeActivity" + android:description="@string/description_textureview_resize" + android:label="@string/activity_textureview_resize"> + android:name="@string/category" + android:value="@string/category_textureview"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.textureview.TextureViewTransparentBackgroundActivity" + android:description="@string/description_textureview_transparent" + android:label="@string/activity_textureview_transparent"> + android:name="@string/category" + android:value="@string/category_textureview"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.textureview.TextureViewAnimationActivity" + android:description="@string/description_textureview_animate" + android:label="@string/activity_textureview_animate"> + android:name="@string/category" + android:value="@string/category_textureview"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.maplayout.LocalGlyphActivity" + android:description="@string/description_local_glyph" + android:label="@string/activity_local_glyph"> + android:name="@string/category" + android:value="@string/category_maplayout"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.HillshadeLayerActivity" + android:description="@string/description_hillshade" + android:label="@string/activity_hillshade"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.style.HeatmapLayerActivity" + android:description="@string/description_heatmaplayer" + android:label="@string/activity_heatmaplayer"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> - + android:name=".activity.style.DraggableMarkerActivity" + android:description="@string/description_draggable_marker" + android:label="@string/activity_draggable_maker"> + android:name="@string/category" + android:value="@string/category_style"/> + android:name="android.support.PARENT_ACTIVITY" + android:value=".activity.FeatureOverviewActivity"/> + android:name=".activity.camera.GestureDetectorActivity" + android:description="@string/description_gesture_detector" + android:label="@string/activity_gesture_detector"> + android:name="@string/category" + android:value="@string/category_camera"/> + android:name="android.support.PARENT_ACTIVITY" + android:value="com.mapbox.mapboxsdk.testapp.activity.FeatureOverviewActivity"/> + android:name=".activity.style.RuntimeStyleTestActivity" + android:screenOrientation="portrait"/> + android:name=".activity.style.RuntimeStyleTimingTestActivity" + android:screenOrientation="portrait"/> + android:name=".activity.espresso.EspressoTestActivity" + android:screenOrientation="portrait"/> + android:name=".activity.espresso.DeviceIndependentTestActivity" + android:screenOrientation="portrait"/> + android:name=".activity.style.FillExtrusionStyleTestActivity" + android:screenOrientation="portrait"/> + android:name=".activity.render.RenderTestActivity" + android:screenOrientation="landscape"/> + android:name="com.mapbox.TestEventsServer" + android:value="api-events-staging.tilestream.net"/> + android:name="com.mapbox.TestEventsAccessToken" + android:value="pk.eyJ1IjoiYmxzdGFnaW5nIiwiYSI6ImNpdDF3OHpoaTAwMDcyeXA5Y3Z0Nmk2dzEifQ.0IfB7v5Qbm2MGVYt8Kb8fg"/> + + + + \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/BottomNavActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/BottomNavActivity.java new file mode 100644 index 0000000000..524f1d358a --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/fragment/BottomNavActivity.java @@ -0,0 +1,249 @@ +package com.mapbox.mapboxsdk.testapp.activity.fragment; + +import android.graphics.Color; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.design.widget.BottomNavigationView; +import android.support.v4.app.Fragment; +import android.support.v7.app.AppCompatActivity; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.TextView; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; +import com.mapbox.geojson.Feature; +import com.mapbox.geojson.FeatureCollection; +import com.mapbox.geojson.Point; +import com.mapbox.mapboxsdk.maps.MapView; +import com.mapbox.mapboxsdk.maps.MapboxMap; +import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; +import com.mapbox.mapboxsdk.maps.SupportMapFragment; +import com.mapbox.mapboxsdk.style.layers.Property; +import com.mapbox.mapboxsdk.style.layers.SymbolLayer; +import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; +import com.mapbox.mapboxsdk.testapp.R; +import timber.log.Timber; + +import java.util.ArrayList; +import java.util.List; + +import static com.mapbox.mapboxsdk.style.expressions.Expression.get; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.iconAllowOverlap; +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.textAllowOverlap; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textAnchor; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textColor; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textField; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textIgnorePlacement; +import static com.mapbox.mapboxsdk.style.layers.PropertyFactory.textSize; + +public class BottomNavActivity extends AppCompatActivity { + + private final List fragments = new ArrayList<>(5); + private Fragment currentFragment; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_bottom_nav); + + BottomNavigationView navigation = findViewById(R.id.navigation); + + fragments.add(CustomFragment.newInstance(1)); + fragments.add(new CustomMapFragment()); + fragments.add(CustomFragment.newInstance(3)); + fragments.add(SupportMapFragment.newInstance()); + fragments.add(CustomFragment.newInstance(5)); + + // add initial fragment + currentFragment = fragments.get(0); + getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, currentFragment).commit(); + + // add tab listener to change fragments + navigation.setOnNavigationItemSelectedListener(item -> { + switch (item.getItemId()) { + case R.id.navigation_home: + currentFragment = fragments.get(0); + break; + case R.id.navigation_map_one: + currentFragment = fragments.get(1); + break; + case R.id.navigation_notifications: + currentFragment = fragments.get(2); + break; + case R.id.navigation_map_two: + currentFragment = fragments.get(3); + break; + case R.id.navigation_car: + currentFragment = fragments.get(4); + break; + } + // replace current fragment with tab selected one + getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, currentFragment).commit(); + return true; + }); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_bottom, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int itemId = item.getItemId(); + if (itemId == R.id.menu_action_show) { + getSupportFragmentManager().beginTransaction().show(currentFragment).commit(); + return true; + } else if (itemId == R.id.menu_action_hide) { + getSupportFragmentManager().beginTransaction().hide(currentFragment).commit(); + return true; + } else if (itemId == R.id.menu_action_detach) { + getSupportFragmentManager().beginTransaction().detach(currentFragment).commit(); + return true; + } else if (itemId == R.id.menu_action_attach) { + getSupportFragmentManager().beginTransaction().attach(currentFragment).commit(); + return true; + } + return super.onOptionsItemSelected(item); + } + + public static class CustomFragment extends Fragment { + + public static final String COUNTER = "counter"; + + public static CustomFragment newInstance(int counter) { + Bundle args = new Bundle(); + args.putInt(COUNTER, counter); + CustomFragment fragment = new CustomFragment(); + fragment.setArguments(args); + return fragment; + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + TextView textView = new TextView(inflater.getContext()); + textView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, Gravity.CENTER)); + textView.setTextSize(20); + textView.setText(String.format("Fragment number: %s", getArguments().getInt("counter"))); + return textView; + } + } + + public static class CustomMapFragment extends Fragment { + + private MapView mapView; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + Timber.e("OnCreateView Map"); + return mapView = new MapView(inflater.getContext()); + } + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + mapView.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(MapboxMap mapboxMap) { + // Add a source + FeatureCollection markers = FeatureCollection.fromFeatures(new Feature[] { + Feature.fromGeometry(Point.fromLngLat(4.91638, 52.35673), featureProperties("Marker 1")), + Feature.fromGeometry(Point.fromLngLat(4.91638, 52.34673), featureProperties("Marker 2")) + }); + mapboxMap.addSource(new GeoJsonSource("source-id", markers)); + + // Add the symbol-layer + mapboxMap.addLayer( + new SymbolLayer("layer-id", "source-id") + .withProperties( + iconImage("car-15"), + iconIgnorePlacement(true), + iconAllowOverlap(true), + iconAnchor(Property.ICON_ANCHOR_BOTTOM), + iconColor(Color.RED), + textField(get("title")), + textColor(Color.RED), + textAllowOverlap(true), + textIgnorePlacement(true), + textAnchor(Property.TEXT_ANCHOR_TOP), + textSize(10f) + ) + ); + } + }); + } + + private JsonObject featureProperties(String title) { + JsonObject object = new JsonObject(); + object.add("title", new JsonPrimitive(title)); + return object; + } + + @Override + public void onStart() { + super.onStart(); + Timber.e("OnStart Map"); + mapView.onStart(); + } + + @Override + public void onResume() { + super.onResume(); + Timber.e("OnResume Map"); + mapView.onResume(); + } + + @Override + public void onPause() { + super.onPause(); + Timber.e("OnPause Map"); + mapView.onPause(); + } + + @Override + public void onStop() { + super.onStop(); + Timber.e("OnStop Map"); + mapView.onStop(); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + Timber.e("OnDestroy Map"); + mapView.onDestroy(); + } + + @Override + public void onSaveInstanceState(@NonNull Bundle outState) { + super.onSaveInstanceState(outState); + Timber.e("OnSaveInstanceState Map"); + mapView.onSaveInstanceState(outState); + } + + @Override + public void onLowMemory() { + super.onLowMemory(); + Timber.e("OnLowMemory Map"); + mapView.onLowMemory(); + } + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_dashboard_black_24dp.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_dashboard_black_24dp.xml new file mode 100644 index 0000000000..85b70f1998 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_dashboard_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_home_black_24dp.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_home_black_24dp.xml new file mode 100644 index 0000000000..de832bb25f --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_home_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_notifications_black_24dp.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_notifications_black_24dp.xml new file mode 100644 index 0000000000..fa1d5fe069 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/drawable/ic_notifications_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_bottom_nav.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_bottom_nav.xml new file mode 100644 index 0000000000..def84b2976 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_bottom_nav.xml @@ -0,0 +1,26 @@ + + + + + + + + \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/bottom_navigation.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/bottom_navigation.xml new file mode 100644 index 0000000000..ae3992b62e --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/bottom_navigation.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_bottom.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_bottom.xml new file mode 100644 index 0000000000..1fcc62fe6a --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/menu/menu_bottom.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml index 9d34183435..7b07951626 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/dimens.xml @@ -7,4 +7,7 @@ 32dp 0dp 240dp + + 16dp + 16dp diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml index 15a916fac9..c9773d4a18 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/strings.xml @@ -1,4 +1,8 @@ Mapbox Android SDK TestApp + BottomNavActivity + Home + Dashboard + Notifications diff --git a/platform/node/test/ignores.json b/platform/node/test/ignores.json index 67f0ff9a72..0871729e81 100644 --- a/platform/node/test/ignores.json +++ b/platform/node/test/ignores.json @@ -76,6 +76,8 @@ "render-tests/bright-v9/z0-wide": "https://github.com/mapbox/mapbox-gl-native/pull/12611", "render-tests/collator/resolved-locale": "Some test platforms don't resolve 'en' locale", "render-tests/collator/default": "Some test platforms don't resolve 'en' locale", + "render-tests/custom-layer-js/null-island": "Not implemented", + "render-tests/custom-layer-js/tent-3d": "Not implemented", "render-tests/debug/collision": "https://github.com/mapbox/mapbox-gl-native/issues/3841", "render-tests/debug/collision-lines": "https://github.com/mapbox/mapbox-gl-native/issues/10412", "render-tests/debug/collision-lines-overscaled": "https://github.com/mapbox/mapbox-gl-native/issues/10412", -- cgit v1.2.1