Improve fullscreen mode entering
This commit is contained in:
parent
fe803ac326
commit
840dae932f
8 changed files with 61 additions and 22 deletions
|
@ -930,6 +930,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
||||||
|
|
||||||
public void readLocationToShow() {
|
public void readLocationToShow() {
|
||||||
mapLayers.getMapControlsLayer().showMapControls();
|
mapLayers.getMapControlsLayer().showMapControls();
|
||||||
|
mapLayers.getMapControlsLayer().showSystemUI();
|
||||||
|
|
||||||
LatLon cur = new LatLon(mapView.getLatitude(), mapView.getLongitude());
|
LatLon cur = new LatLon(mapView.getLatitude(), mapView.getLongitude());
|
||||||
LatLon latLonToShow = settings.getAndClearMapLocationToShow();
|
LatLon latLonToShow = settings.getAndClearMapLocationToShow();
|
||||||
|
|
|
@ -85,6 +85,7 @@ import net.osmand.plus.srtmplugin.ContourLinesMenu;
|
||||||
import net.osmand.plus.srtmplugin.HillshadeMenu;
|
import net.osmand.plus.srtmplugin.HillshadeMenu;
|
||||||
import net.osmand.plus.srtmplugin.SRTMPlugin;
|
import net.osmand.plus.srtmplugin.SRTMPlugin;
|
||||||
import net.osmand.plus.views.DownloadedRegionsLayer;
|
import net.osmand.plus.views.DownloadedRegionsLayer;
|
||||||
|
import net.osmand.plus.views.MapControlsLayer;
|
||||||
import net.osmand.plus.views.MapInfoLayer;
|
import net.osmand.plus.views.MapInfoLayer;
|
||||||
import net.osmand.plus.views.OsmandMapTileView;
|
import net.osmand.plus.views.OsmandMapTileView;
|
||||||
import net.osmand.plus.views.controls.DynamicListView;
|
import net.osmand.plus.views.controls.DynamicListView;
|
||||||
|
@ -875,7 +876,9 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, DynamicLis
|
||||||
mapActivity.getMapView().refreshMap();
|
mapActivity.getMapView().refreshMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
mapActivity.getMapLayers().getMapControlsLayer().showMapControls();
|
MapControlsLayer controlsLayer = mapActivity.getMapLayers().getMapControlsLayer();
|
||||||
|
controlsLayer.showMapControls();
|
||||||
|
controlsLayer.showSystemUI();
|
||||||
hideActionButton();
|
hideActionButton();
|
||||||
for (WeakReference<DashBaseFragment> df : fragList) {
|
for (WeakReference<DashBaseFragment> df : fragList) {
|
||||||
if (df.get() != null) {
|
if (df.get() != null) {
|
||||||
|
|
|
@ -46,6 +46,7 @@ import net.osmand.plus.mapcontextmenu.MenuController.TitleButtonController;
|
||||||
import net.osmand.plus.mapcontextmenu.MenuController.TitleProgressController;
|
import net.osmand.plus.mapcontextmenu.MenuController.TitleProgressController;
|
||||||
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
|
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
|
||||||
import net.osmand.plus.views.AnimateDraggingMapThread;
|
import net.osmand.plus.views.AnimateDraggingMapThread;
|
||||||
|
import net.osmand.plus.views.MapControlsLayer;
|
||||||
import net.osmand.plus.views.OsmandMapTileView;
|
import net.osmand.plus.views.OsmandMapTileView;
|
||||||
import net.osmand.plus.views.controls.HorizontalSwipeConfirm;
|
import net.osmand.plus.views.controls.HorizontalSwipeConfirm;
|
||||||
import net.osmand.plus.views.controls.SingleTapConfirm;
|
import net.osmand.plus.views.controls.SingleTapConfirm;
|
||||||
|
@ -904,7 +905,9 @@ public class MapContextMenuFragment extends Fragment implements DownloadEvents {
|
||||||
((View) parent).addOnLayoutChangeListener(containerLayoutListener);
|
((View) parent).addOnLayoutChangeListener(containerLayoutListener);
|
||||||
}
|
}
|
||||||
menu.updateControlsVisibility(true);
|
menu.updateControlsVisibility(true);
|
||||||
getMapActivity().getMapLayers().getMapControlsLayer().showMapControls();
|
MapControlsLayer controlsLayer = getMapActivity().getMapLayers().getMapControlsLayer();
|
||||||
|
controlsLayer.showMapControls();
|
||||||
|
controlsLayer.showSystemUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -4,7 +4,6 @@ import android.os.Bundle;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
import android.support.v4.app.FragmentTransaction;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
@ -14,6 +13,7 @@ import net.osmand.AndroidUtils;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.helpers.AndroidUiHelper;
|
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||||
|
import net.osmand.plus.views.MapControlsLayer;
|
||||||
|
|
||||||
public class MapRouteInfoMenuFragment extends Fragment {
|
public class MapRouteInfoMenuFragment extends Fragment {
|
||||||
public static final String TAG = "MapRouteInfoMenuFragment";
|
public static final String TAG = "MapRouteInfoMenuFragment";
|
||||||
|
@ -55,7 +55,9 @@ public class MapRouteInfoMenuFragment extends Fragment {
|
||||||
if (menu == null) {
|
if (menu == null) {
|
||||||
dismiss();
|
dismiss();
|
||||||
}
|
}
|
||||||
getMapActivity().getMapLayers().getMapControlsLayer().showMapControls();
|
MapControlsLayer controlsLayer = getMapActivity().getMapLayers().getMapControlsLayer();
|
||||||
|
controlsLayer.showMapControls();
|
||||||
|
controlsLayer.showSystemUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -53,6 +53,7 @@ import net.osmand.plus.mapmarkers.adapters.MapMarkersListAdapter;
|
||||||
import net.osmand.plus.measurementtool.SnapToRoadBottomSheetDialogFragment;
|
import net.osmand.plus.measurementtool.SnapToRoadBottomSheetDialogFragment;
|
||||||
import net.osmand.plus.measurementtool.SnapToRoadBottomSheetDialogFragment.SnapToRoadFragmentListener;
|
import net.osmand.plus.measurementtool.SnapToRoadBottomSheetDialogFragment.SnapToRoadFragmentListener;
|
||||||
import net.osmand.plus.routing.RoutingHelper;
|
import net.osmand.plus.routing.RoutingHelper;
|
||||||
|
import net.osmand.plus.views.MapControlsLayer;
|
||||||
import net.osmand.plus.views.MapMarkersLayer;
|
import net.osmand.plus.views.MapMarkersLayer;
|
||||||
import net.osmand.plus.views.OsmandMapTileView;
|
import net.osmand.plus.views.OsmandMapTileView;
|
||||||
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory;
|
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory;
|
||||||
|
@ -362,10 +363,10 @@ public class PlanRouteFragment extends Fragment implements OsmAndLocationListene
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
MapActivity mapActivity = getMapActivity();
|
MapActivity mapActivity = getMapActivity();
|
||||||
if (mapActivity != null) {
|
mapActivity.getMyApplication().getLocationProvider().addLocationListener(this);
|
||||||
mapActivity.getMyApplication().getLocationProvider().addLocationListener(this);
|
MapControlsLayer controlsLayer = mapActivity.getMapLayers().getMapControlsLayer();
|
||||||
}
|
controlsLayer.showMapControls();
|
||||||
getMapActivity().getMapLayers().getMapControlsLayer().showMapControls();
|
controlsLayer.showSystemUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -61,6 +61,7 @@ import net.osmand.plus.measurementtool.command.ClearPointsCommand;
|
||||||
import net.osmand.plus.measurementtool.command.MovePointCommand;
|
import net.osmand.plus.measurementtool.command.MovePointCommand;
|
||||||
import net.osmand.plus.measurementtool.command.RemovePointCommand;
|
import net.osmand.plus.measurementtool.command.RemovePointCommand;
|
||||||
import net.osmand.plus.measurementtool.command.ReorderPointCommand;
|
import net.osmand.plus.measurementtool.command.ReorderPointCommand;
|
||||||
|
import net.osmand.plus.views.MapControlsLayer;
|
||||||
import net.osmand.plus.views.OsmandMapTileView;
|
import net.osmand.plus.views.OsmandMapTileView;
|
||||||
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory;
|
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory;
|
||||||
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarController;
|
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarController;
|
||||||
|
@ -461,7 +462,9 @@ public class MeasurementToolFragment extends Fragment {
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
getMapActivity().getMapLayers().getMapControlsLayer().showMapControls();
|
MapControlsLayer controlsLayer = getMapActivity().getMapLayers().getMapControlsLayer();
|
||||||
|
controlsLayer.showMapControls();
|
||||||
|
controlsLayer.showSystemUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -814,7 +814,7 @@ public class ContextMenuLayer extends OsmandMapLayer {
|
||||||
if (!processed) {
|
if (!processed) {
|
||||||
MapControlsLayer controlsLayer = activity.getMapLayers().getMapControlsLayer();
|
MapControlsLayer controlsLayer = activity.getMapLayers().getMapControlsLayer();
|
||||||
controlsLayer.switchMapControlsVisibility();
|
controlsLayer.switchMapControlsVisibility();
|
||||||
controlsLayer.switchStatusbarAndNavbarVisibility();
|
controlsLayer.switchSystemUiVisibility();
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -656,9 +656,17 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
zoomOutButton.setOnLongClickListener(listener);
|
zoomOutButton.setOnLongClickListener(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean switchMapControlsAndSystemUiVisibilityNotAllowed() {
|
||||||
|
return app.getRoutingHelper().isFollowingMode() || app.getRoutingHelper().isPauseNavigation()
|
||||||
|
|| mapActivity.getMeasurementToolFragment() != null
|
||||||
|
|| mapActivity.getPlanRouteFragment() != null
|
||||||
|
|| mapActivity.getMapLayers().getRulerControlLayer().rulerModeOn();
|
||||||
|
}
|
||||||
|
|
||||||
public void showMapControls() {
|
public void showMapControls() {
|
||||||
mapActivity.findViewById(R.id.MapHudButtonsOverlay).setVisibility(View.VISIBLE);
|
mapActivity.findViewById(R.id.MapHudButtonsOverlay).setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hideMapControls() {
|
public void hideMapControls() {
|
||||||
mapActivity.findViewById(R.id.MapHudButtonsOverlay).setVisibility(View.INVISIBLE);
|
mapActivity.findViewById(R.id.MapHudButtonsOverlay).setVisibility(View.INVISIBLE);
|
||||||
}
|
}
|
||||||
|
@ -673,10 +681,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void switchMapControlsVisibility() {
|
public void switchMapControlsVisibility() {
|
||||||
if (app.getRoutingHelper().isFollowingMode() || app.getRoutingHelper().isPauseNavigation()
|
if (switchMapControlsAndSystemUiVisibilityNotAllowed()) {
|
||||||
|| mapActivity.getMeasurementToolFragment() != null
|
|
||||||
|| mapActivity.getPlanRouteFragment() != null
|
|
||||||
|| mapActivity.getMapLayers().getRulerControlLayer().rulerModeOn()) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (isMapControlsVisible()) {
|
if (isMapControlsVisible()) {
|
||||||
|
@ -686,17 +691,38 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void switchStatusbarAndNavbarVisibility() {
|
public void showSystemUI() {
|
||||||
if (Build.VERSION.SDK_INT >= 19) {
|
if (Build.VERSION.SDK_INT >= 19 && !isSystemUiVisible()) {
|
||||||
View decorView = mapActivity.getWindow().getDecorView();
|
switchSystemUiVisibility();
|
||||||
int uiOptions = decorView.getSystemUiVisibility();
|
|
||||||
uiOptions ^= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
|
|
||||||
uiOptions ^= View.SYSTEM_UI_FLAG_FULLSCREEN;
|
|
||||||
uiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
|
|
||||||
decorView.setSystemUiVisibility(uiOptions);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void hideSystemUI() {
|
||||||
|
if (Build.VERSION.SDK_INT >= 19 && isSystemUiVisible()) {
|
||||||
|
switchSystemUiVisibility();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSystemUiVisible() {
|
||||||
|
if (Build.VERSION.SDK_INT >= 19) {
|
||||||
|
int uiOptions = mapActivity.getWindow().getDecorView().getSystemUiVisibility();
|
||||||
|
return !((uiOptions | View.SYSTEM_UI_FLAG_FULLSCREEN) == uiOptions);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void switchSystemUiVisibility() {
|
||||||
|
if (switchMapControlsAndSystemUiVisibilityNotAllowed() || Build.VERSION.SDK_INT < 19) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
View decorView = mapActivity.getWindow().getDecorView();
|
||||||
|
int uiOptions = decorView.getSystemUiVisibility();
|
||||||
|
uiOptions ^= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
|
||||||
|
uiOptions ^= View.SYSTEM_UI_FLAG_FULLSCREEN;
|
||||||
|
uiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
|
||||||
|
decorView.setSystemUiVisibility(uiOptions);
|
||||||
|
}
|
||||||
|
|
||||||
public void startNavigation() {
|
public void startNavigation() {
|
||||||
OsmandApplication app = mapActivity.getMyApplication();
|
OsmandApplication app = mapActivity.getMyApplication();
|
||||||
RoutingHelper routingHelper = app.getRoutingHelper();
|
RoutingHelper routingHelper = app.getRoutingHelper();
|
||||||
|
|
Loading…
Reference in a new issue