Merge pull request #6471 from osmandapp/kolomiets_branch
Kolomiets branch
This commit is contained in:
commit
f94d3b66ef
11 changed files with 148 additions and 17 deletions
|
@ -2886,6 +2886,10 @@
|
|||
<string name="quick_action_add_poi_descr">Tapping this action button adds a POI in the middle of the screen.</string>
|
||||
<string name="quick_action_navigation_voice_descr">Tapping this action button disables or enables voice guidance during navigation.</string>
|
||||
<string name="quick_action_add_parking_descr">Tapping this action button adds a parking location in the middle of the screen.</string>
|
||||
<string name="quick_action_switch_day_night_descr">Tapping this action button switch between Day and Night modes for OsmAnd</string>
|
||||
<string name="quick_action_switch_day_mode">Day Mode</string>
|
||||
<string name="quick_action_switch_night_mode">Night Mode</string>
|
||||
<string name="quick_action_day_night_switch_mode">Switch Day/Night mode</string>
|
||||
<string name="quick_action_interim_dialog">Show an interim dialog</string>
|
||||
<string name="favorite_autofill_toast_text">" is saved to "</string>
|
||||
<string name="favorite_empty_place_name">Place</string>
|
||||
|
|
|
@ -1562,18 +1562,16 @@ public class GPXUtilities {
|
|||
if (tok == XmlPullParser.START_TAG) {
|
||||
Object parse = parserState.peek();
|
||||
String tag = parser.getName();
|
||||
if (extensionReadMode && parse instanceof GPXExtensions) {
|
||||
if (extensionReadMode && parse != null) {
|
||||
String value = readText(parser, tag);
|
||||
if (value != null) {
|
||||
((GPXExtensions) parse).getExtensionsToWrite().put(tag.toLowerCase(), value);
|
||||
if (tag.equals("speed") && parse instanceof WptPt) {
|
||||
try {
|
||||
((WptPt) parse).speed = Float.parseFloat(value);
|
||||
} catch (NumberFormatException e) {
|
||||
} catch (NumberFormatException e) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else if (parse instanceof GPXExtensions && tag.equals("extensions")) {
|
||||
extensionReadMode = true;
|
||||
} else {
|
||||
|
|
|
@ -270,15 +270,14 @@ public class FavoritesListFragment extends OsmAndListFragment implements SearchA
|
|||
|
||||
}
|
||||
|
||||
|
||||
public void sortByDefault() {
|
||||
public void sortByDefault(boolean isSortedByDistance) {
|
||||
Location loc = app.getLocationProvider().getLastStaleKnownLocation();
|
||||
LatLon map = app.getMapViewTrackingUtilities().getMapLocation();
|
||||
if (loc != null) {
|
||||
if (loc != null && isSortedByDistance) {
|
||||
sortByDistance(new LatLon(loc.getLatitude(), loc.getLongitude()));
|
||||
} else if(map != null){
|
||||
} else if (map != null && isSortedByDistance){
|
||||
sortByDistance(map);
|
||||
} else{
|
||||
} else {
|
||||
sortByName();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1399,7 +1399,10 @@ public class ConfigureMapMenu {
|
|||
|
||||
public static int parseTrackColor(RenderingRulesStorage renderer, String colorName) {
|
||||
int defaultColor = -1;
|
||||
RenderingRule gpxRule = renderer.getRenderingAttributeRule("gpx");
|
||||
RenderingRule gpxRule = null;
|
||||
if(renderer!=null) {
|
||||
gpxRule = renderer.getRenderingAttributeRule("gpx");
|
||||
}
|
||||
if (gpxRule != null && gpxRule.getIfElseChildren().size() > 0) {
|
||||
List<RenderingRule> rules = renderer.getRenderingAttributeRule("gpx").getIfElseChildren().get(0).getIfElseChildren();
|
||||
for (RenderingRule r : rules) {
|
||||
|
|
|
@ -55,7 +55,7 @@ public class FavoriteDialogs {
|
|||
}
|
||||
|
||||
};
|
||||
favouritesAdapter.sortByDefault();
|
||||
favouritesAdapter.sortByDefault(true);
|
||||
|
||||
if(points.size() == 0){
|
||||
Toast.makeText(activity, activity.getString(R.string.fav_points_not_exist), Toast.LENGTH_SHORT).show();
|
||||
|
@ -208,7 +208,7 @@ public class FavoriteDialogs {
|
|||
final OnDismissListener dismissListener, final Dialog[] dialogHolder, final boolean sortByDist) {
|
||||
ListView listView = new ListView(uiContext);
|
||||
AlertDialog.Builder bld = new AlertDialog.Builder(uiContext);
|
||||
favouritesAdapter.sortByDefault();
|
||||
favouritesAdapter.sortByDefault(sortByDist);
|
||||
listView.setAdapter(favouritesAdapter);
|
||||
listView.setOnItemClickListener(click);
|
||||
bld.setPositiveButton(sortByDist ? R.string.sort_by_name :
|
||||
|
|
|
@ -66,6 +66,44 @@
|
|||
</wpt>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
|
||||
<xsl:for-each select="//ge:Placemark">
|
||||
<xsl:variable name="lonlat" select="ge:Point/ge:coordinates"/>
|
||||
<xsl:variable name="lon" select="substring-before($lonlat,',')"/>
|
||||
<xsl:variable name="latele" select="substring-after($lonlat,',')"/>
|
||||
<xsl:variable name="lat">
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($latele,' ')">
|
||||
<xsl:value-of select="substring-before($latele,',')"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$latele"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="foldername" select="../ge:name"/>
|
||||
|
||||
<xsl:if test="$lon">
|
||||
<wpt lon="{$lon}" lat="{$lat}">
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($latele,',')">
|
||||
<ele><xsl:value-of select="substring-after($latele,',')"/></ele>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
<type>
|
||||
<xsl:value-of select="$foldername"/>
|
||||
</type>
|
||||
<name>
|
||||
<xsl:value-of select="ge:name"/>
|
||||
</name>
|
||||
<xsl:if test="ge:description">
|
||||
<desc>
|
||||
<xsl:value-of select="ge:description"/>
|
||||
</desc>
|
||||
</xsl:if>
|
||||
</wpt>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:for-each select="//kml:Placemark">
|
||||
<xsl:if test="kml:Point">
|
||||
<xsl:variable name="lonlat" select="kml:Point/kml:coordinates"/>
|
||||
|
|
|
@ -889,7 +889,6 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo
|
|||
boolean needMapAdjust = currentMenuState != newMenuState && newMenuState != MenuState.FULL_SCREEN;
|
||||
|
||||
if (newMenuState != currentMenuState) {
|
||||
restoreCustomMapRatio();
|
||||
menu.updateControlsVisibility(true);
|
||||
doBeforeMenuStateChange(currentMenuState, newMenuState);
|
||||
toggleDetailsHideButton();
|
||||
|
@ -1245,7 +1244,6 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo
|
|||
|
||||
@Override
|
||||
public void onPause() {
|
||||
restoreCustomMapRatio();
|
||||
|
||||
if (view != null) {
|
||||
ViewParent parent = view.getParent();
|
||||
|
|
|
@ -35,6 +35,7 @@ import net.osmand.plus.quickaction.actions.NewAction;
|
|||
import net.osmand.plus.quickaction.actions.ShowHideFavoritesAction;
|
||||
import net.osmand.plus.quickaction.actions.ShowHideOSMBugAction;
|
||||
import net.osmand.plus.quickaction.actions.ShowHidePoiAction;
|
||||
import net.osmand.plus.quickaction.actions.DayNightModeAction;
|
||||
import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
@ -116,6 +117,9 @@ public class QuickActionFactory {
|
|||
quickActions.add(new MapUnderlayAction());
|
||||
}
|
||||
|
||||
quickActions.add(new DayNightModeAction());
|
||||
|
||||
|
||||
QuickAction voice = new NavVoiceAction();
|
||||
QuickAction addDestination = new NavAddDestinationAction();
|
||||
QuickAction addFirstIntermediate = new NavAddFirstIntermediateAction();
|
||||
|
@ -232,6 +236,9 @@ public class QuickActionFactory {
|
|||
case NavResumePauseAction.TYPE:
|
||||
return new NavResumePauseAction();
|
||||
|
||||
case DayNightModeAction.TYPE:
|
||||
return new DayNightModeAction();
|
||||
|
||||
default:
|
||||
return new QuickAction();
|
||||
}
|
||||
|
@ -313,6 +320,9 @@ public class QuickActionFactory {
|
|||
case NavResumePauseAction.TYPE:
|
||||
return new NavResumePauseAction(quickAction);
|
||||
|
||||
case DayNightModeAction.TYPE:
|
||||
return new DayNightModeAction(quickAction);
|
||||
|
||||
default:
|
||||
return quickAction;
|
||||
}
|
||||
|
@ -394,6 +404,9 @@ public class QuickActionFactory {
|
|||
case NavResumePauseAction.TYPE:
|
||||
return R.drawable.ic_play_dark;
|
||||
|
||||
case DayNightModeAction.TYPE:
|
||||
return R.drawable.ic_action_map_day;
|
||||
|
||||
default:
|
||||
return R.drawable.ic_action_plus;
|
||||
}
|
||||
|
@ -457,6 +470,9 @@ public class QuickActionFactory {
|
|||
case MapUnderlayAction.TYPE:
|
||||
return R.string.quick_action_map_underlay;
|
||||
|
||||
case DayNightModeAction.TYPE:
|
||||
return R.string.quick_action_day_night_switch_mode;
|
||||
|
||||
case NavAddDestinationAction.TYPE:
|
||||
return R.string.quick_action_add_destination;
|
||||
|
||||
|
@ -500,6 +516,7 @@ public class QuickActionFactory {
|
|||
case ShowHideOSMBugAction.TYPE:
|
||||
case NavStartStopAction.TYPE:
|
||||
case NavResumePauseAction.TYPE:
|
||||
case DayNightModeAction.TYPE:
|
||||
return false;
|
||||
|
||||
default:
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
package net.osmand.plus.quickaction.actions;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.quickaction.QuickAction;
|
||||
|
||||
public class DayNightModeAction extends QuickAction {
|
||||
public static final int TYPE = 27;
|
||||
|
||||
public DayNightModeAction() {super(TYPE);}
|
||||
|
||||
public DayNightModeAction(QuickAction quickAction) {super(quickAction);}
|
||||
|
||||
@Override
|
||||
public void execute(MapActivity activity) {
|
||||
switch (activity.getMyApplication().getSettings().DAYNIGHT_MODE.get()){
|
||||
case DAY: {
|
||||
activity.getMyApplication().getSettings().DAYNIGHT_MODE.set(OsmandSettings.DayNightMode.NIGHT);
|
||||
break;
|
||||
}
|
||||
case NIGHT: {
|
||||
activity.getMyApplication().getSettings().DAYNIGHT_MODE.set(OsmandSettings.DayNightMode.DAY);
|
||||
break;
|
||||
}
|
||||
case AUTO: {
|
||||
activity.getMyApplication().getSettings().DAYNIGHT_MODE.set(OsmandSettings.DayNightMode.DAY);
|
||||
break;
|
||||
}
|
||||
case SENSOR: {
|
||||
activity.getMyApplication().getSettings().DAYNIGHT_MODE.set(OsmandSettings.DayNightMode.DAY);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawUI(ViewGroup parent, MapActivity activity) {
|
||||
View view = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.quick_action_with_text, parent, false);
|
||||
|
||||
((TextView) view.findViewById(R.id.text))
|
||||
.setText(R.string.quick_action_switch_day_night_descr);
|
||||
|
||||
parent.addView(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getIconRes(Context context) {
|
||||
if(context instanceof MapActivity) {
|
||||
switch (((MapActivity) context).getMyApplication().getSettings().DAYNIGHT_MODE.get()) {
|
||||
case NIGHT: {
|
||||
return R.drawable.ic_action_map_night;
|
||||
}
|
||||
case AUTO: {
|
||||
return R.drawable.ic_action_map_sunst;
|
||||
}
|
||||
case SENSOR: {
|
||||
return R.drawable.ic_action_map_light_sensor;
|
||||
}
|
||||
}
|
||||
}
|
||||
return R.drawable.ic_action_map_day;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getActionText(OsmandApplication application) {
|
||||
return application.getSettings().DAYNIGHT_MODE.get().toHumanString(application) + " Mode";
|
||||
}
|
||||
}
|
|
@ -420,8 +420,8 @@ public class MapQuickActionLayer extends OsmandMapLayer implements QuickActionRe
|
|||
|
||||
@Override
|
||||
public void onActionSelected(QuickAction action) {
|
||||
QuickActionFactory.produceAction(action).execute(mapActivity);
|
||||
setLayerState(false);
|
||||
QuickActionFactory.produceAction(action).execute(mapActivity);
|
||||
}
|
||||
|
||||
public PointF getMovableCenterPoint(RotatedTileBox tb) {
|
||||
|
|
|
@ -1180,8 +1180,6 @@ public class RouteInfoWidgetsFactory {
|
|||
// update cache
|
||||
if (view.isZooming()) {
|
||||
visible = false;
|
||||
} else if (!orientationPortrait && ma.getRoutingHelper().isRoutePlanningMode()) {
|
||||
visible = false;
|
||||
} else if (!tb.isZoomAnimated() && (tb.getZoom() != cacheRulerZoom || Math.abs(tb.getCenterTileX() - cacheRulerTileX) > 1 || Math
|
||||
.abs(tb.getCenterTileY() - cacheRulerTileY) > 1 || mapDensity.get() != cacheMapDensity) &&
|
||||
tb.getPixWidth() > 0 && maxWidth > 0) {
|
||||
|
|
Loading…
Reference in a new issue