Skip to content

Commit

Permalink
Merge branch 'osmandapp:master' into hardy_Afa
Browse files Browse the repository at this point in the history
  • Loading branch information
sonora authored Nov 4, 2024
2 parents 70f3bcd + 76aa424 commit 2f3d0ef
Show file tree
Hide file tree
Showing 19 changed files with 169 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ private static String alignChars(String fullText) {
return fullText;
}

private static boolean isSpace(char c){
public static boolean isSpace(char c){
return !Character.isLetter(c) && !Character.isDigit(c);
}

Expand Down
37 changes: 24 additions & 13 deletions OsmAnd-java/src/main/java/net/osmand/binary/GeocodingUtilities.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package net.osmand.binary;

import net.osmand.CollatorStringMatcher;
import net.osmand.CollatorStringMatcher.StringMatcherMode;
import net.osmand.PlatformUtil;
import net.osmand.ResultMatcher;
import net.osmand.CollatorStringMatcher.StringMatcherMode;
import net.osmand.binary.BinaryMapIndexReader.SearchRequest;
import net.osmand.binary.BinaryMapRouteReaderAdapter.RouteRegion;
import net.osmand.binary.GeocodingUtilities.GeocodingResult;
import net.osmand.data.Building;
import net.osmand.data.City;
import net.osmand.data.LatLon;
Expand All @@ -17,7 +17,6 @@
import net.osmand.router.RoutingContext;
import net.osmand.util.Algorithms;
import net.osmand.util.MapUtils;

import org.apache.commons.logging.Log;

import java.io.IOException;
Expand Down Expand Up @@ -51,6 +50,9 @@ public class GeocodingUtilities {

@Override
public int compare(GeocodingResult o1, GeocodingResult o2) {
if ((int) o1.getDistance() == (int) o2.getDistance()) {
return Double.compare(o1.getCityDistance(), o2.getCityDistance());
}
return Double.compare(o1.getDistance(), o2.getDistance());
}
};
Expand Down Expand Up @@ -85,6 +87,7 @@ public GeocodingResult(GeocodingResult r) {
public Street street;
public City city;
private double dist = -1;
private double cityDist = -1;

public LatLon getLocation() {
return connectionPoint;
Expand All @@ -110,6 +113,18 @@ public double getDistance() {
return dist;
}

public void resetDistance() {
dist = -1;
getDistance();
}

public double getCityDistance() {
if (cityDist == -1 && city != null && searchPoint != null) {
cityDist = MapUtils.getDistance(city.getLocation(), searchPoint);
}
return cityDist;
}

@Override
public String toString() {
StringBuilder bld = new StringBuilder();
Expand Down Expand Up @@ -185,9 +200,9 @@ public List<String> prepareStreetName(String s, boolean addCommonWords) {
List<String> ls = new ArrayList<String>();
int beginning = 0;
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) == ' ') {
if (CollatorStringMatcher.isSpace(s.charAt(i))) {
addWord(ls, s.substring(beginning, i), addCommonWords);
beginning = i;
beginning = i + 1;
} else if (s.charAt(i) == '(') {
addWord(ls, s.substring(beginning, i), addCommonWords);
while (i < s.length()) {
Expand Down Expand Up @@ -254,6 +269,7 @@ && prepareStreetName(object.getName(), addCommonWordsFinal).equals(streetNamesUs
// set connection point to sort
rs.connectionPoint = rs.street.getLocation();
rs.city = rs.street.getCity();
rs.dist = d;
streetsList.add(rs);
return true;
}
Expand Down Expand Up @@ -281,10 +297,10 @@ public boolean isCancelled() {
for (GeocodingResult street : streetsList) {
if (streetDistance == 0) {
streetDistance = street.getDistance();
} else if (streetDistance > 0 && street.getDistance() > streetDistance + DISTANCE_STREET_FROM_CLOSEST_WITH_SAME_NAME &&
isBuildingFound) {
} else if (isBuildingFound && street.getDistance() > streetDistance + DISTANCE_STREET_FROM_CLOSEST_WITH_SAME_NAME) {
continue;
}
street.resetDistance();//reset to road projection
street.connectionPoint = road.connectionPoint;
final List<GeocodingResult> streetBuildings = loadStreetBuildings(road, reader, street);
Collections.sort(streetBuildings, DISTANCE_COMPARATOR);
Expand Down Expand Up @@ -435,12 +451,7 @@ public List<GeocodingResult> sortGeocodingResults(List<BinaryMapIndexReader> lis
it.remove();
}
}
Collections.sort(complete, new Comparator<GeocodingResult>() {
@Override
public int compare(GeocodingResult o1, GeocodingResult o2) {
return Double.compare(o1.getDistance(), o2.getDistance());
}
});
Collections.sort(complete, DISTANCE_COMPARATOR);
return complete;

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -660,6 +660,11 @@ public String getDestinationName(String lang, boolean transliterate, List<RouteS
float distanceFromTurn = getDistance();
for (int n = routeInd + 1; n + 1 < list.size(); n++) {
RouteSegmentResult s1 = list.get(n);
TurnType t = s1.getTurnType();
if (t != null) {
// avoid retrieve destination over other turns
break;
}
String s1DnRef = s1.getObject().getDestinationRef(lang, transliterate, isForwardDirection());
boolean dnRefIsEqual = !Algorithms.isEmpty(s1DnRef) && !Algorithms.isEmpty(dnRef) && s1DnRef.equals(dnRef);
boolean isMotorwayLink = "motorway_link".equals(s1.getObject().getHighway());
Expand Down
5 changes: 5 additions & 0 deletions OsmAnd-java/src/main/java/net/osmand/util/LocationParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@

public class LocationParser {

public static final String LTR_MARK = "\u200e";
public static final String RTL_MARK = "\u200f";

public static class ParsedOpenLocationCode {
private final String text;
private String code;
Expand Down Expand Up @@ -93,6 +96,8 @@ public static ParsedOpenLocationCode parseOpenLocationCode(String locPhrase) {

public static LatLon parseLocation(String locPhrase) {
locPhrase = locPhrase.trim();
locPhrase = locPhrase.replaceAll(LTR_MARK, "");
locPhrase = locPhrase.replaceAll(RTL_MARK, "");
boolean valid = isValidLocPhrase(locPhrase);
if (!valid) {
String[] split = locPhrase.split(" ");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@ object OBDDataComputer {

private val log = LoggerFactory.getLogger("OBDDataComputer")

const val DEFAULT_FUEL_TANK_CAPACITY = 52f
var locations = listOf<OBDLocation>()
var widgets: List<OBDComputerWidget> = ArrayList()
private set
var timeoutForInstantValuesSeconds = 0
var fuelTank = 52f
var fuelTank = DEFAULT_FUEL_TANK_CAPACITY

class OBDLocation(val time: Long, val latLon: KLatLon)

Expand Down Expand Up @@ -430,4 +431,5 @@ object OBDDataComputer {
}
}
}

}
15 changes: 15 additions & 0 deletions OsmAnd/res/drawable/ic_action_turn_preview_disabled.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M15,18.5V2H9V18.5H15Z"
android:strokeAlpha="0.4"
android:fillColor="#ffffff"
android:fillType="evenOdd"
android:fillAlpha="0.4"/>
<path
android:pathData="M12,20L8.1708,21.9146C8.0585,21.9708 7.9346,22.0001 7.809,22.0001C7.3622,22.0001 7,21.6379 7,21.191V21.1767C7,21.0602 7.0247,20.9451 7.0725,20.8388L11.2946,11.4564C11.4196,11.1786 11.6959,11 12.0005,11C12.3046,11 12.5805,11.178 12.7058,11.4551L16.9233,20.7804C16.9738,20.8922 17,21.0135 17,21.1363V21.191C17,21.6378 16.6378,22 16.191,22C16.0654,22 15.9415,21.9708 15.8292,21.9146L12,20Z"
android:fillColor="#ffffff"/>
</vector>
15 changes: 15 additions & 0 deletions OsmAnd/res/drawable/ic_action_turn_preview_enabled.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M18,19V9C18,5.134 14.866,2 11,2H4V8H11C11.5523,8 12,8.4477 12,9V19H18Z"
android:strokeAlpha="0.4"
android:fillColor="#ffffff"
android:fillType="evenOdd"
android:fillAlpha="0.4"/>
<path
android:pathData="M15,20L11.1708,21.9146C11.0585,21.9708 10.9346,22.0001 10.809,22.0001C10.3622,22.0001 10,21.6379 10,21.191V21.1767C10,21.0602 10.0247,20.9451 10.0725,20.8388L14.2946,11.4564C14.4196,11.1786 14.6959,11 15.0005,11C15.3046,11 15.5805,11.178 15.7058,11.4551L19.9233,20.7804C19.9738,20.8922 20,21.0135 20,21.1363V21.191C20,21.6378 19.6378,22 19.191,22C19.0654,22 18.9415,21.9708 18.8292,21.9146L15,20Z"
android:fillColor="#ffffff"/>
</vector>
11 changes: 11 additions & 0 deletions OsmAnd/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5937,4 +5937,15 @@
<string name="obd_connected_to_device">Verbunden mit %s</string>
<string name="obd_not_connected_to_device">Getrennt von %s</string>
<string name="dynamic_icon_type_summary">Symbol ändert sich je nach Aktionsstatus.</string>
<string name="fuel_tank_capacity_description">Tankinhalt eingeben, um Kraftstoffstand und -verbrauch genau zu verfolgen</string>
<string name="shared_strings_dimensions">Abmessungen</string>
<string name="fuel_tank_capacity">Volumen des Kraftstofftanks</string>
<string name="litres">Liter</string>
<string name="imperial_gallons_unit">imp gal</string>
<string name="us_gallons_unit">gal</string>
<string name="imperial_gallons">Imperial gallons</string>
<string name="us_gallons">US gallons</string>
<string name="unit_of_volume_description">Ausgewählte Einheiten werden auf alle volumenbezogenen Daten im aktuellen Profil angewendet.</string>
<string name="unit_of_volume">Volumeneinheit</string>
<string name="record_obd_data">Fahrzeugmetriken aufzeichnen</string>
</resources>
32 changes: 31 additions & 1 deletion OsmAnd/res/values-eo/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1202,7 +1202,7 @@
<string name="switch_to_raster_map_to_see">Elŝutu malkonektan vektoran mapon por tiu ĉi loko per la menuo “Elŝuti mapojn”, aŭ aktivigu la kromprogramon “Enretaj mapoj”.</string>
<string name="send_files_to_osm">Ĉu alŝuti GPX-dosierojn al OSM?</string>
<string name="gpx_tags_txt">Etikedoj</string>
<string name="gpx_visibility_txt">Videblo</string>
<string name="gpx_visibility_txt">Videbla</string>
<string name="shared_string_description">Priskribo</string>
<string name="validate_gpx_upload_name_pwd">Bonvolu enmeti vian uzantnomon kaj pasvorton al OSM por alŝuti GPX-dosierojn.</string>
<string name="default_buttons_support">Subteni</string>
Expand Down Expand Up @@ -5970,4 +5970,34 @@
<string name="ltr_or_rtl_combine_via_dash">%1$s — %2$s</string>
<string name="lock_screen_description">Aktivigi aŭ malaktivigi tuŝekranon por evitigi senintencajn frapetojn</string>
<string name="lock_screen">Ŝlosi ekranon</string>
<string name="record_obd_data">Registri statistikojn pri veturilo</string>
<string name="fuel_tank_capacity_description">Enigu enhavecon de via brulaĵujo por precize spuri nivelon kaj konsumon de brulaĵo</string>
<string name="fuel_tank_capacity">Enhaveco de brulaĵujo</string>
<string name="shared_strings_dimensions">Dimensioj</string>
<string name="litres">Litroj</string>
<string name="imperial_gallons_unit">gal</string>
<string name="us_gallons_unit">gal</string>
<string name="imperial_gallons">Britaj galjonoj</string>
<string name="us_gallons">Usonaj galjonoj</string>
<string name="unit_of_volume_description">Elektata mezurunuo estos aplikita al ĉiuj volumen-rilataj datumoj en la elektita profilo.</string>
<string name="unit_of_volume">Mezurunuo de volumeno</string>
<string name="dynamic_icon_type_summary">Bildsimbolo ŝanĝiĝas laŭ stato de ago.</string>
<string name="shared_string_dynamic">Dinamika</string>
<string name="obd_connected_to_device">Konektita kun %s</string>
<string name="obd_not_connected_to_device">Malkonektita de %s</string>
<string name="obd_connecting_to_device">Konektata kun %s</string>
<string name="bt_start_pair_failed">Ne povas ekigi kupli la aparaton</string>
<string name="obd_fuel_consumption_rate_percent_hour_desc">Montras konsumon de brulaĵo de via veturilo surbaze de kalkuloj (%/h)</string>
<string name="l_100km">l/100km</string>
<string name="obd_fuel_consumption_rate_l_km">Konsumo de brulaĵo (l/km)</string>
<string name="obd_fuel_consumption_rate_l_km_desc">Montras konsumon de brulaĵo de via veturilo surbaze de kalkuloj (l/km)</string>
<string name="simulate_obd">Simuli ODB-datumojn</string>
<string name="obd_engine_runtime">Labortempo de motoro</string>
<string name="obd_engine_runtime_desc">Montras labortempon de motoro raportatan de OBD-sentilo</string>
<string name="obd_fuel_pressure">Premo de brulaĵo</string>
<string name="obd_fuel_pressure_desc">Montras premon de brulaĵo raportatan de OBD-sentilo</string>
<string name="obd_calculated_engine_load">Kalkulita ŝarĝo de motoro</string>
<string name="speedometer_maximum">Maksimumo</string>
<string name="obd_throttle_position">Pozicio de brulaĵ-valvo</string>
<string name="kpa_unit">kPa</string>
</resources>
4 changes: 2 additions & 2 deletions OsmAnd/res/values-hu/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5578,10 +5578,10 @@
<string name="obd_fuel_left_percent">Maradék üzemanyag (%)</string>
<string name="obd_fuel_left_liter">Maradék üzemanyag (l)</string>
<string name="obd_fuel_left_km">Megtehető táv (km)</string>
<string name="obd_fuel_consumption_rate_percent_hour">Fogyasztás %/óra</string>
<string name="obd_fuel_consumption_rate_percent_hour">Fogyasztás (%/óra)</string>
<string name="obd_fuel_consumption_rate_l_h">Fogyasztás (l/óra)</string>
<string name="obd_fuel_consumption_rate_scanner">Fogyasztás (OBD)</string>
<string name="obd_fuel_consumption_rate_liter_hour">Fogyasztás l/óra</string>
<string name="obd_fuel_consumption_rate_liter_hour">Fogyasztás (l/óra)</string>
<string name="percent_hour">%/óra</string>
<string name="liter">l</string>
<string name="speedometer_maximum">Maximum</string>
Expand Down
12 changes: 12 additions & 0 deletions OsmAnd/res/values-vi/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2014,4 +2014,16 @@
<string name="routing_attr_carriage_restrictions_description">Xem xét quyền truy cập của những phương tiện được ngựa kéo</string>
<string name="rendering_attr_seabedDetail_description">Thông tin văn bản bổ sung về phẩm chất bề mặt đáy biển, các loại bề mặt kết hợp, danh mục và phân loại rong biển hoặc cỏ biển</string>
<string name="location_source_descr">Theo mặc định, OsmAnd được cài từ Cửa hàng Play sử dụng %1$s để xác định vị trí.\n\nNếu bạn thấy thông tin vị trí không đúng hoặc dùng thiết bị không có %2$s, hãy thử chuyển sang \"%3$s\"</string>
<string name="predefined_waypoint_appearance_description">Việc chọn hành động này sẽ tự động lưu điểm dừng với các tham số đã được xác định trước.</string>
<string name="record_obd_data">Ghi các số liệu về phương tiện</string>
<string name="fuel_tank_capacity_description">Nhập dung tích bình xăng để theo dõi mức nhiên liệu và mức tiêu thụ</string>
<string name="fuel_tank_capacity">Dung tích bình xăng</string>
<string name="shared_strings_dimensions">Kích thước</string>
<string name="litres">Lít</string>
<string name="imperial_gallons_unit">imp ga-lông</string>
<string name="us_gallons_unit">ga-lông</string>
<string name="imperial_gallons">Ga-lông hệ đo imperial</string>
<string name="us_gallons">Ga-lông hệ US</string>
<string name="unit_of_volume_description">Những đơn vị đã chọn sẽ được áp dụng cho tất cả dữ liệu liên quan đến thể tích trong hồ sơ hiện tại.</string>
<string name="unit_of_volume">Đơn vị thể tích</string>
</resources>
11 changes: 11 additions & 0 deletions OsmAnd/res/values-zh-rTW/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5637,4 +5637,15 @@
<string name="obd_not_connected_to_device">與 %s 斷線</string>
<string name="obd_connecting_to_device">正在連線至 %s</string>
<string name="dynamic_icon_type_summary">圖示會根據動作狀態變更。</string>
<string name="fuel_tank_capacity_description">輸入油箱容量,精確追蹤油量與耗油量</string>
<string name="fuel_tank_capacity">油箱容量</string>
<string name="shared_strings_dimensions">尺寸</string>
<string name="litres">公升</string>
<string name="imperial_gallons_unit">英制加侖</string>
<string name="us_gallons_unit">加侖</string>
<string name="imperial_gallons">英制加侖</string>
<string name="us_gallons">美制加侖</string>
<string name="unit_of_volume_description">選取的單位將套用於目前設定檔中所有與體積相關的資料。</string>
<string name="unit_of_volume">體積單位</string>
<string name="record_obd_data">記錄車輛指標</string>
</resources>
3 changes: 2 additions & 1 deletion OsmAnd/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
- For wording and consistency, please note https://docs.osmand.net/docs/technical/contributions/translating-osmand
Thx - Hardy
-->
<string name="release_5_0" translatable="false"></string>
<string name="release_5_0" translatable="false"></string>
<string name="wunderlinq_datagrid">WunderLINQ Datagrid</string>
<string name="fuel_tank_capacity_description">Enter your tank capacity to accurately track fuel levels and consumption</string>
<string name="fuel_tank_capacity">Fuel tank capacity</string>
<string name="shared_strings_dimensions">Dimensions</string>
Expand Down
5 changes: 4 additions & 1 deletion OsmAnd/src/net/osmand/plus/OsmAndLocationProvider.java
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ public interface OsmAndCompassListener {
private long timeToNotUseOtherGPS;
private net.osmand.Location cachedLocation;
private net.osmand.Location customLocation;
private net.osmand.Location prevLocation;

private boolean sensorRegistered;
private final float[] mGravs = new float[3];
Expand Down Expand Up @@ -616,13 +617,14 @@ private boolean shouldIgnoreLocation(net.osmand.Location location) {
if (customLocation != null && timeToNotUseOtherGPS >= System.currentTimeMillis()) {
return location == null || !Algorithms.stringsEqual(customLocation.getProvider(), location.getProvider());
}
return false;
return prevLocation != null && location != null && prevLocation.getTime() == location.getTime();
}

public void setLocationFromService(net.osmand.Location location) {
if (locationSimulation.isRouteAnimating() || shouldIgnoreLocation(location)) {
return;
}
prevLocation = location;
if (location != null) {
lastTimeLocationFixed = System.currentTimeMillis();
notifyGpsLocationRecovered();
Expand Down Expand Up @@ -661,6 +663,7 @@ private void setLocation(net.osmand.Location location) {
if (shouldIgnoreLocation(location)) {
return;
}
prevLocation = location;
if (location == null) {
gpsInfo.reset();
}
Expand Down
2 changes: 2 additions & 0 deletions OsmAnd/src/net/osmand/plus/quickaction/MapButtonsHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import net.osmand.plus.plugins.PluginsHelper;
import net.osmand.plus.plugins.mapillary.ShowHideMapillaryAction;
import net.osmand.plus.quickaction.actions.*;
import net.osmand.plus.quickaction.actions.special.OpenWunderLINQDatagridAction;
import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.plus.views.mapwidgets.configure.buttons.*;
Expand Down Expand Up @@ -396,6 +397,7 @@ public void updateActionTypes() {
// interface
allTypes.add(OpenNavigationViewAction.TYPE);
allTypes.add(OpenSearchViewAction.TYPE);
allTypes.add(OpenWunderLINQDatagridAction.TYPE);
allTypes.add(ShowHideDrawerAction.TYPE);
allTypes.add(NavigatePreviousScreenAction.TYPE);
allTypes.add(LockScreenAction.TYPE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ public class OpenWunderLINQDatagridAction extends QuickAction {

public static final QuickActionType TYPE = new QuickActionType(OPEN_WUNDERLINQ_DATAGRID_ACTION,
"open.wunderlinq.datagrid", OpenWunderLINQDatagridAction.class)
.nameRes(R.string.key_event_action_open_wunderlinq_datagrid)
.iconRes(R.drawable.ic_action_settings)
.nameActionRes(R.string.shared_string_open);
.nameActionRes(R.string.shared_string_open)
.nameRes(R.string.wunderlinq_datagrid)
.iconRes(R.drawable.ic_action_data_grid)
.category(QuickActionType.INTERFACE)
.nonEditable();

private static final String APP_PATH = "wunderlinq://datagrid";

Expand Down
Loading

0 comments on commit 2f3d0ef

Please sign in to comment.