Merge branch 'master' of github.com:svenofix/Osmand
|
@ -159,12 +159,16 @@ public class GPXUtilities {
|
|||
public float distance;
|
||||
public int time;
|
||||
public float elevation;
|
||||
public boolean firstPoint = false;
|
||||
public boolean lastPoint = false;
|
||||
}
|
||||
|
||||
public static class Speed {
|
||||
public float distance;
|
||||
public int time;
|
||||
public float speed;
|
||||
public boolean firstPoint = false;
|
||||
public boolean lastPoint = false;
|
||||
}
|
||||
|
||||
public static class WptPt extends GPXExtensions {
|
||||
|
@ -355,15 +359,19 @@ public class GPXUtilities {
|
|||
|
||||
public static class GPXTrackAnalysis {
|
||||
public float totalDistance = 0;
|
||||
public float totalDistanceWithoutGaps = 0;
|
||||
public int totalTracks = 0;
|
||||
public long startTime = Long.MAX_VALUE;
|
||||
public long endTime = Long.MIN_VALUE;
|
||||
public long timeSpan = 0;
|
||||
public long timeSpanWithoutGaps = 0;
|
||||
//Next few lines for Issue 3222 heuristic testing only
|
||||
//public long timeMoving0 = 0;
|
||||
//public float totalDistanceMoving0 = 0;
|
||||
public long timeMoving = 0;
|
||||
public long timeMovingWithoutGaps = 0;
|
||||
public float totalDistanceMoving = 0;
|
||||
public float totalDistanceMovingWithoutGaps = 0;
|
||||
|
||||
public double diffElevationUp = 0;
|
||||
public double diffElevationDown = 0;
|
||||
|
@ -432,6 +440,10 @@ public class GPXUtilities {
|
|||
long startTimeOfSingleSegment = 0;
|
||||
long endTimeOfSingleSegment = 0;
|
||||
|
||||
float distanceOfSingleSegment = 0;
|
||||
float distanceMovingOfSingleSegment = 0;
|
||||
long timeMovingOfSingleSegment = 0;
|
||||
|
||||
float totalElevation = 0;
|
||||
int elevationPoints = 0;
|
||||
int speedCount = 0;
|
||||
|
@ -479,7 +491,7 @@ public class GPXUtilities {
|
|||
endTimeOfSingleSegment = time;
|
||||
}
|
||||
if (startTimeOfSingleSegment != 0 && endTimeOfSingleSegment != 0) {
|
||||
timeSpan += endTimeOfSingleSegment - startTimeOfSingleSegment;
|
||||
timeSpanWithoutGaps += endTimeOfSingleSegment - startTimeOfSingleSegment;
|
||||
startTimeOfSingleSegment = 0;
|
||||
endTimeOfSingleSegment = 0;
|
||||
}
|
||||
|
@ -627,6 +639,10 @@ public class GPXUtilities {
|
|||
if ((speed > 0) && (calculations[0] > 0.1 / 1000f * (point.time - prev.time)) && point.time != 0 && prev.time != 0) {
|
||||
timeMoving = timeMoving + (point.time - prev.time);
|
||||
totalDistanceMoving += calculations[0];
|
||||
if (s.segment.generalSegment && !point.firstPoint) {
|
||||
timeMovingOfSingleSegment += point.time - prev.time;
|
||||
distanceMovingOfSingleSegment += calculations[0];
|
||||
}
|
||||
}
|
||||
|
||||
//Next few lines for Issue 3222 heuristic testing only
|
||||
|
@ -658,6 +674,27 @@ public class GPXUtilities {
|
|||
if (!hasSpeedData && speed1.speed > 0 && totalDistance > 0) {
|
||||
hasSpeedData = true;
|
||||
}
|
||||
if (s.segment.generalSegment) {
|
||||
distanceOfSingleSegment += calculations[0];
|
||||
if (point.firstPoint) {
|
||||
distanceOfSingleSegment = 0;
|
||||
timeMovingOfSingleSegment = 0;
|
||||
distanceMovingOfSingleSegment = 0;
|
||||
if (j > 0) {
|
||||
elevation1.firstPoint = true;
|
||||
speed1.firstPoint = true;
|
||||
}
|
||||
}
|
||||
if (point.lastPoint) {
|
||||
totalDistanceWithoutGaps += distanceOfSingleSegment;
|
||||
timeMovingWithoutGaps += timeMovingOfSingleSegment;
|
||||
totalDistanceMovingWithoutGaps += distanceMovingOfSingleSegment;
|
||||
if (j < numberOfPoints - 1) {
|
||||
elevation1.lastPoint = true;
|
||||
speed1.lastPoint = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (totalDistance < 0) {
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
<asset source="voice/sc/sc_tts.js" destination="voice/sc-tts/sc_tts.js" mode="overwriteOnlyIfExists" />
|
||||
<asset source="voice/sk/sk_tts.js" destination="voice/sk-tts/sk_tts.js" mode="overwriteOnlyIfExists" />
|
||||
<asset source="voice/sl/sl_tts.js" destination="voice/sl-tts/sl_tts.js" mode="overwriteOnlyIfExists" />
|
||||
<asset source="voice/sr/sr_tts.js" destination="voice/sr-tts/sr_tts.js" mode="overwriteOnlyIfExists" />
|
||||
<asset source="voice/sv/sv_tts.js" destination="voice/sv-tts/sv_tts.js" mode="overwriteOnlyIfExists" />
|
||||
<asset source="voice/sw/sw_tts.js" destination="voice/sw-tts/sw_tts.js" mode="overwriteOnlyIfExists" />
|
||||
<asset source="voice/tr/tr_tts.js" destination="voice/tr-tts/tr_tts.js" mode="overwriteOnlyIfExists" />
|
||||
|
|
BIN
OsmAnd/res/drawable-hdpi/ic_action_camper.png
Normal file
After Width: | Height: | Size: 363 B |
BIN
OsmAnd/res/drawable-hdpi/ic_action_campervan.png
Normal file
After Width: | Height: | Size: 439 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_camper.png
Normal file
After Width: | Height: | Size: 363 B |
BIN
OsmAnd/res/drawable-hdpi/map_action_campervan.png
Normal file
After Width: | Height: | Size: 439 B |
BIN
OsmAnd/res/drawable-large-hdpi/map_action_camper.png
Normal file
After Width: | Height: | Size: 372 B |
BIN
OsmAnd/res/drawable-large-hdpi/map_action_campervan.png
Normal file
After Width: | Height: | Size: 456 B |
BIN
OsmAnd/res/drawable-large-xhdpi/map_action_camper.png
Normal file
After Width: | Height: | Size: 503 B |
BIN
OsmAnd/res/drawable-large-xhdpi/map_action_campervan.png
Normal file
After Width: | Height: | Size: 644 B |
BIN
OsmAnd/res/drawable-large/map_action_camper.png
Normal file
After Width: | Height: | Size: 363 B |
BIN
OsmAnd/res/drawable-large/map_action_campervan.png
Normal file
After Width: | Height: | Size: 439 B |
BIN
OsmAnd/res/drawable-mdpi/ic_action_camper.png
Normal file
After Width: | Height: | Size: 247 B |
BIN
OsmAnd/res/drawable-mdpi/ic_action_campervan.png
Normal file
After Width: | Height: | Size: 275 B |
BIN
OsmAnd/res/drawable-mdpi/map_action_camper.png
Normal file
After Width: | Height: | Size: 247 B |
BIN
OsmAnd/res/drawable-mdpi/map_action_campervan.png
Normal file
After Width: | Height: | Size: 275 B |
BIN
OsmAnd/res/drawable-xhdpi/ic_action_camper.png
Normal file
After Width: | Height: | Size: 372 B |
BIN
OsmAnd/res/drawable-xhdpi/ic_action_campervan.png
Normal file
After Width: | Height: | Size: 456 B |
BIN
OsmAnd/res/drawable-xhdpi/map_action_camper.png
Normal file
After Width: | Height: | Size: 372 B |
BIN
OsmAnd/res/drawable-xhdpi/map_action_campervan.png
Normal file
After Width: | Height: | Size: 456 B |
BIN
OsmAnd/res/drawable-xxhdpi/ic_action_camper.png
Normal file
After Width: | Height: | Size: 503 B |
BIN
OsmAnd/res/drawable-xxhdpi/ic_action_campervan.png
Normal file
After Width: | Height: | Size: 644 B |
BIN
OsmAnd/res/drawable-xxhdpi/map_action_camper.png
Normal file
After Width: | Height: | Size: 503 B |
BIN
OsmAnd/res/drawable-xxhdpi/map_action_campervan.png
Normal file
After Width: | Height: | Size: 644 B |
BIN
OsmAnd/res/drawable-xxxhdpi/ic_action_camper.png
Normal file
After Width: | Height: | Size: 647 B |
BIN
OsmAnd/res/drawable-xxxhdpi/ic_action_campervan.png
Normal file
After Width: | Height: | Size: 846 B |
BIN
OsmAnd/res/drawable-xxxhdpi/map_action_camper.png
Normal file
After Width: | Height: | Size: 647 B |
BIN
OsmAnd/res/drawable-xxxhdpi/map_action_campervan.png
Normal file
After Width: | Height: | Size: 846 B |
|
@ -18,6 +18,35 @@
|
|||
android:layout_height="150dp"
|
||||
android:layout_gravity="center_vertical"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/gpx_join_gaps_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/card_row_min_height"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<net.osmand.plus.widgets.TextViewEx
|
||||
android:id="@+id/gpx_join_gaps_text"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="@dimen/content_padding"
|
||||
android:paddingRight="@dimen/content_padding"
|
||||
android:text="@string/gpx_join_gaps"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
osmand:typeface="@string/font_roboto_regular" />
|
||||
|
||||
<android.support.v7.widget.SwitchCompat
|
||||
android:id="@+id/gpx_join_gaps_switch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="@dimen/content_padding"
|
||||
android:paddingRight="@dimen/content_padding" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/average_range"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -18,6 +18,35 @@
|
|||
android:layout_height="150dp"
|
||||
android:layout_gravity="center_vertical"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/gpx_join_gaps_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/card_row_min_height"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<net.osmand.plus.widgets.TextViewEx
|
||||
android:id="@+id/gpx_join_gaps_text"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="@dimen/content_padding"
|
||||
android:paddingRight="@dimen/content_padding"
|
||||
android:text="@string/gpx_join_gaps"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
osmand:typeface="@string/font_roboto_regular" />
|
||||
|
||||
<android.support.v7.widget.SwitchCompat
|
||||
android:id="@+id/gpx_join_gaps_switch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="@dimen/content_padding"
|
||||
android:paddingRight="@dimen/content_padding" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/distance_time_span"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -18,6 +18,35 @@
|
|||
android:layout_height="150dp"
|
||||
android:layout_gravity="center_vertical"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/gpx_join_gaps_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/card_row_min_height"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<net.osmand.plus.widgets.TextViewEx
|
||||
android:id="@+id/gpx_join_gaps_text"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="@dimen/content_padding"
|
||||
android:paddingRight="@dimen/content_padding"
|
||||
android:text="@string/gpx_join_gaps"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
osmand:typeface="@string/font_roboto_regular" />
|
||||
|
||||
<android.support.v7.widget.SwitchCompat
|
||||
android:id="@+id/gpx_join_gaps_switch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="@dimen/content_padding"
|
||||
android:paddingRight="@dimen/content_padding" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/average_max"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -1662,7 +1662,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).</stri
|
|||
<string name="next_proceed">Næste</string>
|
||||
<string name="opening_at">Åbner kl.</string>
|
||||
<string name="closing_at">Lukker</string>
|
||||
<string name="av_locations_descr">GPX-fil med placeringsnoter.</string>
|
||||
<string name="av_locations_descr">GPX-fil med placeringer.</string>
|
||||
<string name="av_locations">Placeringer</string>
|
||||
<string name="tab_title_basic">Grundlæggende</string>
|
||||
<string name="contact_info">Kontaktoplysninger</string>
|
||||
|
@ -3059,9 +3059,9 @@ Repræsenterer område: %1$s x %2$s</string>
|
|||
<string name="downloaded_maps">Hentede kort</string>
|
||||
<string name="visited_screens">Besøgte skærme</string>
|
||||
<string name="colleted_data">Indsamlede data</string>
|
||||
<string name="collected_data_descr">Liste over data der deles med OsmAnd.</string>
|
||||
<string name="downloaded_maps_collect_descr">Data indsamles for at forstå, hvilke kort over regioner og lande der er mest populære.</string>
|
||||
<string name="visited_screens_collect_descr">Data indsamles for at forstå hvilke funktioner i OsmAnd der er mest populære.</string>
|
||||
<string name="collected_data_descr">Definer hvilke data der deles med OsmAnd.</string>
|
||||
<string name="downloaded_maps_collect_descr">Hjælper med at forstå, hvilke kort over hvilke regioner og lande der er mest populære.</string>
|
||||
<string name="visited_screens_collect_descr">Hjælper med at forstå hvilke funktioner i OsmAnd der er mest populære.</string>
|
||||
<string name="privacy_and_security_change_descr">Ved at trykke på \"Tillad\" accepteres vores %1$s</string>
|
||||
<string name="settings_privacy_and_security">Privatliv og sikkerhed</string>
|
||||
<string name="settings_privacy_and_security_desc">Vælg hvilke data der deles med os</string>
|
||||
|
@ -3124,7 +3124,7 @@ Repræsenterer område: %1$s x %2$s</string>
|
|||
<string name="routing_attr_piste_type_skitour_name">Langrend ski</string>
|
||||
<string name="routing_attr_piste_type_skitour_description">Spor til langrend ski</string>
|
||||
<string name="routing_attr_piste_type_sled_name">Slæde</string>
|
||||
<string name="routing_attr_piste_type_sled_description">Pister til kælling.</string>
|
||||
<string name="routing_attr_piste_type_sled_description">Pister til kælkning.</string>
|
||||
<string name="routing_attr_allow_intermediate_name">Tillad mellemliggende ruter</string>
|
||||
<string name="routing_attr_allow_intermediate_description">Mere vanskelige ruter med stejlere sektioner. Generelt bør nogle hindringer undgås.</string>
|
||||
<string name="routing_attr_allow_advanced_name">Tillad avancerede ruter</string>
|
||||
|
@ -3132,9 +3132,9 @@ Repræsenterer område: %1$s x %2$s</string>
|
|||
<string name="routing_attr_allow_expert_name">Tillad ekspert ruter</string>
|
||||
<string name="routing_attr_allow_expert_description">Ekstremt vanskelige ruter, med farlige forhindringer og omgivelser.</string>
|
||||
<string name="routing_attr_allow_skating_only_name">Tillad kun skøjteløb ruter</string>
|
||||
<string name="routing_attr_allow_skating_only_description">Ruter forberedt til freestyle eller bare skøjteløb uden klassiske stier.</string>
|
||||
<string name="routing_attr_allow_skating_only_description">Ruter forberedt til freestyle eller kun skøjteløb uden klassiske spor</string>
|
||||
<string name="routing_attr_allow_classic_only_name">Tillad kun klassiske ruter</string>
|
||||
<string name="routing_attr_allow_classic_only_description">Ruter forberedt til den klassiske stil uden skøjtebaner. Omfatter ruter udarbejdet af en mindre snescooter med løsere pister og stier lavet manuelt af skiløbere.</string>
|
||||
<string name="routing_attr_allow_classic_only_description">Ruter forberedt til den klassiske stil uden skøjtebaner. Omfatter ruter udarbejdet af en mindre snescooter med løsere pister og spor lavet manuelt af skiløbere.</string>
|
||||
<string name="routing_attr_difficulty_preference_name">Foretrukket sværhedsgrad</string>
|
||||
<string name="routing_attr_difficulty_preference_description">Foretræk ruter med denne vanskelighed, selv om ruteplanlægning over sværere eller lettere pister stadig er muligt, hvis de er kortere.</string>
|
||||
<string name="routing_attr_freeride_policy_name">Off-piste</string>
|
||||
|
|
|
@ -3186,7 +3186,7 @@ Abgedeckte Fläche: %1$s x %2$s</string>
|
|||
<string name="routing_attr_max_num_changes_description">Bestimmen Sie die maximale Anzahl an Änderungen</string>
|
||||
<string name="routing_attr_max_num_changes_name">Anzahl der Änderungen</string>
|
||||
<string name="app_mode_offroad">Offroad</string>
|
||||
<string name="external_input_device">externes Eingabegerät</string>
|
||||
<string name="external_input_device">Externe Eingabegeräte</string>
|
||||
<string name="turn_screen_on_router">Bei Richtungsänderung aufwecken</string>
|
||||
<string name="turn_screen_on_time_descr">Zeitdauer festlegen, für die der Bildschirm eingeschaltet wird.</string>
|
||||
<string name="turn_screen_on_sensor">Annäherungssensor verwenden</string>
|
||||
|
|
|
@ -1962,7 +1962,7 @@ Proporcia memoro %4$s MB (limito de Android %5$s MB, Dalvik %6$s MB).</string>
|
|||
<string name="coords_format_descr">Formo de geografiaj koordinatoj.</string>
|
||||
<string name="storage_directory_card">Memorkarto</string>
|
||||
<string name="shared_string_is_open">Malfermitaj nun</string>
|
||||
<string name="shared_string_is_open_24_7">Malfermita 24/7</string>
|
||||
<string name="shared_string_is_open_24_7">Malfermitaj 24/7</string>
|
||||
<string name="map_widget_search">Serĉi</string>
|
||||
<string name="shared_string_from">el</string>
|
||||
<string name="city_type_district">Kvartalo</string>
|
||||
|
|
|
@ -2398,4 +2398,56 @@
|
|||
<string name="poi_climbing_orientation_sw">Orientamento del muro:SO</string>
|
||||
<string name="poi_climbing_orientation_nw">Orientamento del muro: NO</string>
|
||||
<string name="poi_climbing_crag">Si</string>
|
||||
<string name="poi_distance_mark">Segno di distanza</string>
|
||||
<string name="poi_piste_skitour">Pista Skitour</string>
|
||||
<string name="poi_denomination_united_reformed">Riformato unito</string>
|
||||
<string name="poi_denomination_iglesia_ni_cristo">Iglesia ni cristo</string>
|
||||
<string name="poi_denomination_unitarian">Unitaria</string>
|
||||
<string name="poi_government_archive">Archivio</string>
|
||||
<string name="poi_government_ministry">Ministero</string>
|
||||
<string name="poi_cannabis">Negozio di cannabis</string>
|
||||
<string name="poi_socket_type3_yes">Tipo 3</string>
|
||||
<string name="poi_socket_tesla_standard_yes">Tesla standard</string>
|
||||
<string name="poi_socket_tesla_supercharger_yes">Tesla Supercharger</string>
|
||||
<string name="poi_socket_tesla_roadster_yes">Tesla Roadster</string>
|
||||
<string name="poi_socket_type2_combo_output_low">Basso</string>
|
||||
<string name="poi_socket_type3_output_high">Alto</string>
|
||||
<string name="poi_socket_type3_output_medium">Medio</string>
|
||||
<string name="poi_socket_type3_output_low">Basso</string>
|
||||
<string name="poi_socket_cee_blue_output_high">Alto</string>
|
||||
<string name="poi_socket_cee_blue_output_medium">Medio</string>
|
||||
<string name="poi_socket_cee_blue_output_low">Basso</string>
|
||||
<string name="poi_socket_schuko_output_high">Alto</string>
|
||||
<string name="poi_socket_schuko_output_medium">Medio</string>
|
||||
<string name="poi_socket_schuko_output_low">Basso</string>
|
||||
<string name="poi_adult_gaming_centre">Centro giochi per adulti</string>
|
||||
<string name="poi_service_vehicle_car_repair_yes">Riparazione auto</string>
|
||||
<string name="poi_aerialway_zip_line">Linea volo</string>
|
||||
<string name="poi_substation_converter">Convertitore</string>
|
||||
<string name="poi_substation_compression">Compressione</string>
|
||||
<string name="poi_substation_measurement">Misurazioni</string>
|
||||
<string name="poi_substation_valve">Valvola</string>
|
||||
<string name="poi_laboratory">Laboratorio medico</string>
|
||||
<string name="poi_books_children">Bambini</string>
|
||||
<string name="poi_atoll">Atollo</string>
|
||||
<string name="poi_denotation_natural_monument">Monumento naturale</string>
|
||||
<string name="poi_park_ride_train">Treno</string>
|
||||
<string name="poi_park_ride_metro">Metropolitana</string>
|
||||
<string name="poi_park_ride_ferry">Traghetto</string>
|
||||
<string name="poi_rtsa_scale_nc">н/к</string>
|
||||
<string name="poi_rtsa_scale_nc_asterisk">н/к*</string>
|
||||
<string name="poi_rtsa_scale_1a">1А</string>
|
||||
<string name="poi_rtsa_scale_1a_asterisk">1А*</string>
|
||||
<string name="poi_rtsa_scale_1b">1Б</string>
|
||||
<string name="poi_rtsa_scale_1b_asterisk">1Б*</string>
|
||||
<string name="poi_rtsa_scale_2a">2А</string>
|
||||
<string name="poi_rtsa_scale_2a_asterisk">2А*</string>
|
||||
<string name="poi_rtsa_scale_2b">2Б</string>
|
||||
<string name="poi_rtsa_scale_2b_asterisk">2Б*</string>
|
||||
<string name="poi_rtsa_scale_3a">3А</string>
|
||||
<string name="poi_rtsa_scale_3a_asterisk">3А*</string>
|
||||
<string name="poi_rtsa_scale_3b">3Б</string>
|
||||
<string name="poi_rtsa_scale_3b_asterisk">3Б*</string>
|
||||
<string name="poi_change_delete">Oggetto cancellato</string>
|
||||
<string name="poi_defibrillator_location">Posizione</string>
|
||||
</resources>
|
|
@ -3047,4 +3047,6 @@ POIの更新は利用できません</string>
|
|||
<string name="rendering_attr_highway_class_path_name">道(自動車以外のもの向け)</string>
|
||||
<string name="rendering_attr_highway_class_cycleway_name">自転車道</string>
|
||||
<string name="add_home">自宅の追加</string>
|
||||
<string name="shared_string_privacy_policy">プライバシーポリシー</string>
|
||||
<string name="settings_privacy_and_security">プライバシーとセキュリティ</string>
|
||||
</resources>
|
|
@ -627,4 +627,200 @@
|
|||
<string name="poi_fuel_charcoal">Combustible: organic carbonitzat</string>
|
||||
<string name="poi_fuel_coal">Combustible: carbon</string>
|
||||
<string name="poi_escape_lane">Andana de frenada d’urgéncia</string>
|
||||
<string name="poi_recycling_waste">Reciclatge (saquets negres)</string>
|
||||
<string name="poi_recycling_small_appliances">Electrodomestic pichon</string>
|
||||
<string name="poi_recycling_white_goods">Electrodomestic gròs</string>
|
||||
<string name="poi_recycling_waste_oil">Reciclatge de l’òli</string>
|
||||
<string name="poi_recycling_sheet_metal">Tòla</string>
|
||||
<string name="poi_recycling_light_bulbs">Ampola</string>
|
||||
<string name="poi_recycling_animal_waste">Cagadas</string>
|
||||
<string name="poi_landfill">Bedola</string>
|
||||
<string name="poi_waste_basket">Banasta per lo papier</string>
|
||||
<string name="poi_forest">Bòsc amb manteniment uman</string>
|
||||
<string name="poi_farmyard">Bastissas agricòlas</string>
|
||||
<string name="poi_pier">Getada</string>
|
||||
<string name="poi_surveillance">Susvelhança</string>
|
||||
<string name="poi_observatory">Observatòri</string>
|
||||
<string name="poi_mast">Biga, pilòn</string>
|
||||
<string name="poi_monitoring_station">Centre de contròla</string>
|
||||
<string name="poi_brownfield">Campàs</string>
|
||||
<string name="poi_cricket_nets">Gàbias de cricket</string>
|
||||
<string name="poi_storage_tank">Tina de resèrva</string>
|
||||
<string name="poi_kindergarten">Ninoèra, Escòla mairala</string>
|
||||
<string name="poi_register_office">Oficina de l’Estat civiu</string>
|
||||
<string name="poi_government">Ofici public</string>
|
||||
<string name="poi_prosecutor">Procuraire</string>
|
||||
<string name="poi_tax_inspection">Centre de l’Impòst</string>
|
||||
<string name="poi_isolated_dwelling">Escart</string>
|
||||
<string name="poi_nursing_home">Residéncia d\'avis</string>
|
||||
<string name="poi_speech_therapist">Ortofonista</string>
|
||||
<string name="poi_educational_institution">Centre educatiu</string>
|
||||
<string name="poi_bookmaker">Escomessas (Bookmaker)</string>
|
||||
<string name="poi_tax_advisor">Conselhier fiscau</string>
|
||||
<string name="poi_ice_stock">Icestock ( palets sus glaç)</string>
|
||||
<string name="poi_korfbal">Corfbòl (basquet olandés)</string>
|
||||
<string name="poi_sport_motor">Espòrt automobile</string>
|
||||
<string name="poi_sport_multi">Multi Espòrt</string>
|
||||
<string name="poi_orienteering">Corsa d’orientacion</string>
|
||||
<string name="poi_paddle_tennis">Padèla</string>
|
||||
<string name="poi_paragliding">Parapenda</string>
|
||||
<string name="poi_pelota">Pelòta</string>
|
||||
<string name="poi_racquet">Raqueta</string>
|
||||
<string name="poi_roller_skating">Rodelatge</string>
|
||||
<string name="poi_rowing">Rem</string>
|
||||
<string name="poi_rugby_union">Rugbi a 15</string>
|
||||
<string name="poi_rugby_league">Rugbi a 13</string>
|
||||
<string name="poi_sailing">Vela</string>
|
||||
<string name="poi_shooting">Tir</string>
|
||||
<string name="poi_skating">Patinatge</string>
|
||||
<string name="poi_skateboard">MonopatIn (Skètabòrd)</string>
|
||||
<string name="poi_skiing">Esquí</string>
|
||||
<string name="poi_soccer">Fotbòl</string>
|
||||
<string name="poi_surfing">Surf</string>
|
||||
<string name="poi_swimming">Natacion</string>
|
||||
<string name="poi_table_tennis">Tenís de taula</string>
|
||||
<string name="poi_tennis">Tenís</string>
|
||||
<string name="poi_toboggan">Tobogan</string>
|
||||
<string name="poi_volleyball">Voleibòl</string>
|
||||
<string name="poi_museum">Musèu</string>
|
||||
<string name="poi_memorial">Memoriau</string>
|
||||
<string name="poi_artwork">Òbra d\'art</string>
|
||||
<string name="poi_archaeological_site">Site arqueologic</string>
|
||||
<string name="poi_battlefield">Prat batalhier</string>
|
||||
<string name="poi_boundary_stone">Tèrme</string>
|
||||
<string name="poi_historic_cannon">Canon istoric</string>
|
||||
<string name="poi_castle">Castèu, castellar</string>
|
||||
<string name="poi_city_gate">Portau</string>
|
||||
<string name="poi_fort">Fortalesa</string>
|
||||
<string name="poi_fountain">Fònt</string>
|
||||
<string name="poi_historic_ruins">Roïnas istoricas</string>
|
||||
<string name="poi_rune_stone">Pèira runica</string>
|
||||
<string name="poi_wreck">Avariá</string>
|
||||
<string name="poi_historic_ship">Nau istorica</string>
|
||||
<string name="poi_historic_mine">Mina istorica</string>
|
||||
<string name="poi_monument">Monument</string>
|
||||
<string name="poi_zoo">Pargue zoologic</string>
|
||||
<string name="poi_aquarium">Aquari</string>
|
||||
<string name="poi_theme_park">Pargue tematic</string>
|
||||
<string name="poi_attraction">Atracion toristica</string>
|
||||
<string name="poi_tourism_yes">Element toristic</string>
|
||||
<string name="poi_attraction_animal">Animaus captius (atracion)</string>
|
||||
<string name="poi_attraction_big_wheel">Ròda de fiera</string>
|
||||
<string name="poi_attraction_carousel">Vira-vira</string>
|
||||
<string name="poi_attraction_maze">Laberint</string>
|
||||
<string name="poi_attraction_roller_coaster">Montanhas russas</string>
|
||||
<string name="poi_attraction_slide">Tobogan</string>
|
||||
<string name="poi_attraction_summer_toboggan">Tobogan de tirassèu</string>
|
||||
<string name="poi_attraction_swing_carousel">Vira-vira pendolat</string>
|
||||
<string name="poi_attraction_train">Trenet de fiera</string>
|
||||
<string name="poi_attraction_water_slide">Tobogan aquaric</string>
|
||||
<string name="poi_lodging">Alotjament</string>
|
||||
<string name="poi_hotel">Ostalariá</string>
|
||||
<string name="poi_guest_house">Pension</string>
|
||||
<string name="poi_hostel">Aubèrga</string>
|
||||
<string name="poi_motel">Motel</string>
|
||||
<string name="poi_alpine_hut">Refugi</string>
|
||||
<string name="poi_chalet">Abèrg</string>
|
||||
<string name="poi_apartment">Apartament</string>
|
||||
<string name="poi_wilderness_hut">Tubanèu</string>
|
||||
<string name="poi_cabin">Cabana</string>
|
||||
<string name="poi_lean_to">Abric</string>
|
||||
<string name="poi_hunting_lodge">Agachon</string>
|
||||
<string name="poi_place_of_worship">Luòc de culte</string>
|
||||
<string name="poi_religion_christian">Crestianisme</string>
|
||||
<string name="poi_religion_jewish">Judaísme</string>
|
||||
<string name="poi_religion_muslim">Islamisme</string>
|
||||
<string name="poi_religion_sikh">Sikhisme</string>
|
||||
<string name="poi_religion_buddhist">Bodisme</string>
|
||||
<string name="poi_religion_hindu">Indoísme</string>
|
||||
<string name="poi_religion_shinto">Chintoísme</string>
|
||||
<string name="poi_religion_taoist">Taoísme</string>
|
||||
<string name="poi_religion_voodoo">Religion Vodó</string>
|
||||
<string name="poi_religion_unitarian_universalist">Universalisme unitarista</string>
|
||||
<string name="poi_religion_multifaith">Multiconfessionau</string>
|
||||
<string name="poi_religion_jain">Jaïnisme</string>
|
||||
<string name="poi_religion_spiritualist">Espiritualisme</string>
|
||||
<string name="poi_religion_bahai">Bahaísme</string>
|
||||
<string name="poi_religion_scientologist">Scientologia</string>
|
||||
<string name="poi_religion_pagan">Paganisme</string>
|
||||
<string name="poi_religion_tenrikyo">Tenrikyo</string>
|
||||
<string name="poi_religion_zoroastrian">Zoroastrisme</string>
|
||||
<string name="poi_denomination_catholic">Religion catolica</string>
|
||||
<string name="poi_denomination_baptist">Glèisa Baptista</string>
|
||||
<string name="poi_denomination_roman_catholic">Catolica romana</string>
|
||||
<string name="poi_denomination_orthodox">Ortodòxa</string>
|
||||
<string name="poi_denomination_lutheran">Luteriana</string>
|
||||
<string name="poi_denomination_sunni">Sunnita</string>
|
||||
<string name="poi_denomination_protestant">Protestanta</string>
|
||||
<string name="poi_denomination_methodist">Metodista</string>
|
||||
<string name="poi_denomination_anglican">Anglicana</string>
|
||||
<string name="poi_denomination_presbyterian">Presbiteriana</string>
|
||||
<string name="poi_denomination_evangelical">Evangelica</string>
|
||||
<string name="poi_denomination_russian_orthodox">Ortodòxa Russa</string>
|
||||
<string name="poi_denomination_pentecostal">Pendecostala</string>
|
||||
<string name="poi_denomination_mormon">Mormona</string>
|
||||
<string name="poi_denomination_jehovahs_witness">Testimonis de Jeòva</string>
|
||||
<string name="poi_denomination_greek_orthodox">Ortodòxa grega</string>
|
||||
<string name="poi_denomination_reformed">Reformada</string>
|
||||
<string name="poi_denomination_seventh_day_adventist">Adventisme dau jorn setenc</string>
|
||||
<string name="poi_denomination_new_apostolic">Nòva apostolica</string>
|
||||
<string name="poi_denomination_church_of_england">Glèisa d’Anglatèrra</string>
|
||||
<string name="poi_denomination_episcopal">Episcopala</string>
|
||||
<string name="poi_denomination_shia">Chiísme</string>
|
||||
<string name="poi_denomination_united">Glèisa unida</string>
|
||||
<string name="poi_denomination_greek_catholic">Catolic grèc</string>
|
||||
<string name="poi_denomination_tibetan">Tibetana</string>
|
||||
<string name="poi_denomination_united_reformed">Glèisa unida reformada</string>
|
||||
<string name="poi_denomination_church_of_scotland">Glèisa d’Escòcia</string>
|
||||
<string name="poi_denomination_salvation_army">Exercici de sauvament</string>
|
||||
<string name="poi_denomination_iglesia_ni_cristo">Glèisa dau Crist</string>
|
||||
<string name="poi_denomination_uniting">Glèisa unificada</string>
|
||||
<string name="poi_denomination_mennonite">Mennonisme</string>
|
||||
<string name="poi_denomination_quaker">Quaker</string>
|
||||
<string name="poi_denomination_bulgarian_orthodox">Ortodòxa bulgara</string>
|
||||
<string name="poi_denomination_assemblies_of_god">Assemblada de Dieu</string>
|
||||
<string name="poi_denomination_nondenominational">Sensa denominacion</string>
|
||||
<string name="poi_denomination_adventist">Adventista</string>
|
||||
<string name="poi_denomination_nazarene">Nazarens</string>
|
||||
<string name="poi_denomination_united_methodist">Metodista Unida</string>
|
||||
<string name="poi_denomination_congregational">Congregacionau</string>
|
||||
<string name="poi_denomination_old_believers">Cresenças ancianas</string>
|
||||
<string name="poi_denomination_serbian_orthodox">Ortodòxa sèrbia</string>
|
||||
<string name="poi_denomination_spiritist">Espiritista</string>
|
||||
<string name="poi_denomination_armenian_apostolic">Apostolica d\'Armènia</string>
|
||||
<string name="poi_denomination_dutch_reformed">Olandesa reformada</string>
|
||||
<string name="poi_denomination_apostolic">Apostolica</string>
|
||||
<string name="poi_denomination_reform">Reformada</string>
|
||||
<string name="poi_denomination_latter_day_saints">Movement dels Sants dels Jorns Darriers</string>
|
||||
<string name="poi_denomination_church_of_christ">Glèisa dau Crist</string>
|
||||
<string name="poi_denomination_united_church_of_christ">Glèisa unida dau Crist</string>
|
||||
<string name="poi_denomination_georgian_orthodox">Ortodòxa georgiana</string>
|
||||
<string name="poi_denomination_scientist">Materialista</string>
|
||||
<string name="poi_denomination_romanian_orthodox">Ortodòxa Romanesa</string>
|
||||
<string name="poi_denomination_ethiopian_orthodox_tewahedo">Glèisa ortodòxa etopiana</string>
|
||||
<string name="poi_denomination_unitarian">Unitarista</string>
|
||||
<string name="poi_denomination_coptic_orthodox">Còpte ortodòx</string>
|
||||
<string name="poi_denomination_wesleyan">Wesleian</string>
|
||||
<string name="poi_denomination_shaktism">Chactisme</string>
|
||||
<string name="poi_denomination_shingon_shu">Chingon (bodisme)</string>
|
||||
<string name="poi_denomination_maronite">Maronita</string>
|
||||
<string name="poi_denomination_mahayana">Bodisme mahaiana</string>
|
||||
<string name="poi_internet_access_wlan">Accès a Internet: wifi</string>
|
||||
<string name="poi_internet_access_terminal">Accès a Internet: terminal</string>
|
||||
<string name="poi_internet_access_wired">Accès a Internet: cau</string>
|
||||
<string name="poi_internet_access_public">Accès a Internet: public</string>
|
||||
<string name="poi_internet_access_service">Accès a Internet: servici</string>
|
||||
<string name="poi_internet_access_yes">Accès a Internet: òc</string>
|
||||
<string name="poi_internet_access_no">Accès a Internet: non</string>
|
||||
<string name="poi_internet_access_fee_yes">Accès a Internet - de pagament</string>
|
||||
<string name="poi_internet_access_fee_no">Accès a Internet - a gràtis</string>
|
||||
<string name="poi_monastery">Monestier</string>
|
||||
<string name="poi_religious">Luòc de culte</string>
|
||||
<string name="poi_wayside_cross">Crotz de camin istorica</string>
|
||||
<string name="poi_wayside_shrine">Oratòri</string>
|
||||
<string name="poi_information">Informacion</string>
|
||||
<string name="poi_clock">Relòtge</string>
|
||||
<string name="poi_travel_agent">Agéncia de viatge</string>
|
||||
<string name="poi_historic_aircraft">Avion istoric</string>
|
||||
<string name="poi_historic_tank">Carri d’assaut istoric</string>
|
||||
</resources>
|
|
@ -2721,7 +2721,8 @@ Pôr do Sol: %2$s</string>
|
|||
<string name="shared_string_gpx_files">Arquivos GPX</string>
|
||||
<string name="access_intermediate_arrival_time">Hora de chegada intermediária</string>
|
||||
<string name="map_widget_intermediate_time">Hora intermediária</string>
|
||||
<string name="get_osmand_live">Adquira OsmAnd Live para desbloquear todos os recursos:atualização diária de mapa com downloads ilimitados, todos os plugins grátis e pagos, Wikipédia, Wikivoyage e muito mais.</string>
|
||||
<string name="get_osmand_live">Adquira OsmAnd Live para desbloquear todos estes recursos:
|
||||
\nAtualização diária de mapa com downloads ilimitados, todos os plugins grátis e pagos, Wikipédia, Wikivoyage e muito mais.</string>
|
||||
<string name="unirs_render_descr">Modificação do estilo padrão para aumentar o contraste de vias de pedestre e bicicleta. Usa as cores Mapnik antigo.</string>
|
||||
<string name="off_road_render_descr">Adequado para uso durante a condução off-road e com imagens de satélite verde usadas como mapa de fundo. Pontos-chave: espessura de vias principais reduzida, maior espessura de caminhos, trilhas, ciclovias e outras rotas. Baseado no estilo \'Topo\'.</string>
|
||||
<string name="nautical_render_descr">Estilo de navegação náutica. Principais características: boias, faróis, rios, rotas e marcas marítimas, portos, serviços de balizamento, batimetria.</string>
|
||||
|
|
|
@ -3097,7 +3097,7 @@
|
|||
<string name="shared_string_icon">Значок</string>
|
||||
<string name="collected_data">Собранные данные</string>
|
||||
<string name="press_again_to_change_the_map_orientation">Нажмите еще раз, чтобы изменить ориентацию карты</string>
|
||||
<string name="last_launch_crashed">Последний запуск OsmAnd завершился с ошибкой. Помогите нам улучшить OsmAnd. Пожалуйста, отправьте нам сообщение об ошибке.</string>
|
||||
<string name="last_launch_crashed">"Последний запуск OsmAnd завершился с ошибкой. Помогите нам улучшить OsmAnd. Пожалуйста, поделитесь с нами сообщением об ошибке."</string>
|
||||
<string name="settings_routing_mode_string">Режим: %s</string>
|
||||
<string name="settings_derived_routing_mode_string">Режим пользователя, полученный из: %s</string>
|
||||
<string name="profile_alert_duplicate_name_title">Повторяющееся имя</string>
|
||||
|
@ -3146,4 +3146,14 @@
|
|||
<string name="app_mode_ufo">НЛО</string>
|
||||
<string name="edit_profile_setup_title">Настройка профиля</string>
|
||||
<string name="edit_profile_setup_subtitle">У каждого профиля свои настройки</string>
|
||||
<string name="minmax_speed_dialog_title">Мин/макс скорость</string>
|
||||
<string name="shared_string_crash">Аварии</string>
|
||||
<string name="app_mode_offroad">Бездорожье</string>
|
||||
<string name="edit_profile_setup_map_subtitle">Выберите настройки карты по умолчанию для профиля</string>
|
||||
<string name="edit_profile_screen_options_subtitle">Выбор параметров экрана по умолчанию для профиля</string>
|
||||
<string name="edit_profile_nav_settings_subtitle">Выбор параметров навигации по умолчанию для профиля</string>
|
||||
<string name="routing_attr_max_num_changes_description">Укажите максимальное количество изменений</string>
|
||||
<string name="turn_screen_on_sensor">Использовать датчик приближения</string>
|
||||
<string name="turn_on_profile_desc">Пожалуйста, включите по крайней мере один профиль приложения, чтобы использовать этот параметр.</string>
|
||||
<string name="shared_string_file_is_saved">%s сохранено</string>
|
||||
</resources>
|
|
@ -11,6 +11,12 @@
|
|||
Thx - Hardy
|
||||
|
||||
-->
|
||||
<string name="shared_string_default">Default</string>
|
||||
<string name="gpx_join_gaps">Join gaps</string>
|
||||
<string name="app_mode_camper">Camper</string>
|
||||
<string name="app_mode_campervan">Campervan</string>
|
||||
<string name="rendering_attr_showLez_description">Show Low Emission zones on the map. Does not affect routing.</string>
|
||||
<string name="rendering_attr_showLez_name">Show Low Emission Zones</string>
|
||||
<string name="temporary_conditional_routing">Consider temporary limitations</string>
|
||||
<string name="turn_on_profile_desc">Please turn on at least one application profile, to use this setting.</string>
|
||||
<string name="rendering_attr_winter_road_name">Winter road</string>
|
||||
|
|
|
@ -140,7 +140,7 @@ public class ApplicationMode {
|
|||
ApplicationMode[] navigationSet2 = new ApplicationMode[]{PEDESTRIAN, PUBLIC_TRANSPORT, AIRCRAFT};
|
||||
|
||||
regWidgetVisibility(WIDGET_NEXT_TURN, navigationSet1);
|
||||
regWidgetVisibility(WIDGET_NEXT_TURN, navigationSet2);
|
||||
regWidgetVisibility(WIDGET_NEXT_TURN_SMALL, navigationSet2);
|
||||
regWidgetVisibility(WIDGET_NEXT_NEXT_TURN, navigationSet1);
|
||||
regWidgetAvailability(WIDGET_NEXT_TURN, exceptDefault);
|
||||
regWidgetAvailability(WIDGET_NEXT_TURN_SMALL, exceptDefault);
|
||||
|
|
|
@ -197,6 +197,7 @@ public class GpxSelectionHelper {
|
|||
d = t.name + " " + d;
|
||||
}
|
||||
group.setDescription(d);
|
||||
group.setGeneralTrack(true);
|
||||
processGroupTrack(app, group);
|
||||
return group;
|
||||
}
|
||||
|
@ -215,6 +216,7 @@ public class GpxSelectionHelper {
|
|||
d = t.name + " " + d;
|
||||
}
|
||||
group.setDescription(d);
|
||||
group.setGeneralTrack(t.generalTrack);
|
||||
processGroupTrack(app, group);
|
||||
return group;
|
||||
}
|
||||
|
@ -771,6 +773,7 @@ public class GpxSelectionHelper {
|
|||
private double splitDistance = -1;
|
||||
private int splitTime = -1;
|
||||
private int color;
|
||||
private boolean generalTrack;
|
||||
|
||||
public GpxDisplayGroup(GPXFile gpx) {
|
||||
this.gpx = gpx;
|
||||
|
@ -878,6 +881,14 @@ public class GpxSelectionHelper {
|
|||
public void setColor(int color) {
|
||||
this.color = color;
|
||||
}
|
||||
|
||||
public boolean isGeneralTrack() {
|
||||
return generalTrack;
|
||||
}
|
||||
|
||||
public void setGeneralTrack(boolean generalTrack) {
|
||||
this.generalTrack = generalTrack;
|
||||
}
|
||||
}
|
||||
|
||||
public static class GpxDisplayItem {
|
||||
|
@ -903,5 +914,9 @@ public class GpxSelectionHelper {
|
|||
|
||||
public Matrix chartMatrix;
|
||||
public float chartHighlightPos = -1f;
|
||||
|
||||
public boolean isGeneralTrack() {
|
||||
return group != null && group.isGeneralTrack();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -251,11 +251,13 @@ public class SettingsNavigationActivity extends SettingsBaseActivity {
|
|||
|
||||
private void addVoicePrefs(PreferenceGroup cat) {
|
||||
if (!Version.isBlackberry((OsmandApplication) getApplication())) {
|
||||
String[] streamTypes = new String[]{getString(R.string.voice_stream_music), getString(R.string.voice_stream_notification),
|
||||
getString(R.string.voice_stream_voice_call), getString(R.string.shared_string_default)};
|
||||
Integer[] streamIntTypes = new Integer[]{AudioManager.STREAM_MUSIC,
|
||||
AudioManager.STREAM_NOTIFICATION, AudioManager.STREAM_VOICE_CALL,
|
||||
AudioManager.USE_DEFAULT_STREAM_TYPE};
|
||||
ListPreference lp = createListPreference(
|
||||
settings.AUDIO_STREAM_GUIDANCE,
|
||||
new String[]{getString(R.string.voice_stream_music), getString(R.string.voice_stream_notification),
|
||||
getString(R.string.voice_stream_voice_call)}, new Integer[]{AudioManager.STREAM_MUSIC,
|
||||
AudioManager.STREAM_NOTIFICATION, AudioManager.STREAM_VOICE_CALL}, R.string.choose_audio_stream,
|
||||
settings.AUDIO_STREAM_GUIDANCE, streamTypes, streamIntTypes , R.string.choose_audio_stream,
|
||||
R.string.choose_audio_stream_descr);
|
||||
final Preference.OnPreferenceChangeListener prev = lp.getOnPreferenceChangeListener();
|
||||
lp.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
|
|
|
@ -1164,7 +1164,7 @@ public class GpxUiHelper {
|
|||
}
|
||||
|
||||
private static List<Entry> calculateElevationArray(GPXTrackAnalysis analysis, GPXDataSetAxisType axisType,
|
||||
float divX, float convEle) {
|
||||
float divX, float convEle, boolean useGeneralTrackPoints) {
|
||||
List<Entry> values = new ArrayList<>();
|
||||
List<Elevation> elevationData = analysis.elevationData;
|
||||
float nextX = 0;
|
||||
|
@ -1207,6 +1207,9 @@ public class GpxUiHelper {
|
|||
}
|
||||
hasSameY = false;
|
||||
}
|
||||
if (useGeneralTrackPoints && e.firstPoint && lastEntry != null) {
|
||||
values.add(new Entry(nextX, lastEntry.getY()));
|
||||
}
|
||||
prevElevOrig = e.elevation;
|
||||
prevElev = elev;
|
||||
nextY = elev * convEle;
|
||||
|
@ -1352,7 +1355,7 @@ public class GpxUiHelper {
|
|||
}
|
||||
});
|
||||
|
||||
List<Entry> values = calculateElevationArray(analysis, axisType, divX, convEle);
|
||||
List<Entry> values = calculateElevationArray(analysis, axisType, divX, convEle, true);
|
||||
|
||||
OrderedLineDataSet dataSet = new OrderedLineDataSet(values, "", GPXDataSetType.ALTITUDE, axisType);
|
||||
dataSet.priority = (float) (analysis.avgElevation - analysis.minElevation) * convEle;
|
||||
|
@ -1483,7 +1486,13 @@ public class GpxUiHelper {
|
|||
if (nextY < 0 || Float.isInfinite(nextY)) {
|
||||
nextY = 0;
|
||||
}
|
||||
if (s.firstPoint) {
|
||||
values.add(new Entry(nextX, 0));
|
||||
}
|
||||
values.add(new Entry(nextX, nextY));
|
||||
if (s.lastPoint) {
|
||||
values.add(new Entry(nextX, 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1602,7 +1611,7 @@ public class GpxUiHelper {
|
|||
|
||||
List<Entry> values;
|
||||
if (eleValues == null) {
|
||||
values = calculateElevationArray(analysis, GPXDataSetAxisType.DISTANCE, 1f, 1f);
|
||||
values = calculateElevationArray(analysis, GPXDataSetAxisType.DISTANCE, 1f, 1f, false);
|
||||
} else {
|
||||
values = new ArrayList<>(eleValues.size());
|
||||
for (Entry e : eleValues) {
|
||||
|
|
|
@ -16,6 +16,7 @@ import android.support.v4.view.MenuItemCompat;
|
|||
import android.support.v4.view.PagerAdapter;
|
||||
import android.support.v4.view.ViewCompat;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.widget.SwitchCompat;
|
||||
import android.util.SparseArray;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
|
@ -60,6 +61,7 @@ import net.osmand.plus.UiUtilities;
|
|||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.activities.TrackActivity;
|
||||
import net.osmand.plus.base.OsmAndListFragment;
|
||||
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||
import net.osmand.plus.helpers.GpxUiHelper;
|
||||
import net.osmand.plus.helpers.GpxUiHelper.GPXDataSetAxisType;
|
||||
import net.osmand.plus.helpers.GpxUiHelper.GPXDataSetType;
|
||||
|
@ -91,6 +93,7 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit
|
|||
|
||||
private boolean updateEnable;
|
||||
private boolean chartClicked;
|
||||
private boolean joinGapsEnabled;
|
||||
|
||||
private IconPopupMenu generalPopupMenu;
|
||||
private IconPopupMenu altitudePopupMenu;
|
||||
|
@ -455,7 +458,7 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit
|
|||
dataSets.add(elevationDataSet);
|
||||
}
|
||||
if (analysis.hasElevationData) {
|
||||
List<Entry> eleValues = elevationDataSet != null ? elevationDataSet.getValues() : null;
|
||||
List<Entry> eleValues = elevationDataSet != null && !gpxItem.isGeneralTrack() ? elevationDataSet.getValues() : null;
|
||||
OrderedLineDataSet slopeDataSet = GpxUiHelper.createGPXSlopeDataSet(app, chart,
|
||||
analysis, GPXDataSetAxisType.DISTANCE, eleValues, true, true);
|
||||
if (slopeDataSet != null) {
|
||||
|
@ -713,11 +716,17 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit
|
|||
((ImageView) view.findViewById(R.id.end_time_icon))
|
||||
.setImageDrawable(ic.getThemedIcon(R.drawable.ic_action_time_end));
|
||||
|
||||
((TextView) view.findViewById(R.id.distance_text))
|
||||
.setText(OsmAndFormatter.getFormattedDistance(analysis.totalDistance, app));
|
||||
((TextView) view.findViewById(R.id.duration_text))
|
||||
.setText(Algorithms.formatDuration((int) (analysis.timeSpan / 1000), app.accessibilityEnabled()));
|
||||
|
||||
final SwitchCompat joinGapsSwitch = (SwitchCompat) view.findViewById(R.id.gpx_join_gaps_switch);
|
||||
joinGapsSwitch.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
joinGapsEnabled = joinGapsSwitch.isChecked();
|
||||
for (int i = 0; i < getCount(); i++) {
|
||||
View view = getViewAtPosition(i);
|
||||
updateJoinGapsInfo(view, i);
|
||||
}
|
||||
}
|
||||
});
|
||||
if (analysis.timeSpan > 0) {
|
||||
DateFormat tf = SimpleDateFormat.getTimeInstance(DateFormat.SHORT);
|
||||
DateFormat df = SimpleDateFormat.getDateInstance(DateFormat.MEDIUM);
|
||||
|
@ -738,6 +747,7 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit
|
|||
view.findViewById(R.id.list_divider).setVisibility(View.GONE);
|
||||
view.findViewById(R.id.start_end_time).setVisibility(View.GONE);
|
||||
}
|
||||
updateJoinGapsInfo(view, position);
|
||||
view.findViewById(R.id.analyze_on_map).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -844,12 +854,24 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit
|
|||
((TextView) view.findViewById(R.id.ascent_text)).setText(asc);
|
||||
((TextView) view.findViewById(R.id.descent_text)).setText(desc);
|
||||
|
||||
final SwitchCompat joinGapsSwitch = (SwitchCompat) view.findViewById(R.id.gpx_join_gaps_switch);
|
||||
joinGapsSwitch.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
joinGapsEnabled = joinGapsSwitch.isChecked();
|
||||
for (int i = 0; i < getCount(); i++) {
|
||||
View view = getViewAtPosition(i);
|
||||
updateJoinGapsInfo(view, i);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
chart.setVisibility(View.GONE);
|
||||
view.findViewById(R.id.average_range).setVisibility(View.GONE);
|
||||
view.findViewById(R.id.list_divider).setVisibility(View.GONE);
|
||||
view.findViewById(R.id.ascent_descent).setVisibility(View.GONE);
|
||||
}
|
||||
updateJoinGapsInfo(view, position);
|
||||
view.findViewById(R.id.analyze_on_map).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -938,17 +960,25 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit
|
|||
|
||||
((TextView) view.findViewById(R.id.average_text)).setText(avg);
|
||||
((TextView) view.findViewById(R.id.max_text)).setText(max);
|
||||
((TextView) view.findViewById(R.id.time_moving_text))
|
||||
.setText(Algorithms.formatDuration((int) (analysis.timeMoving / 1000), app.accessibilityEnabled()));
|
||||
((TextView) view.findViewById(R.id.distance_text))
|
||||
.setText(OsmAndFormatter.getFormattedDistance(analysis.totalDistanceMoving, app));
|
||||
|
||||
final SwitchCompat joinGapsSwitch = (SwitchCompat) view.findViewById(R.id.gpx_join_gaps_switch);
|
||||
joinGapsSwitch.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
joinGapsEnabled = joinGapsSwitch.isChecked();
|
||||
for (int i = 0; i < getCount(); i++) {
|
||||
View view = getViewAtPosition(i);
|
||||
updateJoinGapsInfo(view, i);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
chart.setVisibility(View.GONE);
|
||||
view.findViewById(R.id.average_max).setVisibility(View.GONE);
|
||||
view.findViewById(R.id.list_divider).setVisibility(View.GONE);
|
||||
view.findViewById(R.id.time_distance).setVisibility(View.GONE);
|
||||
}
|
||||
updateJoinGapsInfo(view, position);
|
||||
view.findViewById(R.id.analyze_on_map).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
@ -1110,6 +1140,31 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit
|
|||
}
|
||||
}
|
||||
|
||||
void updateJoinGapsInfo(View view, int position) {
|
||||
if (view != null) {
|
||||
GPXTrackAnalysis analysis = gpxItem.analysis;
|
||||
GPXTabItemType tabType = tabTypes[position];
|
||||
boolean visible = gpxItem.isGeneralTrack() && analysis != null && tabType.equals(GPXTabItemType.GPX_TAB_ITEM_GENERAL);
|
||||
AndroidUiHelper.updateVisibility(view.findViewById(R.id.gpx_join_gaps_container), visible);
|
||||
((SwitchCompat) view.findViewById(R.id.gpx_join_gaps_switch)).setChecked(joinGapsEnabled);
|
||||
if (analysis != null) {
|
||||
if (tabType.equals(GPXTabItemType.GPX_TAB_ITEM_GENERAL)) {
|
||||
float totalDistance = joinGapsEnabled && gpxItem.isGeneralTrack() ? analysis.totalDistanceWithoutGaps : analysis.totalDistance;
|
||||
float timeSpan = joinGapsEnabled && gpxItem.isGeneralTrack() ? analysis.timeSpanWithoutGaps : analysis.timeSpan;
|
||||
|
||||
((TextView) view.findViewById(R.id.distance_text)).setText(OsmAndFormatter.getFormattedDistance(totalDistance, app));
|
||||
((TextView) view.findViewById(R.id.duration_text)).setText(Algorithms.formatDuration((int) (timeSpan / 1000), app.accessibilityEnabled()));
|
||||
} else if (tabType.equals(GPXTabItemType.GPX_TAB_ITEM_SPEED)) {
|
||||
long timeMoving = joinGapsEnabled && gpxItem.isGeneralTrack() ? analysis.timeMovingWithoutGaps : analysis.timeMoving;
|
||||
float totalDistanceMoving = joinGapsEnabled && gpxItem.isGeneralTrack() ? analysis.totalDistanceMovingWithoutGaps : analysis.totalDistanceMoving;
|
||||
|
||||
((TextView) view.findViewById(R.id.time_moving_text)).setText(Algorithms.formatDuration((int) (timeMoving / 1000), app.accessibilityEnabled()));
|
||||
((TextView) view.findViewById(R.id.distance_text)).setText(OsmAndFormatter.getFormattedDistance(totalDistanceMoving, app));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateChart(LineChart chart) {
|
||||
if (chart != null && !chart.isEmpty()) {
|
||||
if (gpxItem.chartMatrix != null) {
|
||||
|
|
|
@ -256,6 +256,8 @@ public class SelectProfileBottomSheetDialogFragment extends MenuBottomSheetDialo
|
|||
icons.add(new IconResWithDescr(R.drawable.ic_action_scooter, R.string.app_mode_scooter, "ic_action_scooter", false));
|
||||
icons.add(new IconResWithDescr(R.drawable.ic_action_ufo, R.string.app_mode_ufo, "ic_action_ufo", false));
|
||||
icons.add(new IconResWithDescr(R.drawable.ic_action_offroad, R.string.app_mode_offroad, "ic_action_offroad", false));
|
||||
icons.add(new IconResWithDescr(R.drawable.ic_action_campervan, R.string.app_mode_campervan, "ic_action_campervan", false));
|
||||
icons.add(new IconResWithDescr(R.drawable.ic_action_camper, R.string.app_mode_camper, "ic_action_camper", false));
|
||||
return icons;
|
||||
}
|
||||
|
||||
|
|
|
@ -167,7 +167,7 @@ public class RouteOptionsBottomSheet extends MenuBottomSheetDialogFragment {
|
|||
.setChecked(settings.ENABLE_TIME_CONDITIONAL_ROUTING.get())
|
||||
.setIcon(getContentIcon((optionsItem.getActiveIconId())))
|
||||
.setTitle(getString(R.string.temporary_conditional_routing))
|
||||
.setLayoutId(R.layout.bottom_sheet_item_with_descr_and_switch_56dp)
|
||||
.setLayoutId(R.layout.bottom_sheet_item_with_switch_56dp)
|
||||
.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
|
|
|
@ -817,12 +817,12 @@ public class RoutingOptionsHelper {
|
|||
|
||||
@Override
|
||||
public int getActiveIconId() {
|
||||
return R.drawable.ic_action_road_works_dark;
|
||||
return R.drawable.ic_action_alert;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDisabledIconId() {
|
||||
return R.drawable.ic_action_road_works_dark;
|
||||
return R.drawable.ic_action_alert;
|
||||
}
|
||||
}
|
||||
|
||||
|
|