Revert changes
This commit is contained in:
parent
4e96ac0e0c
commit
45038e51ac
32 changed files with 107 additions and 945 deletions
1
OsmAnd-java/.gitignore
vendored
1
OsmAnd-java/.gitignore
vendored
|
@ -4,7 +4,6 @@ OsmAnd-core.jar
|
|||
protobuf-src/com
|
||||
OsmAnd-core-android.jar
|
||||
src/net/osmand/core/jni/*
|
||||
result.*
|
||||
|
||||
# Android Studio
|
||||
/.idea
|
||||
|
|
|
@ -423,14 +423,6 @@ public class GeoPointParserUtil {
|
|||
actual = GeoPointParserUtil.parse(url);
|
||||
assertGeoPoint(actual, new GeoParsedPoint(dlat, dlon, z));
|
||||
|
||||
// whatsapp
|
||||
// https://maps.google.com/maps?q=loc:34.99393,-106.61568 (USER NAME)
|
||||
z = GeoParsedPoint.NO_ZOOM;
|
||||
url = "https://maps.google.com/maps?q=loc:" + dlat + "," + dlon + " (+55 99 99999-9999)";
|
||||
System.out.println("url: " + url);
|
||||
actual = GeoPointParserUtil.parse(url);
|
||||
assertGeoPoint(actual, new GeoParsedPoint(dlat, dlon, z));
|
||||
|
||||
// whatsapp
|
||||
// https://www.google.com/maps/search/34.99393,-106.61568/data=!4m4!2m3!3m1!2s-23.2776,-45.8443128!4b1
|
||||
url = "https://maps.google.com/maps?q=loc:" + dlat + "," + dlon + "/data=!4m4!2m3!3m1!2s-23.2776,-45.8443128!4b1";
|
||||
|
@ -980,7 +972,7 @@ public class GeoPointParserUtil {
|
|||
if(opath.contains(pref)) {
|
||||
opath = opath.substring(opath.lastIndexOf(pref) + pref.length());
|
||||
}
|
||||
final String postf = "\\s\\((\\p{L}|\\p{M}|\\p{Z}|\\p{S}|\\p{N}|\\p{P}|\\p{C})*\\)$";
|
||||
final String postf = "\\s\\((\\p{L}|\\s)*\\)$";
|
||||
opath = opath.replaceAll(postf, "");
|
||||
System.out.println("opath=" + opath);
|
||||
return parseGoogleMapsPath(opath, params);
|
||||
|
|
|
@ -1,162 +1,34 @@
|
|||
[
|
||||
{
|
||||
"testName": "1.Preston road TR Lorimar drive",
|
||||
"testName": "Amstelveenseweg",
|
||||
"startPoint": {
|
||||
"latitude": 45.69539,
|
||||
"longitude": 35.43936
|
||||
"longitude": 35.51630312204361,
|
||||
"latitude": 45.6971206184178
|
||||
},
|
||||
"endPoint": {
|
||||
"latitude": 45.69567,
|
||||
"longitude": 35.440113
|
||||
},
|
||||
"expectedResults": {
|
||||
"-8827": "TL, C, C, C, +TR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"testName": "1.2.Preston road TL Lorimar drive",
|
||||
"startPoint": {
|
||||
"latitude": 45.69716379996895,
|
||||
"longitude": 35.43819894718172
|
||||
},
|
||||
"endPoint": {
|
||||
"latitude": 45.69602851362186,
|
||||
"longitude": 35.44070949481966
|
||||
},
|
||||
"expectedResults": {
|
||||
"-9105": "+TL, C, C, C, TR",
|
||||
"-8512": "+TL, C, C, C",
|
||||
"-8827": "TL, +C, +C"
|
||||
}
|
||||
},
|
||||
{
|
||||
"testName": "1.3.Baywater drive TR Preston road",
|
||||
"startPoint": {
|
||||
"latitude": 45.6960514631203,
|
||||
"longitude": 35.43735606299879
|
||||
},
|
||||
"endPoint": {
|
||||
"latitude": 45.695624319890825,
|
||||
"longitude": 35.438198276629464
|
||||
},
|
||||
"expectedResults": {
|
||||
"-8644": "TL, C, C, +TR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"testName": "2.Valley View Lane TU Highway 161 Service Road",
|
||||
"startPoint": {
|
||||
"latitude": 45.694859388262195,
|
||||
"longitude": 35.467755138874054
|
||||
},
|
||||
"endPoint": {
|
||||
"latitude": 45.694132477954575,
|
||||
"longitude": 35.46842032670975
|
||||
},
|
||||
"expectedResults": {
|
||||
"-41125": "+TU, +TL, +C;TL, C, C;TR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"testName": "3.Motorway link from Ringweg Zuid TL Amstelveenseweg",
|
||||
"startPoint": {
|
||||
"latitude": 45.6971206184178,
|
||||
"longitude": 35.51630312204361
|
||||
},
|
||||
"endPoint": {
|
||||
"latitude": 45.6952846638807,
|
||||
"longitude": 35.51303619146347
|
||||
"longitude": 35.51303619146347,
|
||||
"latitude": 45.6952846638807
|
||||
},
|
||||
"expectedResults": {
|
||||
"-94361": "TL, TL, TL, C, TR, TR",
|
||||
"-96062": "+TL, +TL, +TL, +C, TR, TR",
|
||||
"-96063": "+TL, +TL, +TL, +C, TR, TR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"testName": "4.Martinistraße TL Wilhelm-Kaisen-Brücke",
|
||||
"testName": "Amstelveenseweg2",
|
||||
"startPoint": {
|
||||
"latitude": 45.700375542702446,
|
||||
"longitude": 35.538462191820145
|
||||
"longitude": 35.51630312204361,
|
||||
"latitude": 45.6971206184178
|
||||
},
|
||||
"endPoint": {
|
||||
"latitude": 45.70025377916235,
|
||||
"longitude": 35.539058312773705
|
||||
"longitude": 35.51303619146347,
|
||||
"latitude": 45.6952846638807
|
||||
},
|
||||
"expectedResults": {
|
||||
"-62200": "TL, +C"
|
||||
"-96061": "+TL, +TL, +TL, +C, TR, TR",
|
||||
"-96062": "+TL, +TL, +TL, C, TR, TR",
|
||||
"-96063": "+TL, +TL, +TL, +C, TR, TR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"testName": "5.1.Fritz-Foerster-Platz (S 172) TR Bergstraße (B 170)",
|
||||
"startPoint": {
|
||||
"latitude": 45.69942484339974,
|
||||
"longitude": 35.552937403321266
|
||||
},
|
||||
"endPoint": {
|
||||
"latitude": 45.698372030432985,
|
||||
"longitude": 35.553747430443764
|
||||
},
|
||||
"expectedResults": {
|
||||
"-68071": "C, C, +TR, +TR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"testName": "5.2.Zellescher Weg (S 172) TL Bergstraße (B 170)",
|
||||
"startPoint": {
|
||||
"latitude": 45.69887876939763,
|
||||
"longitude": 35.55432008206844
|
||||
},
|
||||
"endPoint": {
|
||||
"latitude": 45.69869143574982,
|
||||
"longitude": 35.553684398531914
|
||||
},
|
||||
"expectedResults": {
|
||||
"-68128": "+TL, +TL, C, C;TR",
|
||||
"-68107": "+TL, +TL, C, C",
|
||||
"-68071": "TL, +C, +C"
|
||||
}
|
||||
},
|
||||
{
|
||||
"testName": "6.Platz der Vereinten Nationen TR Platz der Vereinten Nationen",
|
||||
"startPoint": {
|
||||
"latitude": 45.69942016011204,
|
||||
"longitude": 35.568235382437706
|
||||
},
|
||||
"endPoint": {
|
||||
"latitude": 45.70020132709422,
|
||||
"longitude": 35.56931899487972
|
||||
},
|
||||
"expectedResults": {
|
||||
"-71975": "TL, C, +TR;C"
|
||||
}
|
||||
},
|
||||
{
|
||||
"testName": "7.1.Spindlersfelder Straße TR Oberspreestraße",
|
||||
"startPoint": {
|
||||
"latitude": 45.699817301524455,
|
||||
"longitude": 35.58391557633877
|
||||
},
|
||||
"endPoint": {
|
||||
"latitude": 45.69793647478804,
|
||||
"longitude": 35.58106707036495
|
||||
},
|
||||
"expectedResults": {
|
||||
"-77184": "TL, +TR;TL"
|
||||
}
|
||||
},
|
||||
{
|
||||
"testName": "7.2.Spindlersfelder Straße TL Oberspreestraße",
|
||||
"startPoint": {
|
||||
"latitude": 45.699817301524455,
|
||||
"longitude": 35.58391557633877
|
||||
},
|
||||
"endPoint": {
|
||||
"latitude": 45.69657639532305,
|
||||
"longitude": 35.586447581
|
||||
},
|
||||
"expectedResults": {
|
||||
"-77187": "+TL, TL;TR",
|
||||
"-77197": "TL, +C, +C"
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
]
|
||||
|
|
|
@ -10,33 +10,33 @@
|
|||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/list_item_height"
|
||||
android:orientation="horizontal">
|
||||
android:orientation="horizontal" >
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/osmo_status"
|
||||
android:layout_width="@dimen/list_item_height"
|
||||
android:layout_height="@dimen/list_item_height"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/mon_osmo_conn_small"/>
|
||||
android:layout_gravity="center_vertical"
|
||||
android:src="@drawable/mon_osmo_conn_small" />
|
||||
|
||||
<include
|
||||
android:id="@+id/enable_service"
|
||||
layout="@layout/check_item"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
layout="@layout/check_item"
|
||||
android:focusable="false"
|
||||
android:text="@string/osmo_start_service"
|
||||
android:textColor="@color/color_white"/>
|
||||
android:textColor="@color/color_white" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/share_my_location_layout"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/list_item_height"
|
||||
android:orientation="horizontal">
|
||||
android:id="@+id/share_my_location_layout"
|
||||
android:orientation="horizontal" >
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/share_my_location"
|
||||
|
@ -45,21 +45,21 @@
|
|||
android:layout_gravity="center_vertical"
|
||||
android:background="?attr/dashboard_button"
|
||||
android:scaleType="centerInside"
|
||||
android:src="@drawable/ic_action_gshare_dark"/>
|
||||
android:src="@drawable/ic_action_gshare_dark" />
|
||||
|
||||
<include
|
||||
android:id="@+id/enable_tracker"
|
||||
layout="@layout/check_item"
|
||||
android:id="@+id/enable_tracker"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:checked="false"
|
||||
android:focusable="false"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/osmo_enable_tracker"
|
||||
/>
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
|
||||
<TextView
|
||||
android:id="@+id/motd"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -68,7 +68,7 @@
|
|||
android:gravity="center"
|
||||
android:textColor="@color/color_white"
|
||||
android:textSize="@dimen/default_desc_text_size"
|
||||
android:visibility="gone"/>
|
||||
|
||||
android:visibility="gone" />
|
||||
|
||||
|
||||
</LinearLayout>
|
|
@ -1283,7 +1283,7 @@
|
|||
<string name="share_fav_subject">Упадабанае адаслана праз OsmAnd</string>
|
||||
<string name="use_points_as_intermediates">Разлічыць маршрут паміж кропкамі</string>
|
||||
|
||||
<string name="osmo_auto_send_locations_descr">Аўтаматычна пачынаць падарожжа і перадачу месцазнаходжаньня пасьля старту праграмы</string>
|
||||
<string name="osmo_auto_send_locations_descr">Аўтаматычна пачынаць запіс сьледу і перадачу месцазнаходжаньня пасьля старту праграмы</string>
|
||||
<string name="osmo_auto_send_locations">Аўтаматычна пачынаць падарожжа</string>
|
||||
<string name="osmo_tracker_id">ID трэкера</string>
|
||||
<string name="osmo_tracker_id_descr">Націсніце, каб паглядзець ідэнтыфікатар трэкера</string>
|
||||
|
@ -1521,7 +1521,7 @@
|
|||
<string name="osmo_device_not_found">Прыстасаваньне ня знойдзена</string>
|
||||
<string name="anonymous_user">Ананімны карыстальнік</string>
|
||||
<string name="logged_as">Вы ўвайшлі як %1$s</string>
|
||||
<string name="osmo_no_connection_msg">Сэрвіс OsMo не даступны:\n- Праверце Інтэрнэт-злучэньне;\n- Праверце налады;\n- Праверце наш Twitter: https://twitter.com/OsMomobi</string>
|
||||
<string name="osmo_no_connection_msg">Сэрвіс OsMo не даступны:\n- Праверце злучэньне;\n- Праверце налады;\n- Праверце наш Twitter: https://twitter.com/OsMomobi</string>
|
||||
<string name="anonymous_user_hint">Ананімнаму карыстальніку недаступныя:\n- Стварэньне груп;\n- Сінхранізацыя груп і прыстасаваньняў з серверам;\n- Кіраваньне групамі і прыстасаваньнямі ў асабістым кабінеце.</string>
|
||||
<string name="configure_map">Налады мапы</string>
|
||||
<string name="search_radius_proximity">Паблізу ад</string>
|
||||
|
@ -2164,16 +2164,4 @@
|
|||
<string name="upload_osm_note_description">Вы можаце адаслаць Вашу OSM заўвагу ананімна, калі вы выкарыстоўваеце свой профіль OpenStreetMap.org.</string>
|
||||
<string name="upload_osm_note">Адаслаць OSM заўвагу</string>
|
||||
<string name="report">Справаздача</string>
|
||||
<string name="release_2_3">" • OSM Live. Падтрымка аўтараў і распрацоўнікаў мапаў і атрыманьне штогадзінных абнаўленьняў мапы.\n\n• Маркеры. Новы спосаб для хуткага выбару месцаў на мапе.\n\n• Больш падрабязныя OSM мапы са спэцыфічнымі дарожнымі знакамі краін і з вялікай колькасьцю новых функцый.\n\n• Палепшаны вонкавы выгляд і падрыхтоўка маршруту.\n\n• Мноства паляпшэньняў у кантэкстным мэню мапы такіх як пошук адрасу.\n\nІ шматлікае іншае... "</string>
|
||||
<string name="shared_string_move_up">Перамясьціць угару</string>
|
||||
<string name="shared_string_move_down">Перамясьціць уніз</string>
|
||||
<string name="finish_navigation">Завяршыць навігацыю</string>
|
||||
<string name="avoid_road">Пазьбягаць дарог</string>
|
||||
<string name="shared_string_topbar">Верхняя панэль</string>
|
||||
<string name="osm_user_stat">Правак: %1$s, ранг: %2$s, усяго правак: %3$s</string>
|
||||
<string name="osm_editors_ranking">Рэйтынг картографаў OSM</string>
|
||||
<string name="osm_live_user_public_name">Публічнае імя</string>
|
||||
<string name="osm_live_support_region">Падтрымоўваны рэгіён</string>
|
||||
<string name="osm_live_enter_user_name">Калі ласка ўвядзіце імя</string>
|
||||
<string name="select_map_markers">Абярыце маркеры</string>
|
||||
</resources>
|
||||
|
|
|
@ -1469,8 +1469,7 @@ Für Hilfe mit der OsmAnd-App kontaktieren Sie bitte unser Support-Team unter su
|
|||
<string name="osmo_auth_error_short">Anmeldung fehlgeschlagen</string>
|
||||
<string name="osmo_auth_error">Fehler bei der OsMo-Anmeldung: %1$s.\n Möglicherweise ist der Dienst nicht verfügbar oder Ihre Anmeldung ist abgelaufen.\n Fortsetzen mit einer neuen Registrierung?</string>
|
||||
<string name="osmo_group_by_invite">Auf Einladung beitreten</string>
|
||||
<string name="osmo_group_information_desc">" - Zum Erstellen einer Gruppe bitte Namen und Beschreibung angeben\n - Die App legt nur Gruppen vom Typ \"einfache Gruppe\" an, mehr dazu auf der Website https://osmo.mobi/g/new
|
||||
\n - Auf der Webseite kann man die Gruppe bearbeiten um Orte, Strecken und Punkte hinzuzufügen\n - Wir empfehlen es keine Gruppen mit nur einem Nutzer zu erstellen, wenn es keine POI Gruppe ist\n - Private Gruppen sind auf 8 Personen beschränkt\n - Detaillierte Vertragsbedingungen sind auf der Webseite OsMo.mobi zu finden\n - Wenn besondere Bedürfnisse bestehen, bitte den Support kontaktieren: osmo.mobi@gmail.com "</string>
|
||||
<string name="osmo_group_information_desc">" - Alle angelegten Gruppen sind öffentlich! Für eine anonyme Verbindung bitte direkt mittels Tracker-ID verbinden.\n - In einer privaten Gruppe können sich bis zu 8 Mitglieder anmelden.\n - Bei Inaktivität oder nur einem einzigen Mitglied über 2 Wochen wird die Gruppe gelöscht.\n - Der Zugang zu einer Gruppe kann beschränkt werden: \"nur auf Einladung\". Zur Steuerung der Gruppe benötigt man Zugang zur Admin-Konsole.\n - Zum Erstellen einer Gruppe mit abweichenden Bedingungen bitte Kontakt aufnehmen unter http://osmo.mobi"</string>
|
||||
<string name="osmo_group_information">Bitte vor dem Erstellen von Gruppen beachten!</string>
|
||||
<string name="osmo_not_signed_in">OsMo-Anmeldung fehlgeschlagen</string>
|
||||
<string name="osmo_gpx_points_downloaded">OsMo-Punkte %1$s heruntergeladen.</string>
|
||||
|
@ -1549,7 +1548,7 @@ Für Hilfe mit der OsmAnd-App kontaktieren Sie bitte unser Support-Team unter su
|
|||
<string name="speed_limit_exceed">Toleranz für Tempolimit</string>
|
||||
<string name="speed_limit_exceed_message">Schwellenwert für Warnung bei Überschreiten der Höchstgeschwindigkeit.</string>
|
||||
<string name="osmo_device_not_found">Gerät wurde nicht gefunden</string>
|
||||
<string name="osmo_no_connection_msg">Keine Verbindung zum OsMo Server:\n- bitte Verbindung prüfen;\n- bitte Einstellungen prüfen;\n- ggf. Meldung auf Twitter prüfen: https://twitter.com/OsMomobi</string>
|
||||
<string name="osmo_no_connection_msg">OsMo-Dienst ist nicht verfügbar:\n- bitte Verbindung prüfen;\n- bitte Einstellungen prüfen;\n- ggf. Meldung auf Twitter: https://twitter.com/OsMomobi</string>
|
||||
<string name="anonymous_user">Anonymer Benutzer</string>
|
||||
<string name="logged_as">Angemeldet als %1$s</string>
|
||||
<string name="anonymous_user_hint">Anonyme Benutzer können keine:\n- Gruppen bilden;\n- Gruppen und Geräte mit dem Server synchronisieren;\n- Gruppen und Geräte im Privatbereich verwalten.</string>
|
||||
|
@ -2117,7 +2116,7 @@ Für Hilfe mit der OsmAnd-App kontaktieren Sie bitte unser Support-Team unter su
|
|||
<string name="avoid_road">Straßen vermeiden</string>
|
||||
<string name="storage_directory_readonly_desc">Der momentan gewählte Speicherort ist schreibgeschützt. Es wurde vorübergehend zum internen Speicher gewechselt. Bitte einen gültigen Speicherort wählen.</string>
|
||||
<string name="storage_directory_shared">Gemeinsamer Speicher</string>
|
||||
<string name="release_2_3">" • OSM Live. Unterstütze Karten-Mitwirkende und Entwickler und erhalte stündliche Karten Aktualisierungen.\n\n • Kartenmarkierung. Eine neue Methode Orte auf der Karte schnell auszuwählen.\n\n • Detailliertere OSM Karten mit länderspezifischen Straßenschildern und vielen neuen Kartenmerkmalen.\n\n • Verbessertes Aussehen und Verhalten der Routenerstellung.\n\n • Viele Verbesserungen im Kontextmenü der Karte, wie beispielsweise kontextabhängige Adresssuche.
|
||||
<string name="release_2_3">" • OSM Live. Unterstütze Karten-Mitwirkende und Entwickler und erhalte stündliche Karten Aktualisierungen.\n\n • Karten Markierungen. Ein neuer Weg um schnell ausgewählte Plätze auf der Karte auszuwählen.\n\n • Detailliertere OSM Karten mit länderspezifischen Straßenschildern und einer Menge weitere Funktionalitäten.\n\n • Verbessertes Aussehen und Gefühl der Routen Vorbereitung.\n\n • Viele Verbesserungen der Karten Kontextmenüs, wie beispielsweise kontextabhängige Adresssuche.
|
||||
\n\n und mehr… "</string>
|
||||
<string name="full_report">Vollständiger Report</string>
|
||||
<string name="open_street_map_login_and_pass">OpenStreetMap Zugang und Passwort</string>
|
||||
|
@ -2127,5 +2126,5 @@ Für Hilfe mit der OsmAnd-App kontaktieren Sie bitte unser Support-Team unter su
|
|||
<string name="storage_permission_restart_is_required">Die Anwendung darf nun auf den externen Speicher schreiben. Ein manueller Neustart der Anwendung ist nötig.</string>
|
||||
<string name="shared_string_move_up">Hoch bewegen</string>
|
||||
<string name="shared_string_move_down">Runter bewegen</string>
|
||||
<string name="file_name_containes_illegal_char">Datenname beinhaltet nicht erlaubte Zeichen</string>
|
||||
<string name="file_name_containes_illegal_char">Datenname beinhaltet nicht erlaubt Zeichen</string>
|
||||
</resources>
|
||||
|
|
|
@ -674,13 +674,5 @@
|
|||
<string name="srtm_paid_version_title">Nivelkurba kromprogramo</string>
|
||||
<string name="osmand_srtm_short_description_80_chars">OsmAnd-kromprogramo por desegni nivelkurbojn eksterrete</string>
|
||||
<string name="srtm_plugin_name">Nivelkurboj</string>
|
||||
<string name="osmand_srtm_long_description_1000_chars">"Tiu ĉi kromprogramo ebligas vidigi kaj tavolon de nivelkurboj kaj tavolon de nivel-ombrumo (reliefo) supre normaj OsmAnd-mapoj. Tiu ĉi ebleco estas dezirata de atletoj, migrantoj, turistoj, kaj ĉiuj scivolaj en reliefa strukturo de lando.\n\nLa mondaj datumoj (inter 70-a norda kaj 70-a suda grado de latitudo) estas bazitaj sur mezuroj de la SRTM (Shuttle Radar Topography Mission) kaj de la ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), bildiga aparato en la Terra - ĉefa sputniko de Sistemo de Tera Observado de NASA. ASTER estas kunlaboraĵo de NASA, de Japana Ministerio pri Ekonomio, Komerco kaj Industrio (METI) kaj de Japanaj Spacaj Sistemoj (J-spacesystems). "</string>
|
||||
<string name="srtm_plugin_description">"Tiu ĉi kromprogramo ebligas vidigi kaj tavolon de nivelkurboj kaj tavolon de nivel-ombrumo (reliefo) supre normaj OsmAnd-mapoj. Tiu ĉi ebleco estas dezirata de atletoj, migrantoj, turistoj, kaj ĉiuj scivolaj en reliefa strukturo de lando.\n\nLa mondaj datumoj (inter 70-a norda kaj 70-a suda grado de latitudo) estas bazitaj sur mezuroj de la SRTM (Shuttle Radar Topography Mission) kaj de la ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), bildiga aparato en la Terra - ĉefa sputniko de Sistemo de Tera Observado de NASA. ASTER estas kunlaboraĵo de NASA, de Japana Ministerio pri Ekonomio, Komerco kaj Industrio (METI) kaj de Japanaj Spacaj Sistemoj (J-spacesystems). "</string>
|
||||
<string name="no_index_file_to_download">Elŝutado de trovita, bonvolu kontroli vian retkonekton.</string>
|
||||
<string name="select_index_file_to_download">Trovis nenion. Se vi ne povas trovi vian regionon, vi povas fari ĝin mem (rigardu na http://osmand.net).</string>
|
||||
<string name="none_selected_gpx">Nenia GPX-dosiero elektita. Por elekti bonvolu premteni disponeblan kurson.</string>
|
||||
<string name="local_index_select_gpx_file">Elektu por montri</string>
|
||||
<string name="gpx_split_interval">Divid-intervalo</string>
|
||||
<string name="sort_by_distance">Ordigi laŭ distanco</string>
|
||||
<string name="sort_by_name">Ordigi laŭ nomo</string>
|
||||
<string name="osmand_srtm_long_description_1000_chars">"Tiu ĉi kromprogramo ebligas vidigi kaj tavolon de nivelkurboj kaj tavolon de nivel-ombrumo (reliefo) supre normaj OsmAnd-mapoj. Tiu ĉi ebleco estas dezirata de atletoj, migrantoj, turistoj, kaj ĉiuj scivolaj en reliefa strukturo de lando. "</string>
|
||||
</resources>
|
||||
|
|
|
@ -1951,7 +1951,7 @@
|
|||
<string name="osmand_running_in_background">Esecuzione in backgroung</string>
|
||||
<string name="default_speed_system_descr">Specifica l\'unità di misura della velocità</string>
|
||||
<string name="default_speed_system">Misurazione della velocità</string>
|
||||
<string name="nm">nmi</string>
|
||||
<string name="nm">nm</string>
|
||||
<string name="si_nm">Miglia nautiche</string>
|
||||
<string name="si_kmh">Chilometri all\'ora</string>
|
||||
<string name="si_mph">Miglia per ora</string>
|
||||
|
@ -1959,7 +1959,7 @@
|
|||
<string name="si_min_km">Minuti al chilometro</string>
|
||||
<string name="si_min_m">Minuti per miglia</string>
|
||||
<string name="si_nm_h">Miglia nautiche per ora (knot)</string>
|
||||
<string name="nm_h">nmi/h</string>
|
||||
<string name="nm_h">nmh</string>
|
||||
<string name="min_mile">min/m</string>
|
||||
<string name="min_km">min/km</string>
|
||||
<string name="m_s">m/s</string>
|
||||
|
@ -2216,7 +2216,4 @@
|
|||
<string name="storage_directory_readonly_desc">La carella di memorizzazione selezionata è in sola lettura. La cartella di memorizzazione sarà temporaneamente cambiata nella memoria interna. Per favore scegliere una cartella di destinazione valida.</string>
|
||||
<string name="report">Rapporto</string>
|
||||
<string name="storage_permission_restart_is_required">Ora l\'applicazione ha i permessi per scrivere sulla memoria esterna. È necessario riavviare l\'applicazione.</string>
|
||||
<string name="full_report">Rapporto completo</string>
|
||||
<string name="open_street_map_login_and_pass">Nome utente e password OpenStreetMap</string>
|
||||
<string name="file_name_containes_illegal_char">Il nome del file contiene caratteri non ammessi</string>
|
||||
</resources>
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources><string name="installing_new_resources">新しいデータを展開中…</string>
|
||||
<string name="internet_connection_required_for_online_route">オンライン経路案内を使用しようとしていますが
|
||||
インターネット接続されていません。</string>
|
||||
|
@ -1744,7 +1744,7 @@ POIの更新は利用できません</string>
|
|||
<string name="error_avoid_specific_road">バイパスが見つかりません</string>
|
||||
<string name="save_track_to_gpx_globally_headline">要求時に経路を保存</string>
|
||||
<string name="enable_proxy_title">HTTPプロキシを使用</string>
|
||||
<string name="enable_proxy_descr">すべてのネットワーク要求に使用されるプロキシの設定を行います</string>
|
||||
<string name="enable_proxy_descr">有効にした場合すべてのネットワーク接続に使用されるので設定をする必要があります</string>
|
||||
<string name="proxy_host_title">プロキシホスト</string>
|
||||
<string name="proxy_host_descr">プロキシのホスト名を設定します(例:127.0.0.1)</string>
|
||||
<string name="proxy_port_title">プロキシポート</string>
|
||||
|
@ -1864,8 +1864,8 @@ POIの更新は利用できません</string>
|
|||
<string name="routing_attr_height_description">ルート上で通行可能な車両の高さを指定します</string>
|
||||
<string name="use_fast_recalculation">スマートなルート再計算</string>
|
||||
<string name="use_fast_recalculation_desc">経路が長い場合、最初の部分のみ再計算します</string>
|
||||
<string name="light_theme">白色</string>
|
||||
<string name="dark_theme">黒色</string>
|
||||
<string name="light_theme">ライト</string>
|
||||
<string name="dark_theme">ダーク</string>
|
||||
<string name="lang_pms">ピエモンテ語</string>
|
||||
<string name="lang_bn">ベンガル語</string>
|
||||
<string name="lang_tl">タガログ語</string>
|
||||
|
@ -2135,45 +2135,4 @@ POIの更新は利用できません</string>
|
|||
<string name="shared_string_type">タイプ</string>
|
||||
<string name="starting_point">出発地</string>
|
||||
<string name="shared_string_not_selected">無選択</string>
|
||||
<string name="report">レポート</string>
|
||||
<string name="storage_permission_restart_is_required">外部ストレージへの書き込みが許可されました。手動でアプリケーションを再起動してください。</string>
|
||||
<string name="release_2_3">" ・ OSM Live. 地図作成者と開発者をサポートする機能と時間毎の地図更新。\n\n・ マップマーカー. マップ上の場所を選択する新しい方法。\n\n・ より詳細なOSMマップと国または地域別の道路標識とマップの新しい機能\n\n・ 改良された見て分かりやすいルート準備\n\n・ 住所検索などコンテキストメニューの大幅改良\n\n・ 等々… "</string>
|
||||
<string name="shared_string_move_up">上に移動</string>
|
||||
<string name="shared_string_move_down">下に移動</string>
|
||||
<string name="finish_navigation">ナビゲーションの終了</string>
|
||||
<string name="avoid_road">使用しない道路</string>
|
||||
<string name="storage_directory_readonly_desc">現在選択されているデータ保存フォルダーは読み取り専用です。保存フォルダーは一時的に内部メモリに設定されました。書き込み可能なストレージのフォルダを選択してください。</string>
|
||||
<string name="storage_directory_shared">共有メモリ</string>
|
||||
<string name="full_report">完全なレポート</string>
|
||||
<string name="recalculate_route">ルートの再計算</string>
|
||||
<string name="open_street_map_login_and_pass">OpenStreetMapのログイン名とパスワード</string>
|
||||
<string name="donations">寄付</string>
|
||||
<string name="osm_user_stat">編集 %1$s, ランク %2$s, 総編集数 %3$s</string>
|
||||
<string name="osm_editors_ranking">OSM編集者ランキング</string>
|
||||
<string name="osm_live_user_public_name">パブリック名</string>
|
||||
<string name="osm_live_hide_user_name">レポートに自分の名前を表示しない</string>
|
||||
<string name="osm_live_support_region">サポート地域</string>
|
||||
<string name="osm_live_month_cost">月間コスト</string>
|
||||
<string name="osm_live_month_cost_desc">毎月の支払額</string>
|
||||
<string name="osm_live_active">アクティブ</string>
|
||||
<string name="osm_live_not_active">非アクティブ</string>
|
||||
<string name="osm_live_enter_email">有効な電子メールアドレスを入力してください</string>
|
||||
<string name="osm_live_enter_user_name">パブリック名を入力してください</string>
|
||||
<string name="osm_live_thanks">ライブ更新を購読いただきありがとうございます!</string>
|
||||
<string name="osm_live_region_desc">あなたの寄付の一部がその地域のマップ更新に貢献したユーザーへ還元されます</string>
|
||||
<string name="select_map_marker">マップマーカーの選択</string>
|
||||
<string name="map_markers_other">その他のマーカー</string>
|
||||
<string name="upload_anonymously">匿名でアップロード</string>
|
||||
<string name="show_transparency_seekbar">透過タイプシークバーを表示</string>
|
||||
<string name="download_files_error_not_enough_space">空き容量が足りません! 一時ファイルの置き場に {3}MB、維持のため {1}MBが必要で、現在利用可能なのは {2}MBです。</string>
|
||||
<string name="download_files_question_space_with_temp">{0}個のファイルを本当にダウンロードしますか? 一時的に {3}MB 維持のために {1}MB が必要です。現在利用可能なのは {2}MBです。</string>
|
||||
<string name="upload_osm_note_description">OpenStreetMap.orgプロファイルを使用する場合は、OSMメモを匿名でアップロードできます。</string>
|
||||
<string name="upload_osm_note">OSMメモをアップロード</string>
|
||||
<string name="map_marker_1st">最初のマップマーカー</string>
|
||||
<string name="map_marker_2nd">2番目のマップマーカー</string>
|
||||
<string name="shared_string_toolbar">ツールバー</string>
|
||||
<string name="shared_string_widgets">ウィジェット</string>
|
||||
<string name="add_points_to_map_markers_q">マップマーカーにすべての地点を追加しますか?</string>
|
||||
<string name="shared_string_add_to_map_markers">マップマーカーに追加</string>
|
||||
<string name="select_map_markers">マップマーカーを選択</string>
|
||||
</resources>
|
||||
|
|
|
@ -641,7 +641,7 @@
|
|||
<string name="osm_editing_plugin_description">Umożliwia wprowadzanie zmian w zasobach OSM, takich jak dodawanie lub modyfikowanie obiektów POI, zgłaszanie i komentowanie błędów oraz wysyłanie zarejestrowanych plików GPX. OSM jest publicznym projektem tworzenia map przez społeczność. Więcej szczegółów pod adresem http://openstreetmap.org. Aktywny udział jest mile widziany, modyfikacji można dokonywać bezpośrednio z poziomu programu po wprowadzeniu danych uwierzytelniających OSM.</string>
|
||||
<string name="vector_maps_may_display_faster_on_some_devices">Mapy wektorowe mogą wyświetlać się szybciej. Może nie działać dobrze na niektórych urządzeniach.</string>
|
||||
|
||||
<string name="play_commands_of_currently_selected_voice">Odtwarza komunikaty wybranym głosem nawigatora</string>
|
||||
<string name="play_commands_of_currently_selected_voice">Odtwórz komendy w wybranym głosie</string>
|
||||
<string name="debugging_and_development">Rozwój OsmAnd</string>
|
||||
<string name="native_rendering">Renderowanie natywne</string>
|
||||
|
||||
|
@ -649,7 +649,7 @@
|
|||
|
||||
<string name="send_files_to_osm">Wysłać pliki GPX do OSM?</string>
|
||||
<string name="gpx_visibility_txt">Widoczność</string>
|
||||
<string name="gpx_tags_txt">Etykiety</string>
|
||||
<string name="gpx_tags_txt">Tagi</string>
|
||||
<string name="gpx_description_txt">Opis</string>
|
||||
<string name="validate_gpx_upload_name_pwd">Proszę podać nazwę użytkownika OSM oraz hasło aby wysłać pliki GPX.</string>
|
||||
<string name="default_buttons_support">Wsparcie</string>
|
||||
|
@ -1920,7 +1920,7 @@
|
|||
<string name="m_s">m/s</string>
|
||||
|
||||
<string name="shared_string_trip_recording">Nagrywanie trasy</string>
|
||||
<string name="simulate_your_location_descr">Symuluje lokalizację za pomocą wyznaczonej trasy lub zarejestrowanego śladu GPX</string>
|
||||
<string name="simulate_your_location_descr">Symuluj używając wyliczonej trasy lub nagranej trasy GPX</string>
|
||||
<string name="downloads_left_template">pozostało %1$s pobrań</string>
|
||||
|
||||
<string name="regions">Regiony</string>
|
||||
|
|
|
@ -1921,8 +1921,8 @@
|
|||
<string name="rendering_category_others">Diğer harita özellikleri</string>
|
||||
<string name="map_widget_appearance_rem">Kalan unsurlar</string>
|
||||
<string name="search_radius_proximity">Yakınında</string>
|
||||
<string name="osmo_no_connection_msg">Sunucu OSMO bağlanamıyor:\n- Internet bağlantınızı kontrol;\n- Ayarlarını kontrol;\n- Check out bizim Twitter: https://twitter.com/OsMomobi</string>
|
||||
<string name="anonymous_user_hint">Bir anonim kullanıcı olamaz:\n- Grupları oluşturmak;\n- Sunucuyla grupları ve cihazları senkronize;\n- Web sitesinde kişisel pano grupları ve aygıtları yönetmek.</string>
|
||||
<string name="osmo_no_connection_msg">Osmo hizmeti kullanılabilir değil:\n- Bağlantısını kontrol edin;\n- Ayarları kontrol edin;\n- Check out bizim Twitter: https://twitter.com/OsMomobi</string>
|
||||
<string name="anonymous_user_hint">Bir anonim kullanıcı olamaz:\n- Grupları oluşturmak;\n- Sunucuyla grupları ve cihazları senkronize;\n- Özel ofiste grupları ve aygıtları yönetmek.</string>
|
||||
<string name="anonymous_user">Anonim Kullanıcı</string>
|
||||
<string name="logged_as">%1$s olarak giriş</string>
|
||||
<string name="speed_limit_exceed_message">Bir sesli uyarı alırsınız yukarıda seç hız limiti tolerans marjı.</string>
|
||||
|
@ -1965,7 +1965,7 @@
|
|||
<string name="rendering_value_browse_map_name">Haritaya göz at</string>
|
||||
<string name="rendering_attr_coloredBuildings_name">Binalar türüne göre renk kodu</string>
|
||||
<string name="osmo_leave_confirmation_msg">Grup %1$s ayrılmak istiyor musunuz?</string>
|
||||
<string name="osmo_specify_tracker_id">Lütfen belirtin</string>
|
||||
<string name="osmo_specify_tracker_id">Lütfen kimlik belirtin</string>
|
||||
<string name="keep_navigation_service">Devam et</string>
|
||||
<string name="map_preferred_locale_descr">Harita üzerinde etiket için tercih edilen dil (yerel adlarıyla İngilizce veya geçecektir mevcut değilse)</string>
|
||||
<string name="map_preferred_locale">Harita Tercih dili</string>
|
||||
|
@ -1988,7 +1988,7 @@
|
|||
<string name="rendering_attr_showCycleRoutes_name">Döngüsü yolları göster</string>
|
||||
<string name="osmo_auth_error_short">Yetkilendirme başarısız oldu</string>
|
||||
<string name="osmo_auth_error">OsMo yetkilendirme hata oluştu: %1$s.\nAşağı bir geçici olarak hizmet olabilir veya kayıt süresi.\nYeni kayıt devam etmek istiyor musunuz?</string>
|
||||
<string name="osmo_group_information_desc">" -Bir grup oluşturma ona bir isim vermek ve açıklama doldurunuz\n- Uygulama grubundan, sadece Basit türü ile oluşturulan web sitesinde daha fazla okumak https://osmo.mobi/g/new\n - Bir grup yönetebilecek bir web sitesi aracılığıyla, parça ve mevcut tüm noktalarını yerleştirmek için\n - Bu POI grubu değilse Biz grubun yalnızca bir kullanıcı kullanımını uygun bulmuyorum\n - Özel gruplar 8 kişilik sınırlıdır\n - Detaylı şartları her zaman OsMo.mobi web sitesinde bir var\n Eğer özel şartları gerekiyorsa - - irtibata geçiniz desteği: osmo.mobi@gmail.com "</string>
|
||||
<string name="osmo_group_information_desc">" -Tüm oluşturulan grupları genel! Anonim olmak istiyorsan, izci kimlikleri üzerinden doğrudan aygıtlarını bağlayın.\n-Özel gruplar için 8 kişi sınırlıdır\nHareketsizlik ya da 2 hafta için sadece 1 kişi faaliyet-grup-ecek var olmak silmek.\n-Sadece davet, ama kontrol grubuna yönetici konsolu için gitmek gerekir gibi grup giriş, sınırlayabilirsiniz.\n-Bir grup oluşturun, ancak diğer koşulları ile lütfen http://osmo.mobi başvurun gerekiyorsa"</string>
|
||||
<string name="update">Bütün Güncellemler</string>
|
||||
<string name="only_download_over_wifi">Sadece WiFi üzerinden İndir</string>
|
||||
<string name="live_update">Canlı güncelleştirme</string>
|
||||
|
@ -2107,5 +2107,4 @@
|
|||
<string name="storage_directory_shared">Paylaşılan bellek</string>
|
||||
<string name="shared_string_topbar">Topbar</string>
|
||||
<string name="recalculate_route">Rota yeniden hesaplama</string>
|
||||
<string name="report">Rapor</string>
|
||||
</resources>
|
||||
|
|
|
@ -2153,5 +2153,4 @@
|
|||
<string name="report">報告</string>
|
||||
<string name="file_name_containes_illegal_char">檔案名稱含有違反規則的字符</string>
|
||||
<string name="storage_permission_restart_is_required">現在應用程式允許寫入外部記憶體。應用程式需要手動重新啟動。</string>
|
||||
<string name="release_2_3">" • OSM實況。支援地圖貢獻者和開發者和每小時獲得地圖更新。\n\n• 地圖標記。一種新的方式以快速在地圖上選擇地點。\n\n• 更詳細的 OSM 地圖與國家具體的公路標誌和許多新的地圖功能。\n\n• 改善外觀和感覺的路線準備。\n\n• 在地圖下拉選單中有許多改善,如下拉地址查找。\n\n以及更多… "</string>
|
||||
</resources>
|
||||
|
|
|
@ -193,8 +193,8 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
|
|||
disconnectAllGroupUsers(group);
|
||||
disableGroupTracks(group, group.groupTracks);
|
||||
disableGroupTracks(group, Collections.singleton(group.name + " points.gpx"));
|
||||
processed = true;
|
||||
}
|
||||
processed = true;
|
||||
}
|
||||
} else if (command.equalsIgnoreCase("GROUP_CONNECT")) {
|
||||
group = storage.getGroup(gid);
|
||||
|
|
|
@ -1043,7 +1043,7 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
|
|||
@Override
|
||||
public void run() {
|
||||
String top = OsMoGroupsActivity.this.operation;
|
||||
if (operation != null && operation.equals(top)) {
|
||||
if (top.equals(operation) || (operation != null && operation.equals(top))) {
|
||||
hideProgressBar();
|
||||
}
|
||||
if (joinGroup && (operation != null && operation.startsWith("GROUP_CONNECT"))) {
|
||||
|
|
|
@ -29,7 +29,7 @@ public class OsMoTracker implements OsMoReactor {
|
|||
integerFormat.setDecimalFormatSymbols(symbols);
|
||||
}
|
||||
|
||||
private ConcurrentLinkedQueue<Location> bufferOfLocations = new ConcurrentLinkedQueue<>();
|
||||
private ConcurrentLinkedQueue<Location> bufferOfLocations = new ConcurrentLinkedQueue<Location>();
|
||||
private OsMoService service;
|
||||
private int locationsSent = 0;
|
||||
private OsmoTrackerListener trackerListener = null;
|
||||
|
@ -37,14 +37,16 @@ public class OsMoTracker implements OsMoReactor {
|
|||
private Location lastBufferLocation;
|
||||
private OsmandPreference<Integer> pref;
|
||||
private String sessionURL;
|
||||
private Map<String, OsMoDevice> trackingDevices = new java.util.concurrent.ConcurrentHashMap<>();
|
||||
private Map<String, OsMoDevice> trackingDevices = new java.util.concurrent.ConcurrentHashMap<String, OsMoGroupsStorage.OsMoDevice>();
|
||||
private OsmandPreference<Boolean> stateSendLocation;
|
||||
protected static final Log LOG = PlatformUtil.getLog(OsMoTracker.class);
|
||||
|
||||
public interface OsmoTrackerListener {
|
||||
void locationChange(String trackerId, Location location);
|
||||
|
||||
public void locationChange(String trackerId, Location location);
|
||||
}
|
||||
|
||||
|
||||
public OsMoTracker(OsMoService service, OsmandPreference<Integer> interval,
|
||||
OsmandPreference<Boolean> stateSendLocation) {
|
||||
this.service = service;
|
||||
|
@ -129,7 +131,7 @@ public class OsMoTracker implements OsMoReactor {
|
|||
cmd.append("C");
|
||||
integerFormat.format(loc.getBearing(), cmd, new FieldPosition(cmd.length()));
|
||||
}
|
||||
if (loc.getTime() != 0) {
|
||||
if ((System.currentTimeMillis() - loc.getTime()) > 30000 && loc.getTime() != 0) {
|
||||
cmd.append("T");
|
||||
integerFormat.format(loc.getTime(), cmd, new FieldPosition(cmd.length()));
|
||||
}
|
||||
|
@ -178,56 +180,55 @@ public class OsMoTracker implements OsMoReactor {
|
|||
|
||||
@Override
|
||||
public boolean acceptCommand(String command, String tid, String data, JSONObject obj, OsMoThread thread) {
|
||||
switch (command) {
|
||||
case "LISTEN":
|
||||
return true;
|
||||
case "UNLISTEN":
|
||||
return true;
|
||||
case "TRACKER_SESSION_CLOSE":
|
||||
return true;
|
||||
case "TRACKER_SESSION_OPEN":
|
||||
try {
|
||||
sessionURL = obj.getString("url");
|
||||
} catch (JSONException e) {
|
||||
service.showErrorMessage(e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
return true;
|
||||
case "LT":
|
||||
double lat = 0;
|
||||
double lon = 0;
|
||||
double speed = 0;
|
||||
int k = 0;
|
||||
for (int i = 1; i <= data.length(); i++) {
|
||||
boolean separator = i == data.length() ||
|
||||
!(Character.isDigit(data.charAt(i)) ||
|
||||
data.charAt(i) == ':' || data.charAt(i) == '.' || data.charAt(i) == '-');
|
||||
if (separator) {
|
||||
char ch = data.charAt(k);
|
||||
String vl = data.substring(k + 1, i);
|
||||
if (ch == 'L') {
|
||||
int l = vl.indexOf(":");
|
||||
lat = Double.parseDouble(vl.substring(0, l));
|
||||
lon = Double.parseDouble(vl.substring(l + 1));
|
||||
} else if (ch == 'S') {
|
||||
speed = Double.parseDouble(vl);
|
||||
}
|
||||
k = i;
|
||||
if (command.equals("LISTEN")) {
|
||||
return true;
|
||||
} else if (command.equals("UNLISTEN")) {
|
||||
return true;
|
||||
} else if (command.equals("TRACKER_SESSION_CLOSE")) {
|
||||
return true;
|
||||
} else if (command.equals("TRACKER_SESSION_OPEN")) {
|
||||
try {
|
||||
sessionURL = obj.getString("url");
|
||||
} catch (JSONException e) {
|
||||
service.showErrorMessage(e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
return true;
|
||||
} else if (command.equals("LT")) {
|
||||
double lat = 0;
|
||||
double lon = 0;
|
||||
double speed = 0;
|
||||
int k = 0;
|
||||
for (int i = 1; i <= data.length(); i++) {
|
||||
boolean separator = i == data.length() ||
|
||||
!(Character.isDigit(data.charAt(i)) ||
|
||||
data.charAt(i) == ':' || data.charAt(i) == '.' || data.charAt(i) == '-');
|
||||
if (separator) {
|
||||
char ch = data.charAt(k);
|
||||
String vl = data.substring(k + 1, i);
|
||||
if (ch == 'L') {
|
||||
int l = vl.indexOf(":");
|
||||
lat = Double.parseDouble(vl.substring(0, l));
|
||||
lon = Double.parseDouble(vl.substring(l + 1));
|
||||
} else if (ch == 'S') {
|
||||
speed = Double.parseDouble(vl);
|
||||
}
|
||||
k = i;
|
||||
}
|
||||
if (lat != 0 || lon != 0) {
|
||||
Location loc = new Location("osmo");
|
||||
loc.setTime(System.currentTimeMillis());
|
||||
loc.setLatitude(lat);
|
||||
loc.setLongitude(lon);
|
||||
if (speed > 0) {
|
||||
loc.setSpeed((float) speed);
|
||||
}
|
||||
if (trackerListener != null) {
|
||||
trackerListener.locationChange(tid, loc);
|
||||
}
|
||||
}
|
||||
if (lat != 0 || lon != 0) {
|
||||
Location loc = new Location("osmo");
|
||||
loc.setTime(System.currentTimeMillis());
|
||||
loc.setLatitude(lat);
|
||||
loc.setLongitude(lon);
|
||||
if (speed > 0) {
|
||||
loc.setSpeed((float) speed);
|
||||
}
|
||||
return true;
|
||||
if (trackerListener != null) {
|
||||
trackerListener.locationChange(tid, loc);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
1
api-test/.gitignore
vendored
1
api-test/.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
/build
|
|
@ -1,27 +0,0 @@
|
|||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
compileSdkVersion 23
|
||||
buildToolsVersion "23.0.1"
|
||||
|
||||
defaultConfig {
|
||||
applicationId "net.osmand.osmandapitestapp"
|
||||
minSdkVersion 9
|
||||
targetSdkVersion 23
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||
testCompile 'junit:junit:4.12'
|
||||
compile 'com.android.support:appcompat-v7:23.2.1'
|
||||
compile 'com.android.support:design:23.2.1'
|
||||
}
|
17
api-test/proguard-rules.pro
vendored
17
api-test/proguard-rules.pro
vendored
|
@ -1,17 +0,0 @@
|
|||
# Add project specific ProGuard rules here.
|
||||
# By default, the flags in this file are appended to flags specified
|
||||
# in /Users/admin/Library/Android/sdk/tools/proguard/proguard-android.txt
|
||||
# You can edit the include path and order by changing the proguardFiles
|
||||
# directive in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# Add any project specific keep options here:
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
|
@ -1,23 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest package="net.osmand.osmandapitestapp"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/AppTheme.NoActionBar">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
|
@ -1,353 +0,0 @@
|
|||
package net.osmand.osmandapitestapp;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
public static final int REQUEST_OSMAND_API = 101;
|
||||
|
||||
public static final String API_CMD_SHOW_GPX = "show_gpx";
|
||||
public static final String API_CMD_NAVIGATE_GPX = "navigate_gpx";
|
||||
|
||||
public static final String API_CMD_NAVIGATE = "navigate";
|
||||
|
||||
public static final String API_CMD_RECORD_AUDIO = "record_audio";
|
||||
public static final String API_CMD_RECORD_VIDEO = "record_video";
|
||||
public static final String API_CMD_RECORD_PHOTO = "record_photo";
|
||||
public static final String API_CMD_STOP_AV_REC = "stop_av_rec";
|
||||
|
||||
public static final String API_CMD_GET_INFO = "get_info";
|
||||
|
||||
public static final String API_CMD_ADD_FAVORITE = "add_favorite";
|
||||
public static final String API_CMD_ADD_MAP_MARKER = "add_map_marker";
|
||||
|
||||
public static final String API_CMD_START_GPX_REC = "start_gpx_rec";
|
||||
public static final String API_CMD_STOP_GPX_REC = "stop_gpx_rec";
|
||||
|
||||
public static final String API_CMD_SUBSCRIBE_VOICE_NOTIFICATIONS = "subscribe_voice_notifications";
|
||||
|
||||
public static final String PARAM_NAME = "name";
|
||||
public static final String PARAM_DESC = "desc";
|
||||
public static final String PARAM_CATEGORY = "category";
|
||||
public static final String PARAM_LAT = "lat";
|
||||
public static final String PARAM_LON = "lon";
|
||||
public static final String PARAM_COLOR = "color";
|
||||
public static final String PARAM_VISIBLE = "visible";
|
||||
|
||||
public static final String PARAM_PATH = "path";
|
||||
public static final String PARAM_DATA = "data";
|
||||
public static final String PARAM_FORCE = "force";
|
||||
|
||||
public static final String PARAM_START_NAME = "start_name";
|
||||
public static final String PARAM_DEST_NAME = "dest_name";
|
||||
public static final String PARAM_START_LAT = "start_lat";
|
||||
public static final String PARAM_START_LON = "start_lon";
|
||||
public static final String PARAM_DEST_LAT = "dest_lat";
|
||||
public static final String PARAM_DEST_LON = "dest_lon";
|
||||
public static final String PARAM_PROFILE = "profile";
|
||||
|
||||
public static final String PARAM_ETA = "eta";
|
||||
public static final String PARAM_TIME_LEFT = "time_left";
|
||||
public static final String PARAM_DISTANCE_LEFT = "time_distance_left";
|
||||
|
||||
public static final int RESULT_CODE_OK = 0;
|
||||
public static final int RESULT_CODE_ERROR_UNKNOWN = -1;
|
||||
public static final int RESULT_CODE_ERROR_NOT_IMPLEMENTED = -2;
|
||||
public static final int RESULT_CODE_ERROR_PLUGIN_INACTIVE = 10;
|
||||
public static final int RESULT_CODE_ERROR_GPX_NOT_FOUND = 20;
|
||||
public static final int RESULT_CODE_ERROR_INVALID_PROFILE = 30;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
Button btn = (Button) findViewById(R.id.btn_add_favorite);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_ADD_FAVORITE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
btn = (Button) findViewById(R.id.btn_add_map_marker);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_ADD_MAP_MARKER);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
btn = (Button) findViewById(R.id.btn_start_audio_rec);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_RECORD_AUDIO);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
btn = (Button) findViewById(R.id.btn_start_video_rec);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_RECORD_VIDEO);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
btn = (Button) findViewById(R.id.btn_stop_rec);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_STOP_AV_REC);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
btn = (Button) findViewById(R.id.btn_take_photo);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_RECORD_PHOTO);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
btn = (Button) findViewById(R.id.btn_start_gpx_rec);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_START_GPX_REC);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
btn = (Button) findViewById(R.id.btn_stop_gpx_rec);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_STOP_GPX_REC);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
btn = (Button) findViewById(R.id.btn_show_gpx);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_SHOW_GPX);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
btn = (Button) findViewById(R.id.btn_navigate_gpx);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_NAVIGATE_GPX);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
btn = (Button) findViewById(R.id.btn_navigate);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_NAVIGATE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
btn = (Button) findViewById(R.id.btn_get_info);
|
||||
if (btn != null) {
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
exec(API_CMD_GET_INFO);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public void exec(String command) {
|
||||
Uri uri = null;
|
||||
Intent intent = null;
|
||||
|
||||
String lat = "44.98062";
|
||||
String lon = "34.09258";
|
||||
String destLat = "44.97799";
|
||||
String destLon = "34.10286";
|
||||
String gpxName = "xxx.gpx";
|
||||
|
||||
try {
|
||||
|
||||
if (API_CMD_GET_INFO.equals(command)) {
|
||||
uri = Uri.parse("osmand.api://get_info");
|
||||
}
|
||||
|
||||
if (API_CMD_NAVIGATE.equals(command)) {
|
||||
// test navigate
|
||||
uri = Uri.parse("osmand.api://navigate" +
|
||||
"?start_lat=" + lat + "&start_lon=" + lon + "&start_name=Start" +
|
||||
"&dest_lat=" + destLat + "&dest_lon=" + destLon + "&dest_name=Finish" +
|
||||
"&profile=bicycle");
|
||||
}
|
||||
|
||||
if (API_CMD_RECORD_AUDIO.equals(command)) {
|
||||
// test record audio
|
||||
uri = Uri.parse("osmand.api://record_audio?lat=" + lat + "&lon=" + lon);
|
||||
}
|
||||
if (API_CMD_RECORD_VIDEO.equals(command)) {
|
||||
// test record video
|
||||
uri = Uri.parse("osmand.api://record_video?lat=" + lat + "&lon=" + lon);
|
||||
}
|
||||
if (API_CMD_RECORD_PHOTO.equals(command)) {
|
||||
// test take photo
|
||||
uri = Uri.parse("osmand.api://record_photo?lat=" + lat + "&lon=" + lon);
|
||||
}
|
||||
if (API_CMD_STOP_AV_REC.equals(command)) {
|
||||
// test record video
|
||||
uri = Uri.parse("osmand.api://stop_av_rec");
|
||||
}
|
||||
|
||||
if (API_CMD_ADD_MAP_MARKER.equals(command)) {
|
||||
// test marker
|
||||
uri = Uri.parse("osmand.api://add_map_marker?lat=" + lat + "&lon=" + lon + "&name=Marker");
|
||||
}
|
||||
|
||||
if (API_CMD_ADD_FAVORITE.equals(command)) {
|
||||
// test favorite
|
||||
uri = Uri.parse("osmand.api://add_favorite?lat=" + lat + "&lon=" + lon + "&name=Favorite&desc=Description&category=test2&color=red&visible=true");
|
||||
}
|
||||
|
||||
if (API_CMD_START_GPX_REC.equals(command)) {
|
||||
// test start gpx recording
|
||||
uri = Uri.parse("osmand.api://start_gpx_rec");
|
||||
}
|
||||
|
||||
if (API_CMD_STOP_GPX_REC.equals(command)) {
|
||||
// test stop gpx recording
|
||||
uri = Uri.parse("osmand.api://stop_gpx_rec");
|
||||
}
|
||||
|
||||
if (API_CMD_SHOW_GPX.equals(command)) {
|
||||
// test show gpx (path)
|
||||
//File gpx = new File(app.getAppPath(IndexConstants.GPX_INDEX_DIR), gpxName);
|
||||
//uri = Uri.parse("osmand.api://show_gpx?path=" + URLEncoder.encode(gpx.getAbsolutePath(), "UTF-8"));
|
||||
|
||||
// test show gpx (data)
|
||||
uri = Uri.parse("osmand.api://show_gpx");
|
||||
intent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
//intent.putExtra("data", AndroidUtils.getFileAsString(
|
||||
// new File(app.getAppPath(IndexConstants.GPX_INDEX_DIR), gpxName)));
|
||||
}
|
||||
|
||||
if (API_CMD_NAVIGATE_GPX.equals(command)) {
|
||||
// test navigate gpx (path)
|
||||
//File gpx = new File(app.getAppPath(IndexConstants.GPX_INDEX_DIR), gpxName);
|
||||
//uri = Uri.parse("osmand.api://navigate_gpx?force=true&path=" + URLEncoder.encode(gpx.getAbsolutePath(), "UTF-8"));
|
||||
|
||||
// test navigate gpx (data)
|
||||
uri = Uri.parse("osmand.api://navigate_gpx?force=true");
|
||||
intent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
//intent.putExtra("data", AndroidUtils.getFileAsString(
|
||||
// new File(app.getAppPath(IndexConstants.GPX_INDEX_DIR), gpxName)));
|
||||
}
|
||||
|
||||
if (intent == null && uri != null) {
|
||||
intent = new Intent(Intent.ACTION_VIEW, uri);
|
||||
}
|
||||
|
||||
if (intent != null) {
|
||||
startActivityForResult(intent, REQUEST_OSMAND_API);
|
||||
/*
|
||||
// setup the Intent to deep link into Android Market
|
||||
Uri marketUri = Uri.parse("market://search?q=pname:net.osmand");
|
||||
Intent marketIntent = new Intent(Intent.ACTION_VIEW).setData(marketUri);
|
||||
|
||||
PackageManager pm = getPackageManager();
|
||||
startActivity(pm.queryIntentActivities(intent, 0).size() == 0 ?
|
||||
intent : marketIntent);
|
||||
*/
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
Log.e("Osmand API", "Error", e);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
|
||||
.setAction("Action", null).show();
|
||||
*/
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == REQUEST_OSMAND_API) {
|
||||
View view = findViewById(R.id.main_view);
|
||||
if (view != null) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("ResultCode=").append(resultCodeStr(resultCode));
|
||||
Bundle extras = data.getExtras();
|
||||
if (extras != null && extras.size() > 0) {
|
||||
for (String key : data.getExtras().keySet()) {
|
||||
Object val = extras.get(key);
|
||||
if (sb.length() > 0) {
|
||||
sb.append("\n");
|
||||
}
|
||||
sb.append(key).append("=").append(val);
|
||||
}
|
||||
}
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setMessage(sb.toString());
|
||||
builder.setPositiveButton("OK", null);
|
||||
builder.create().show();
|
||||
}
|
||||
} else {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
}
|
||||
|
||||
private String resultCodeStr(int resultCode) {
|
||||
switch (resultCode) {
|
||||
case RESULT_CODE_OK:
|
||||
return "OK";
|
||||
case RESULT_CODE_ERROR_UNKNOWN:
|
||||
return "Unknown error";
|
||||
case RESULT_CODE_ERROR_NOT_IMPLEMENTED:
|
||||
return "Feature is not implemented";
|
||||
case RESULT_CODE_ERROR_GPX_NOT_FOUND:
|
||||
return "GPX not found";
|
||||
case RESULT_CODE_ERROR_INVALID_PROFILE:
|
||||
return "Invalid profile";
|
||||
case RESULT_CODE_ERROR_PLUGIN_INACTIVE:
|
||||
return "Plugin inactive";
|
||||
}
|
||||
return "" + resultCode;
|
||||
}
|
||||
}
|
|
@ -1,165 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.design.widget.CoordinatorLayout
|
||||
android:id="@+id/main_view"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context="net.osmand.osmandapitestapp.MainActivity">
|
||||
|
||||
<android.support.design.widget.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/AppTheme.AppBarOverlay">
|
||||
|
||||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
app:popupTheme="@style/AppTheme.PopupOverlay"/>
|
||||
|
||||
</android.support.design.widget.AppBarLayout>
|
||||
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||
tools:context="net.osmand.osmandapitestapp.MainActivity"
|
||||
tools:showIn="@layout/activity_main">
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:gravity="center"
|
||||
android:text="My places"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_add_favorite"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Add favorite"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_add_map_marker"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Add map marker"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:gravity="center"
|
||||
android:text="Audio/video plugin"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_start_audio_rec"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Start audio recording"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_start_video_rec"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Start video recording"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_stop_rec"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Stop recording"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_take_photo"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Take photo"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:gravity="center"
|
||||
android:text="GPX recording"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_start_gpx_rec"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Start gpx recording"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_stop_gpx_rec"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Stop gpx recording"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:gravity="center"
|
||||
android:text="GPX display/navigation"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_show_gpx"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Show gpx"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_navigate_gpx"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Navigate gpx"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:gravity="center"
|
||||
android:text="Navigation"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_navigate"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Navigate"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_get_info"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Get info"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
Binary file not shown.
Before Width: | Height: | Size: 3.3 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 7.5 KiB |
Binary file not shown.
Before Width: | Height: | Size: 10 KiB |
|
@ -1,9 +0,0 @@
|
|||
<resources>>
|
||||
|
||||
<style name="AppTheme.NoActionBar">
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowNoTitle">true</item>
|
||||
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
|
||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||
</style>
|
||||
</resources>
|
|
@ -1,6 +0,0 @@
|
|||
<resources>
|
||||
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
|
||||
(such as screen margins) for screens with more than 820dp of available width. This
|
||||
would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
|
||||
<dimen name="activity_horizontal_margin">64dp</dimen>
|
||||
</resources>
|
|
@ -1,5 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="colorPrimary">#ff8f00</color>
|
||||
<color name="colorPrimaryDark">#e68200</color>
|
||||
</resources>
|
|
@ -1,6 +0,0 @@
|
|||
<resources>
|
||||
<!-- Default screen margins, per the Android Design guidelines. -->
|
||||
<dimen name="activity_horizontal_margin">16dp</dimen>
|
||||
<dimen name="activity_vertical_margin">16dp</dimen>
|
||||
<dimen name="fab_margin">16dp</dimen>
|
||||
</resources>
|
|
@ -1,4 +0,0 @@
|
|||
<resources>
|
||||
<string name="app_name">Osmand API Test App</string>
|
||||
<string name="action_settings">Settings</string>
|
||||
</resources>
|
|
@ -1,19 +0,0 @@
|
|||
<resources>
|
||||
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.NoActionBar">
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowNoTitle">true</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>
|
||||
|
||||
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>
|
||||
|
||||
</resources>
|
Loading…
Reference in a new issue