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 Jun 14, 2024
2 parents e44ee20 + 88b6d3d commit 3b4411b
Show file tree
Hide file tree
Showing 24 changed files with 133 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ public class MapTileDownloader {
public static int TILE_DOWNLOAD_SECONDS_TO_WORK = 25;
public static final long TIMEOUT_AFTER_EXCEEDING_LIMIT_ERRORS = 15000;
public static final int TILE_DOWNLOAD_MAX_ERRORS_PER_TIMEOUT = 50;
private static final int CONNECTION_TIMEOUT = 30000;
private static final int CONNECT_TIMEOUT = 30000;
private static final int READ_TIMEOUT = CONNECT_TIMEOUT * 2;

private static MapTileDownloader downloader = null;

Expand Down Expand Up @@ -239,8 +240,8 @@ public void run() {
connection.setRequestProperty("User-Agent", Algorithms.isEmpty(request.userAgent) ? USER_AGENT : request.userAgent);
if (request.referer != null)
connection.setRequestProperty("Referer", request.referer);
connection.setConnectTimeout(CONNECTION_TIMEOUT);
connection.setReadTimeout(CONNECTION_TIMEOUT);
connection.setConnectTimeout(CONNECT_TIMEOUT);
connection.setReadTimeout(READ_TIMEOUT);
BufferedInputStream inputStream = new BufferedInputStream(connection.getInputStream(), 8 * 1024);
request.saveTile(inputStream);
if (log.isDebugEnabled()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,7 @@ public static class HHRoutingConfig {
int FULL_DIJKSTRA_NETWORK_RECALC = 10;
int MAX_START_END_REITERATIONS = 50;
double MAX_INC_COST_CF = 1.25;
int MAX_COUNT_REITERATION = 100;
///////////
int MAX_COUNT_REITERATION = 30; // 3 is enough for 90%, 30 is for 10% (100-750km with 1.5m months live updates)
Double INITIAL_DIRECTION = null;


Expand Down
20 changes: 15 additions & 5 deletions OsmAnd-java/src/main/java/net/osmand/router/HHRoutePlanner.java
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ public HHNetworkRouteRes runRouting(LatLon start, LatLon end, HHRoutingConfig co
return new HHNetworkRouteRes("Files for hh routing were not initialized. Route couldn't be calculated.");
}
filterPointsBasedOnConfiguration(hctx);

TLongObjectHashMap<T> stPoints = new TLongObjectHashMap<>(), endPoints = new TLongObjectHashMap<>();
progress.hhIteration(HHIteration.START_END_POINT);
findFirstLastSegments(hctx, start, end, stPoints, endPoints, progress);
Expand All @@ -196,6 +196,10 @@ public HHNetworkRouteRes runRouting(LatLon start, LatLon end, HHRoutingConfig co
printf((!recalc || DEBUG_VERBOSE_LEVEL > 0) && SL > 0, " Routing...");
long time = System.nanoTime();
NetworkDBPoint finalPnt = runRoutingPointsToPoints(hctx, stPoints, endPoints);
if (finalPnt == null) {
printf(SL > 0, " finalPnt is null (stop)\n");
return new HHNetworkRouteRes("No finalPnt found (points might be filtered by params)");
}
calcCount++;
if (progress.isCancelled) {
return cancelledStatus();
Expand All @@ -217,6 +221,7 @@ public HHNetworkRouteRes runRouting(LatLon start, LatLon end, HHRoutingConfig co
hctx.stats.routingTime += time / 1e6;
if (recalc) {
if (calcCount > hctx.config.MAX_COUNT_REITERATION) {
printf(SL > 0, "Too many recalculations (stop)\n");
return new HHNetworkRouteRes("Too many recalculations (outdated maps or unsupported parameters).");
}
hctx.clearVisited(stPoints, endPoints);
Expand Down Expand Up @@ -271,7 +276,7 @@ public HHNetworkRouteRes runRouting(LatLon start, LatLon end, HHRoutingConfig co
hctx.stats.prepTime += (System.nanoTime() - time) / 1e6;
printf(SL > 0, "%.2f ms\n", hctx.stats.prepTime);
printf(SL > 0, "Found final route - cost %.2f (detailed %.2f, %.1f%%), %d depth ( first met %,d, visited %,d (%,d unique) of %,d added vertices )",
route.getHHRoutingTime(), route.getHHRoutingDetailed(), 100 * (1 - route.getHHRoutingDetailed() / route.getHHRoutingTime()),
route.getHHRoutingTime(), route.getHHRoutingDetailed(), 100 * (1 - route.getHHRoutingDetailed() / (route.getHHRoutingTime() + 0.01)),
route.segments.size(), hctx.stats.firstRouteVisitedVertices, hctx.stats.visitedVertices, hctx.stats.uniqueVisitedVertices, hctx.stats.addedVertices);
hctx.stats.prepTime += altRoutes;
if (SL > 0) {
Expand Down Expand Up @@ -861,14 +866,17 @@ private TLongObjectHashMap<T> initStart(HHRoutingContext<T> hctx, RouteSegmentPo
finitePnt.setDistanceToEnd(reverse, hctx.distanceToEnd(reverse, finitePnt));
finitePnt.setCostParentRt(reverse, plusCost, null, plusCost);
pnts.put(finitePnt.index, finitePnt);

T dualPoint = (T) finitePnt.dualPoint;
dualPoint.setDistanceToEnd(reverse, hctx.distanceToEnd(reverse, dualPoint));
dualPoint.setCostParentRt(reverse, negCost, null, negCost);
pnts.put(dualPoint.index, dualPoint);

return pnts;
}
int savedMaxVisited = hctx.rctx.config.MAX_VISITED;
int savedPlanRoadDirectrion = hctx.rctx.config.planRoadDirection;
float savedHeuristicCoefficient = hctx.rctx.config.heuristicCoefficient;
hctx.rctx.config.MAX_VISITED = MAX_POINTS_CLUSTER_ROUTING;
hctx.rctx.config.planRoadDirection = reverse ? -1 : 1;
hctx.rctx.config.heuristicCoefficient = 0; // dijkstra
Expand All @@ -877,7 +885,9 @@ private TLongObjectHashMap<T> initStart(HHRoutingContext<T> hctx, RouteSegmentPo
BinaryRoutePlanner planner = new BinaryRoutePlanner();
MultiFinalRouteSegment frs = (MultiFinalRouteSegment) planner.searchRouteInternal(hctx.rctx,
reverse ? null : s, reverse ? s : null, hctx.boundaries);
hctx.rctx.config.MAX_VISITED = -1;
hctx.rctx.config.heuristicCoefficient = savedHeuristicCoefficient;
hctx.rctx.config.planRoadDirection = savedPlanRoadDirectrion;
hctx.rctx.config.MAX_VISITED = savedMaxVisited;
if (HHRoutingConfig.STATS_VERBOSE_LEVEL > 0) {
System.out.println(" " + hctx.rctx.calculationProgress.getInfo(null));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,7 @@ public RouteCalcResult searchRoute(final RoutingContext ctx, LatLon start, LatLo
}
}
}

double maxDistance = MapUtils.getDistance(start, end);
if (!intermediatesEmpty) {
LatLon b = start;
Expand Down Expand Up @@ -516,6 +516,7 @@ private HHNetworkRouteRes runHHRoute(RoutingContext ctx, LatLon start, List<LatL
dir = (r.detailed.get(r.detailed.size() - 1).getBearingEnd() / 180.0) * Math.PI;
}
}
ctx.unloadAllData(); // clean indexedSubregions is required for BRP-fallback
ctx.routingTime = r != null ? (float) r.getHHRoutingDetailed() : 0;
return r;
}
Expand Down
2 changes: 1 addition & 1 deletion OsmAnd/res/values-de/phrases.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3526,7 +3526,7 @@
<string name="poi_childcare">Kinderbetreuung</string>
<string name="poi_denotation_natural_monument">Naturdenkmal</string>
<string name="poi_denotation_landmark">Orientierungspunkt</string>
<string name="poi_park_ride">Park-and-ride</string>
<string name="poi_park_ride">Park and Ride</string>
<string name="poi_park_ride_yes">Ja;Parken und Reisen</string>
<string name="poi_park_ride_train">Zug</string>
<string name="poi_park_ride_bus">Bus</string>
Expand Down
3 changes: 2 additions & 1 deletion OsmAnd/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5747,4 +5747,5 @@
<string name="no_assigned_keys_desc">Wählen Sie eine Aktion und weisen Sie eine Taste mit der \"Hinzufügen\"-Schaltfläche zu.</string>
<string name="key_assignment_add_key">Taste hinzufügen</string>
<string name="assigned_keys">Zugewiesene Tasten</string>
</resources>
<string name="shared_string_colors">Farben</string>
</resources>
2 changes: 1 addition & 1 deletion OsmAnd/res/values-fr/phrases.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2780,7 +2780,7 @@
<string name="poi_social_facility_outreach">Sensibilisation</string>
<string name="poi_social_facility_for_diseased">Malade</string>
<string name="poi_tomb_rock_cut">Type : coupe de roche</string>
<string name="poi_historic_civilization_ancient_roman">Civilisation : ancien romain \'753 av. JC. - 284 ap. JC.)</string>
<string name="poi_historic_civilization_ancient_roman">Civilisation : Rome antique (753 av. JC. - 284 ap. JC.)</string>
<string name="poi_historic_period_early_dynastic_period">Période historique : période dynastique antérieure (3100 - 2686 av. J.-C.)</string>
<string name="poi_historic_period_first_persian_period">Période historique : première période perse</string>
<string name="poi_historic_period_late_period">Période historique : période tardive (664 - 332 av. J.-C.)</string>
Expand Down
18 changes: 18 additions & 0 deletions OsmAnd/res/values-nl/phrases.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3947,4 +3947,22 @@
<string name="poi_shop_general">Warenhuis</string>
<string name="poi_hiking_filter">Geschikt voor trektochten</string>
<string name="poi_second_hand_filter">Tweedehands goederen</string>
<string name="poi_indoor_seating_no">Niet binnen zitten</string>
<string name="poi_indoor_seating_yes">Binnen zitten: ja</string>
<string name="poi_indoor_seating_bar_table">Binnen zitten: bar tafel</string>
<string name="poi_socket_type2_combo_voltage_filter">Type 2 combo voltage</string>
<string name="poi_access_permit">Vergunning vereist</string>
<string name="poi_music_venue">Muziek locatie</string>
<string name="poi_socket_chademo_voltage_filter">CHAdeMO voltage</string>
<string name="poi_access_yes">Toegang is toegestaan</string>
<string name="poi_cuisine_fish">Vis</string>
<string name="poi_climbing_quality">Staat van de klim</string>
<string name="poi_self_checkout">Zelfscan kassa</string>
<string name="poi_socket_type2_voltage_filter">Type 2 voltage</string>
<string name="poi_socket_type2_cable_voltage_filter">Type 2 voltage</string>
<string name="poi_impromptu">Spontaan</string>
<string name="poi_waste_accepted">Geaccepteerd afval</string>
<string name="poi_us_maps_recreation_area_activity">Recreatiegebied activiteit</string>
<string name="poi_us_maps_recreation_area_open_status">Recreatiegebied open</string>
<string name="poi_socket_type2_cable_output_filter">Type 2 vermogen</string>
</resources>
2 changes: 2 additions & 0 deletions OsmAnd/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5747,4 +5747,6 @@
<string name="no_assigned_keys">Нет назначенных клавиш</string>
<string name="shared_string_key">Клавиша</string>
<string name="clear_key_assignment_summary">Назначение клавиши для выбранного действия будет удалено.</string>
<string name="shared_string_colors">Цвета</string>
<string name="user_palette">Пользовательская палитра</string>
</resources>
2 changes: 2 additions & 0 deletions OsmAnd/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
Thx - Hardy
-->

<string name="backup_error_failed_to_transfer_file">Failed to transfer cloud file(s).</string>
<string name="contact_support_retry">Try again or contact support</string>
<string name="rendering_value_dark_orange_name">Dark orange</string>
<string name="user_palette">User palette</string>
<string name="shared_string_colors">Colors</string>
Expand Down
5 changes: 4 additions & 1 deletion OsmAnd/src/net/osmand/plus/backup/BackupError.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,10 @@ private void parseError(@NonNull String error) {
message = errorObj.getString("message");
}
} catch (JSONException e) {
// ignore
if (error.contains(" ") && Algorithms.parseIntSilently(error.split(" ")[0], 0) > 0) {
code = Algorithms.parseIntSilently(error.split(" ")[0], 0);
message = error;
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion OsmAnd/src/net/osmand/plus/backup/PrepareBackupResult.java
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ void setLocalFiles(@NonNull List<LocalFile> localFiles) {
this.localFiles = localFileMap;
}

void setError(@Nullable String error) {
public void setError(@Nullable String error) {
this.error = error;
}
}
10 changes: 9 additions & 1 deletion OsmAnd/src/net/osmand/plus/backup/ui/status/BackupStatus.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,15 @@
import net.osmand.plus.backup.PrepareBackupResult;
import net.osmand.util.Algorithms;

import java.net.HttpURLConnection;

public enum BackupStatus {
BACKUP_COMPLETE(R.string.last_sync, R.drawable.ic_action_cloud_done_colored, -1, -1, -1, R.string.sync_now),
MAKE_BACKUP(R.string.last_sync, R.drawable.ic_action_cloud_alert_colored, -1, -1, -1, R.string.sync_now),
CONFLICTS(R.string.last_sync, R.drawable.ic_action_cloud_alert_colored, R.drawable.ic_action_alert, -1, -1, R.string.backup_view_conflicts),
NO_INTERNET_CONNECTION(R.string.last_sync, R.drawable.ic_action_cloud_done_colored, R.drawable.ic_action_wifi_off, R.string.no_inet_connection, R.string.backup_no_internet_descr, R.string.retry),
SUBSCRIPTION_EXPIRED(R.string.last_sync, R.drawable.ic_action_cloud_done_colored, R.drawable.ic_action_osmand_pro_logo_colored, R.string.backup_error_subscription_was_expired, R.string.backup_error_subscription_was_expired_descr, R.string.renew_subscription),
ERROR(R.string.last_sync, R.drawable.ic_action_cloud_alert_colored, R.drawable.ic_action_alert, -1, -1, R.string.contact_support);
ERROR(R.string.last_sync, R.drawable.ic_action_cloud_alert_colored, R.drawable.ic_action_alert, -1, -1, R.string.contact_support_retry);

@StringRes
public final int statusTitleRes;
Expand Down Expand Up @@ -56,6 +58,12 @@ public static BackupStatus getBackupStatus(@NonNull OsmandApplication app, @NonN
|| errorCode == SERVER_ERROR_CODE_NO_VALID_SUBSCRIPTION
|| errorCode == STATUS_NO_ORDER_ID_ERROR) {
return SUBSCRIPTION_EXPIRED;
} else if (errorCode == HttpURLConnection.HTTP_NOT_FOUND) {
backup.setError(HttpURLConnection.HTTP_BAD_REQUEST + " " +
app.getString(R.string.backup_error_failed_to_transfer_file));
return ERROR;
} else if (errorCode >= HttpURLConnection.HTTP_BAD_REQUEST) {
return ERROR;
}
}
if (info != null) {
Expand Down
5 changes: 3 additions & 2 deletions OsmAnd/src/net/osmand/plus/download/DownloadFileHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import net.osmand.plus.download.IndexItem.DownloadEntry;
import net.osmand.plus.helpers.FileNameTranslationHelper;
import net.osmand.plus.resources.ResourceManager;
import net.osmand.plus.utils.AndroidNetworkUtils;
import net.osmand.plus.utils.FileUtils;
import net.osmand.util.Algorithms;

Expand Down Expand Up @@ -76,12 +77,12 @@ private void reconnect() throws IOException {
}
HttpURLConnection conn = NetworkUtils.getHttpURLConnection(url);
conn.setRequestProperty("User-Agent", Version.getFullVersion(ctx)); //$NON-NLS-1$
conn.setReadTimeout(30000);
conn.setReadTimeout(AndroidNetworkUtils.READ_TIMEOUT);
if (fileread > 0) {
String range = "bytes="+fileread + "-" + (length -1); //$NON-NLS-1$ //$NON-NLS-2$
conn.setRequestProperty("Range", range); //$NON-NLS-1$
}
conn.setConnectTimeout(30000);
conn.setConnectTimeout(AndroidNetworkUtils.CONNECT_TIMEOUT);
log.info(conn.getResponseMessage() + " " + conn.getResponseCode()); //$NON-NLS-1$
boolean wifiConnectionBroken = forceWifi && !isWifiConnected();
if(conn.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import net.osmand.plus.myplaces.tracks.filters.BaseTrackFilter;
import net.osmand.plus.myplaces.tracks.filters.DateTrackFilter;
import net.osmand.plus.myplaces.tracks.filters.FilterChangedListener;
import net.osmand.plus.myplaces.tracks.filters.FolderTrackFilter;
import net.osmand.plus.myplaces.tracks.filters.ListTrackFilter;
import net.osmand.plus.myplaces.tracks.filters.OtherTrackFilter;
import net.osmand.plus.myplaces.tracks.filters.RangeTrackFilter;
Expand All @@ -29,7 +30,9 @@ public static BaseTrackFilter createOtherFilter(OsmandApplication app, TrackFilt
}

public static BaseTrackFilter createSingleListFilter(OsmandApplication app, TrackFilterType trackFilterType, FilterChangedListener listener) {
return new ListTrackFilter(app, trackFilterType, listener);
return trackFilterType == TrackFilterType.FOLDER
? new FolderTrackFilter(app, listener)
: new ListTrackFilter(app, trackFilterType, listener);
}

public static BaseTrackFilter createRangeFilter(OsmandApplication app, TrackFilterType trackFilterType, FilterChangedListener listener) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ protected Void doInBackground(Void... voids) {
));
if (trackFilterType == TrackFilterType.FOLDER) {
if (currentFolder != null) {
filter.setFirstItem(currentFolder.getDirName());
filter.setFirstItem(currentFolder.getRelativePath());
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package net.osmand.plus.myplaces.tracks.filters

import net.osmand.plus.OsmandApplication
import net.osmand.plus.configmap.tracks.TrackItem
import net.osmand.plus.myplaces.tracks.filters.TrackFilterType.FOLDER

open class FolderTrackFilter(
app: OsmandApplication,
filterChangedListener: FilterChangedListener?
) :
ListTrackFilter(app, FOLDER, filterChangedListener) {

override fun isTrackAccepted(trackItem: TrackItem): Boolean {
val trackItemPropertyValue = getTrackPropertyValue(trackItem)
for (item in selectedItems) {//***
if (trackItemPropertyValue.startsWith(item)) {
return true
}
}
return false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ open class ListTrackFilter(
return false
}

private fun getTrackPropertyValue(trackItem: TrackItem): String {
protected fun getTrackPropertyValue(trackItem: TrackItem): String {
var value = trackItem.dataItem?.getParameter<Any>(trackFilterType.property!!)
value?.let {
value = collectionFilterParams.trackParamToString(it)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import net.osmand.plus.onlinerouting.engine.OnlineRoutingEngine.OnlineRoutingResponse;
import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.plus.utils.AndroidNetworkUtils;
import net.osmand.router.RouteCalculationProgress;
import net.osmand.util.Algorithms;

Expand Down Expand Up @@ -41,7 +42,6 @@

public class OnlineRoutingHelper {

private static final int CONNECTION_TIMEOUT = 30000;
private static final Log LOG = PlatformUtil.getLog(OnlineRoutingHelper.class);

private final OsmandApplication app;
Expand Down Expand Up @@ -131,7 +131,8 @@ public String makeRequest(@NonNull String url, @NonNull String method,
HttpURLConnection connection = NetworkUtils.getHttpURLConnection(url);
connection.setRequestProperty("User-Agent", Version.getFullVersion(app));
connection.setRequestMethod(method);
connection.setConnectTimeout(CONNECTION_TIMEOUT);
connection.setConnectTimeout(AndroidNetworkUtils.CONNECT_TIMEOUT);
connection.setReadTimeout(AndroidNetworkUtils.READ_TIMEOUT);
// set custom headers
if (headers != null) {
for (String key : headers.keySet()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import net.osmand.plus.plugins.PluginsHelper;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.plus.utils.AndroidNetworkUtils;
import net.osmand.util.MapUtils;

import org.apache.commons.logging.Log;
Expand Down Expand Up @@ -203,8 +204,8 @@ public boolean sendData(@NonNull LiveMonitoringData data) {
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(),
url.getPath(), url.getQuery(), url.getRef());
urlConnection.setConnectTimeout(15000);
urlConnection.setReadTimeout(15000);
urlConnection.setConnectTimeout(AndroidNetworkUtils.CONNECT_TIMEOUT);
urlConnection.setReadTimeout(AndroidNetworkUtils.READ_TIMEOUT);
log.info("Monitor " + uri);
if (urlConnection.getResponseCode() / 100 != 2) {
String msg = urlConnection.getResponseCode() + " : " + //$NON-NLS-1$//$NON-NLS-2$
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import net.osmand.plus.plugins.osmedit.data.OsmPoint;
import net.osmand.plus.plugins.osmedit.data.OsmPoint.Action;
import net.osmand.plus.plugins.osmedit.oauth.OsmOAuthAuthorizationAdapter;
import net.osmand.plus.utils.AndroidNetworkUtils;
import net.osmand.util.MapUtils;

import org.apache.commons.logging.Log;
Expand Down Expand Up @@ -152,7 +153,8 @@ private String sendRequest(String url, String requestMethod, String requestBody,

private String performBasicAuthRequest(String url, String requestMethod, String requestBody, String userOperation) throws IOException {
HttpURLConnection connection = NetworkUtils.getHttpURLConnection(url);
connection.setConnectTimeout(15000);
connection.setConnectTimeout(AndroidNetworkUtils.CONNECT_TIMEOUT);
connection.setReadTimeout(AndroidNetworkUtils.READ_TIMEOUT);
connection.setRequestMethod(requestMethod);
connection.setRequestProperty("User-Agent", Version.getFullVersion(ctx)); //$NON-NLS-1$
StringBuilder responseBody = new StringBuilder();
Expand Down
Loading

0 comments on commit 3b4411b

Please sign in to comment.