private void updateMyLocation(RoutingHelper rh, boolean dialogOpened) { boolean enabled = mapActivity.getMyApplication().getLocationProvider().getLastKnownLocation() != null; boolean tracked = mapActivity.getMapViewTrackingUtilities().isMapLinkedToLocation(); if (!enabled) { backToLocationControl.setBg(R.drawable.btn_circle, R.drawable.btn_circle_night); backToLocationControl.setIconColorId(R.color.icon_color, 0); } else if (tracked) { backToLocationControl.setBg(R.drawable.btn_circle, R.drawable.btn_circle_night); backToLocationControl.setIconColorId(R.color.color_myloc_distance); } else { backToLocationControl.setIconColorId(0); backToLocationControl.setBg(R.drawable.btn_circle_blue); } boolean visible = !(tracked && rh.isFollowingMode()); backToLocationControl.updateVisibility(visible && !dialogOpened); }
private void updateControls(RotatedTileBox tileBox, DrawSettings nightMode) { boolean isNight = nightMode != null && nightMode.isNightMode(); int shadw = isNight ? Color.TRANSPARENT : Color.WHITE; int textColor = isNight ? mapActivity.getResources().getColor(R.color.widgettext_night) : Color.BLACK; if (shadowColor != shadw) { shadowColor = shadw; // TODO // updatextColor(textColor, shadw, rulerControl, zoomControls, mapMenuControls); } boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity); // default buttons boolean routePlanningMode = false; RoutingHelper rh = mapActivity.getRoutingHelper(); if (rh.isRoutePlanningMode()) { routePlanningMode = true; } else if ((rh.isRouteCalculated() || rh.isRouteBeingCalculated()) && !rh.isFollowingMode()) { routePlanningMode = true; } boolean routeFollowingMode = !routePlanningMode && rh.isFollowingMode(); boolean dialogOpened = optionsRouteControlDialog.isDialogVisible() || mapRouteInfoControlDialog.isDialogVisible(); boolean showRouteCalculationControls = routePlanningMode || ((System.currentTimeMillis() - touchEvent < TIMEOUT_TO_SHOW_BUTTONS) && routeFollowingMode); boolean showMenuButton = (showRouteCalculationControls && portrait) || (!routeFollowingMode && !routePlanningMode); updateMyLocation(rh, dialogOpened); // routePlanningBtn.setIconResId(routeFollowingMode ? R.drawable.ic_action_gabout_dark : // R.drawable.map_directions ); // routePlanningBtn.updateVisibility(showButtons && !routePlanningMode); routePlanningBtn.setIconResId(R.drawable.map_directions); routePlanningBtn.updateVisibility(!routeFollowingMode && !routePlanningMode); menuControl.updateVisibility(showMenuButton && !dialogOpened); mapZoomIn.updateVisibility(!dialogOpened); mapZoomOut.updateVisibility(!dialogOpened); compassHud.updateVisibility(!dialogOpened); layersHud.updateVisibility(!dialogOpened); if (routeFollowingMode || routePlanningMode) { mapAppModeShadow.setVisibility(View.GONE); } else { mapAppModeShadow.setVisibility(View.VISIBLE); if (!mapView.isZooming() || !OsmandPlugin.isDevelopment()) { zoomText.setVisibility(View.GONE); appModeIcon.setVisibility(View.VISIBLE); appModeIcon.setImageDrawable( app.getIconsCache() .getIcon(settings.getApplicationMode().getSmallIconDark(), !isNight)); } else { zoomText.setVisibility(View.VISIBLE); appModeIcon.setVisibility(View.GONE); zoomText.setText(getZoomLevel(tileBox)); } } int vis = showRouteCalculationControls ? View.VISIBLE : View.GONE; if (showRouteCalculationControls) { ((TextView) routeGoControl.iv).setTextColor(textColor); String text = portrait ? mapActivity.getString(R.string.shared_string_go) : ""; if (startCounter > 0) { int get = (int) ((startCounter - System.currentTimeMillis()) / 1000l); text += " (" + get + ")"; } ((TextView) routeGoControl.iv).setText(text); } if (routePreparationLayout.getVisibility() != vis) { routePreparationLayout.setVisibility(vis); mapDashControl.updateVisibility(showRouteCalculationControls && !portrait); mapRouteInfoControlDialog.setVisible(showRouteCalculationControls); if (showRouteCalculationControls) { if (!mapActivity.getRoutingHelper().isFollowingMode() && !mapActivity.getRoutingHelper().isPauseNavigation()) { startCounter(); } } else { stopCounter(); } } updateCompass(isNight); for (MapHudButton mc : controls) { mc.update( mapActivity.getMyApplication(), nightMode == null ? false : nightMode.isNightMode()); } }