This commit is contained in:
Tabaqui 2012-05-25 23:12:57 +02:00
commit 0441b77952
50 changed files with 1489 additions and 891 deletions

View file

@ -16,7 +16,8 @@ public class ToDoConstants {
// Polish UI with new building address search ...(Better completely new address search) // Polish UI with new building address search ...(Better completely new address search)
// Search for city in all indexes // Search for city in all indexes
// Test GeoIndexActivity // Test GeoIndexActivity
// TODO images in the map index ? // TODO images in the map index ?
// Plugin OsmEditingPlugin Send GPX files
// == Osmand application (TODO 127) == // == Osmand application (TODO 127) ==

View file

@ -416,9 +416,9 @@
<filter minzoom="13" textSize="12" textColor="#6699cc" textWrapWidth="20" tag="landuse" value="reservoir"/> <filter minzoom="13" textSize="12" textColor="#6699cc" textWrapWidth="20" tag="landuse" value="reservoir"/>
<!-- Railroad --> <!-- Railroad -->
<filter minzoom="14" maxzoom="14" textSize="12" textHaloRadius="1" textColor="#6666ff" textBold="true" textDy="7" tag="railway" value="station"/> <filter minzoom="14" maxzoom="14" textSize="12" textColor="#6666ff" textHaloRadius="1" textBold="true" textDy="7" tag="railway" value="station"/>
<filter minzoom="15" textSize="13" textColor="#6666ff" textHaloRadius="1" textBold="true" textDy="7" tag="railway" value="station"/> <filter minzoom="15" textSize="13" textColor="#6666ff" textHaloRadius="1" textBold="true" textDy="7" tag="railway" value="station"/>
<filter minzoom="14" maxzoom="14" textSize="12" textColor="#6666ff" textHaloRadius="1" textDy="7" tag="railway" value="halt"/> <filter minzoom="14" maxzoom="14" textSize="12" textColor="#6666ff" textHaloRadius="1" textDy="7" tag="railway" value="halt"/>
<filter minzoom="15" textSize="12" textColor="#6666ff" textHaloRadius="1" textDy="7" tag="railway" value="halt"/> <filter minzoom="15" textSize="12" textColor="#6666ff" textHaloRadius="1" textDy="7" tag="railway" value="halt"/>
<filter minzoom="15" textSize="12" textColor="#6666ff" textHaloRadius="1" textDy="7" tag="railway" value="tram_stop"/> <filter minzoom="15" textSize="12" textColor="#6666ff" textHaloRadius="1" textDy="7" tag="railway" value="tram_stop"/>
@ -1049,7 +1049,7 @@
<filter minzoom="13" maxzoom="13" strokeWidth="6"/> <filter minzoom="13" maxzoom="13" strokeWidth="6"/>
<!-- Bridges --> <!-- Bridges -->
<filter layer="1" color="#000000" shadowRadius="0" cap="BUTT" cap_2="SQUARE"> <filter layer="1" color="#000000" shadowRadius="0" cap="BUTT" cap_2="SQUARE">
<filter minzoom="13" maxzoom="14" strokeWidth="8" strokeWidth_2="6"/> <filter minzoom="14" maxzoom="14" strokeWidth="8" strokeWidth_2="6"/>
<filter minzoom="15" maxzoom="15" strokeWidth="10" strokeWidth_2="8"/> <filter minzoom="15" maxzoom="15" strokeWidth="10" strokeWidth_2="8"/>
<filter minzoom="16" maxzoom="16" strokeWidth="12" strokeWidth_2="10"/> <filter minzoom="16" maxzoom="16" strokeWidth="12" strokeWidth_2="10"/>
<filter minzoom="17" maxzoom="17" strokeWidth="15" strokeWidth_2="13"/> <filter minzoom="17" maxzoom="17" strokeWidth="15" strokeWidth_2="13"/>
@ -1072,15 +1072,10 @@
<filter tag="highway" value="unclassified"/> <filter tag="highway" value="unclassified"/>
<filter tag="highway" value="residential"/> <filter tag="highway" value="residential"/>
<groupFilter color="#ffffff" color_2="#ffffff" shadowRadius="1" cap="ROUND"> <groupFilter color="#ffffff" color_2="#ffffff" shadowRadius="1" cap="ROUND">
<filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="3">
<filter nightMode="true" color="#9F9F9F" color_2="#9F9F9F"/>
</filter>
<filter minzoom="13" maxzoom="13" strokeWidth="2" shadowRadius="0">
<filter nightMode="true" color="#9F9F9F" color_2="#9F9F9F"/>
</filter>
<!-- Bridges --> <!-- Bridges -->
<filter layer="1" color="#000000" shadowRadius="0" cap="BUTT" cap_2="SQUARE"> <filter layer="1" color="#000000" shadowRadius="0" cap="BUTT" cap_2="SQUARE">
<filter minzoom="14" maxzoom="14" strokeWidth="8" strokeWidth_2="6"/> <filter hmRendered="true" minzoom="14" maxzoom="14" strokeWidth="8" strokeWidth_2="6"/>
<filter minzoom="14" maxzoom="14" strokeWidth="5" strokeWidth_2="3"/>
<filter minzoom="15" maxzoom="15" strokeWidth="10" strokeWidth_2="8"/> <filter minzoom="15" maxzoom="15" strokeWidth="10" strokeWidth_2="8"/>
<filter minzoom="16" maxzoom="16" strokeWidth="12" strokeWidth_2="10"/> <filter minzoom="16" maxzoom="16" strokeWidth="12" strokeWidth_2="10"/>
<filter minzoom="17" maxzoom="17" strokeWidth="15" strokeWidth_2="13"/> <filter minzoom="17" maxzoom="17" strokeWidth="15" strokeWidth_2="13"/>
@ -1088,6 +1083,10 @@
<groupFilter nightMode="true" color="#ffffff" color_2="#9F9F9F"/> <groupFilter nightMode="true" color="#ffffff" color_2="#9F9F9F"/>
</filter> </filter>
<filter> <filter>
<filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="3"/>
<filter hmRendered="true" minzoom="13" maxzoom="13" strokeWidth="4"/>
<filter hmRendered="true" minzoom="14" maxzoom="14" strokeWidth="6"/>
<filter minzoom="13" maxzoom="13" strokeWidth="2" shadowRadius="0"/>
<filter minzoom="14" maxzoom="14" strokeWidth="3" shadowRadius="0"/> <filter minzoom="14" maxzoom="14" strokeWidth="3" shadowRadius="0"/>
<filter minzoom="15" maxzoom="15" strokeWidth="8"/> <filter minzoom="15" maxzoom="15" strokeWidth="8"/>
<filter minzoom="16" maxzoom="16" strokeWidth="10"/> <filter minzoom="16" maxzoom="16" strokeWidth="10"/>
@ -1107,11 +1106,9 @@
<filter tag="highway" value="living_street"/> <filter tag="highway" value="living_street"/>
<filter tag="highway" value="pedestrian"/> <filter tag="highway" value="pedestrian"/>
<groupFilter color="#ececec" color_2="#ececec" shadowRadius="1" cap="ROUND"> <groupFilter color="#ececec" color_2="#ececec" shadowRadius="1" cap="ROUND">
<filter hmRendered="true" minzoom="13" maxzoom="13" strokeWidth="2"/>
<filter hmRendered="true" minzoom="14" maxzoom="14" strokeWidth="3"/>
<!-- Bridges --> <!-- Bridges -->
<filter layer="1" color="#000000" shadowRadius="0" cap="BUTT" cap_2="SQUARE"> <filter layer="1" color="#000000" shadowRadius="0" cap="BUTT" cap_2="SQUARE">
<filter hmRendered="true" minzoom="13" maxzoom="14" strokeWidth="5" strokeWidth_2="3"/> <filter hmRendered="true" minzoom="14" maxzoom="14" strokeWidth="5" strokeWidth_2="3"/>
<filter minzoom="15" maxzoom="15" strokeWidth="6" strokeWidth_2="4"/> <filter minzoom="15" maxzoom="15" strokeWidth="6" strokeWidth_2="4"/>
<filter minzoom="16" maxzoom="16" strokeWidth="7" strokeWidth_2="5"/> <filter minzoom="16" maxzoom="16" strokeWidth="7" strokeWidth_2="5"/>
<filter minzoom="17" maxzoom="17" strokeWidth="10" strokeWidth_2="8"/> <filter minzoom="17" maxzoom="17" strokeWidth="10" strokeWidth_2="8"/>
@ -1119,6 +1116,8 @@
<groupFilter nightMode="true" color="#ffffff"/> <groupFilter nightMode="true" color="#ffffff"/>
</filter> </filter>
<filter> <filter>
<filter hmRendered="true" minzoom="13" maxzoom="13" strokeWidth="2"/>
<filter hmRendered="true" minzoom="14" maxzoom="14" strokeWidth="3"/>
<filter minzoom="15" maxzoom="15" strokeWidth="4"/> <filter minzoom="15" maxzoom="15" strokeWidth="4"/>
<filter minzoom="16" maxzoom="16" strokeWidth="5"/> <filter minzoom="16" maxzoom="16" strokeWidth="5"/>
<filter minzoom="17" maxzoom="17" strokeWidth="8"/> <filter minzoom="17" maxzoom="17" strokeWidth="8"/>
@ -1130,50 +1129,63 @@
<group> <group>
<filter tag="highway" value="track" color="#996600" pathEffect="6_3" color_3="#996600" pathEffect_3="6_3"> <filter tag="highway" value="track" color="#996600" pathEffect="6_3" color_3="#996600" pathEffect_3="6_3">
<filter appMode="pedestrian" hmRendered="true" minzoom="14" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter appMode="pedestrian" minzoom="15" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/> <filter appMode="pedestrian" minzoom="15" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="0.5" strokeWidth_3="0.5"/> <filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="0.5" strokeWidth_3="0.5"/>
<filter hmRendered="true" minzoom="13" strokeWidth="1" strokeWidth_3="1"/>
<filter minzoom="14" strokeWidth="1" strokeWidth_3="1"/> <filter minzoom="14" strokeWidth="1" strokeWidth_3="1"/>
</filter> </filter>
<!-- byway is deprecated tag, describes UK-only road. Proper tag should be highway=track or highway=path --> <!-- byway is deprecated tag, describes UK-only road. Proper tag should be highway=track or highway=path -->
<filter tag="highway" value="byway" color="#996600" pathEffect="6_3" color_3="#996600" pathEffect_3="6_3"> <filter tag="highway" value="byway" color="#996600" pathEffect="6_3" color_3="#996600" pathEffect_3="6_3">
<filter appMode="bicycle" minzoom="14" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/> <filter appMode="pedestrian" hmRendered="true" minzoom="14" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter appMode="pedestrian" minzoom="15" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/> <filter appMode="pedestrian" minzoom="15" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter minzoom="12" strokeWidth="1" strokeWidth_3="1"/> <filter appMode="bicycle" minzoom="14" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="0.5" strokeWidth_3="0.5"/>
<filter hmRendered="true" minzoom="13" strokeWidth="1" strokeWidth_3="1"/>
<filter minzoom="14" strokeWidth="1" strokeWidth_3="1"/>
</filter> </filter>
<group> <group>
<filter tag="highway" value="path" color="#000000" pathEffect="6_3" color_3="#000000" pathEffect_3="6_3"> <filter tag="highway" value="path" color="#000000" pathEffect="6_3" color_3="#000000" pathEffect_3="6_3">
<filter appMode="pedestrian" hmRendered="true" minzoom="14" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter appMode="pedestrian" minzoom="15" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/> <filter appMode="pedestrian" minzoom="15" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="0.5" strokeWidth_3="0.5"/> <filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="0.5" strokeWidth_3="0.5"/>
<filter minzoom="13" strokeWidth="1" strokeWidth_3="1"/> <filter hmRendered="true" minzoom="13" strokeWidth="1" strokeWidth_3="1"/>
<filter minzoom="14" strokeWidth="1" strokeWidth_3="1"/>
</filter> </filter>
<groupFilter nightMode="true" color="#787878" color_3="#787878"/> <groupFilter nightMode="true" color="#787878" color_3="#787878"/>
</group> </group>
<filter tag="highway" value="cycleway" color="#0000ff" pathEffect="2_2" color_3="#0000ff" pathEffect_3="2_2"> <filter tag="highway" value="cycleway" color="#0000ff" pathEffect="2_2" color_3="#0000ff" pathEffect_3="2_2">
<filter appMode="bicycle" minzoom="14" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/> <filter appMode="bicycle" minzoom="14" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter appMode="pedestrian" hmRendered="true" minzoom="14" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="0.5" strokeWidth_3="0.5"/> <filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="0.5" strokeWidth_3="0.5"/>
<filter minzoom="14" strokeWidth="1" strokeWidth_3="1"/> <filter hmRendered="true" minzoom="13" strokeWidth="1" strokeWidth_3="1"/>
<filter minzoom="14" strokeWidth="1" strokeWidth_3="1"/>
</filter> </filter>
<filter tag="highway" value="footway" color="#fa5073" pathEffect="2_2" color_3="#fa5073" pathEffect_3="2_2"> <filter tag="highway" value="footway" color="#fa5073" pathEffect="2_2" color_3="#fa5073" pathEffect_3="2_2">
<filter appMode="pedestrian" minzoom="16" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/> <filter appMode="pedestrian" hmRendered="true" minzoom="14" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter appMode="pedestrian" minzoom="15" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="0.5" strokeWidth_3="0.5"/> <filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="0.5" strokeWidth_3="0.5"/>
<filter hmRendered="true" minzoom="13" maxzoom="14" strokeWidth="1" strokeWidth_3="1"/> <filter hmRendered="true" minzoom="13" strokeWidth="1" strokeWidth_3="1"/>
<filter minzoom="15" strokeWidth="1" strokeWidth_3="1"/> <filter minzoom="16" strokeWidth="1" strokeWidth_3="1"/>
</filter> </filter>
<filter tag="highway" value="steps" color="#fa5073" pathEffect="1_2" color_3="#fa5073" pathEffect_3="1_2"> <filter tag="highway" value="steps" color="#fa5073" pathEffect="1_2" color_3="#fa5073" pathEffect_3="1_2">
<filter appMode="pedestrian" minzoom="16" strokeWidth="4" pathEffect="2_2" strokeWidth_3="4" pathEffect_3="2_2"/> <filter appMode="pedestrian" hmRendered="true" minzoom="14" strokeWidth="4" pathEffect="2_2" strokeWidth_3="4" pathEffect_3="2_2"/>
<filter appMode="pedestrian" minzoom="15" strokeWidth="4" pathEffect="2_2" strokeWidth_3="4" pathEffect_3="2_2"/>
<filter hmRendered="true" minzoom="14" strokeWidth="4" strokeWidth_3="4"/> <filter hmRendered="true" minzoom="14" strokeWidth="4" strokeWidth_3="4"/>
<filter minzoom="16" strokeWidth="4" strokeWidth_3="4"/> <filter minzoom="16" strokeWidth="4" strokeWidth_3="4"/>
</filter> </filter>
<filter tag="highway" value="bridleway" color="#339900" pathEffect="2_2" color_3="#339900" pathEffect_3="2_2"> <filter tag="highway" value="bridleway" color="#339900" pathEffect="2_2" color_3="#339900" pathEffect_3="2_2">
<filter appMode="pedestrian" hmRendered="true" minzoom="14" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter appMode="pedestrian" minzoom="15" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/> <filter appMode="pedestrian" minzoom="15" strokeWidth="2" pathEffect="10_3" strokeWidth_3="2" pathEffect_3="10_3"/>
<filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="0.5" strokeWidth_3="0.5"/> <filter hmRendered="true" minzoom="12" maxzoom="12" strokeWidth="0.5" strokeWidth_3="0.5"/>
<filter minzoom="13" strokeWidth="1" strokeWidth_3="1"/> <filter hmRendered="true" minzoom="13" strokeWidth="1" strokeWidth_3="1"/>
<filter minzoom="16" strokeWidth="1" strokeWidth_3="1"/>
</filter> </filter>
<!-- Bridges --> <!-- Bridges -->

View file

@ -18,7 +18,7 @@
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/OsmandTheme" <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/OsmandTheme"
android:debuggable="true" android:name="net.osmand.plus.OsmandApplication" android:debuggable="true" android:name=".OsmandApplication"
android:backupAgent="net.osmand.plus.OsmandBackupAgent" android:restoreAnyVersion="true"> android:backupAgent="net.osmand.plus.OsmandBackupAgent" android:restoreAnyVersion="true">
<activity android:name="net.osmand.plus.activities.MainMenuActivity" <activity android:name="net.osmand.plus.activities.MainMenuActivity"
android:label="@string/app_name"> android:label="@string/app_name">
@ -64,11 +64,11 @@
<data android:scheme="geo"></data> <data android:scheme="geo"></data>
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name="net.osmand.plus.activities.TestVoiceActivity"></activity> <activity android:name="net.osmand.plus.development.TestVoiceActivity"></activity>
<activity android:name="net.osmand.plus.activities.LocalIndexesActivity" android:label="@string/local_index_descr_title"></activity> <activity android:name="net.osmand.plus.activities.LocalIndexesActivity" android:label="@string/local_index_descr_title"></activity>
<activity android:name="net.osmand.plus.activities.LocalOpenstreetmapActivity" android:label="@string/local_openstreetmap_descr_title"></activity> <activity android:name="net.osmand.plus.osmedit.LocalOpenstreetmapActivity" android:label="@string/local_openstreetmap_descr_title"></activity>
<service android:process="net.osmand.plus" android:label="@string/process_navigation_service" android:name="net.osmand.plus.NavigationService"> <service android:process="net.osmand.plus" android:label="@string/process_navigation_service" android:name=".NavigationService">
<intent-filter><action android:name="net.osmand.plus.NavigationService"></action></intent-filter> <intent-filter><action android:name="net.osmand.plus.NavigationService"></action></intent-filter>
</service> </service>
<receiver android:name="net.osmand.plus.OnNavigationServiceAlarmReceiver"/> <receiver android:name="net.osmand.plus.OnNavigationServiceAlarmReceiver"/>
@ -81,7 +81,7 @@
<action android:name="com.android.vending.INSTALL_REFERRER" /> <action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter> </intent-filter>
</receiver> </receiver>
<activity android:name="net.osmand.plus.activities.OsmandBidForFixActivity"></activity> <activity android:name=".activities.OsmandBidForFixActivity"></activity>
</application> </application>

View file

@ -2,12 +2,12 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="vertical"> android:layout_height="wrap_content" android:orientation="vertical">
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"
android:layout_marginLeft="3dp" > android:layout_marginLeft="4dp" >
<ImageView android:layout_marginLeft="4dp" android:id="@+id/plugin_icon" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <ImageView android:id="@+id/plugin_icon" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
<TextView android:id="@+id/plugin_name" android:gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" <TextView android:layout_marginLeft="5dp" android:id="@+id/plugin_name" android:gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textSize="17sp"></TextView> android:textSize="18sp"></TextView>
</LinearLayout> </LinearLayout>
<TextView android:id="@+id/plugin_descr" android:layout_width="fill_parent" android:layout_marginLeft="5dp" <TextView android:id="@+id/plugin_descr" android:layout_width="fill_parent" android:layout_marginLeft="5dp"
android:maxLines="7" android:layout_height="wrap_content" android:textSize="15sp" ></TextView> android:maxLines="7" android:layout_height="wrap_content" android:textSize="16sp" ></TextView>
</LinearLayout> </LinearLayout>

View file

@ -158,10 +158,6 @@
<string name="profile_settings">Nastavení profilu</string> <string name="profile_settings">Nastavení profilu</string>
<string name="settings_preset">Uživatelský profil</string> <string name="settings_preset">Uživatelský profil</string>
<string name="settings_preset_descr">Vyberte profil aplikace. (V každém profilu je možno upravit mapy, sledování a navigaci.)</string> <string name="settings_preset_descr">Vyberte profil aplikace. (V každém profilu je možno upravit mapy, sledování a navigaci.)</string>
<string name="rendering_settings">- Mapa</string>
<string name="rendering_settings_descr">Nastavení zdroje mapy a způsobu vykreslování</string>
<string name="appearance_settings">- Zobrazení</string>
<string name="appearance_settings_descr">Nastavení vzhledu a chování aplikace a zobrazení mapy</string>
<string name="monitor_preferences">- Záznam trasy</string> <string name="monitor_preferences">- Záznam trasy</string>
<string name="monitor_preferences_descr">Nastavení záznamu trasy na SD kartu</string> <string name="monitor_preferences_descr">Nastavení záznamu trasy na SD kartu</string>
<string name="routing_settings">- Navigace</string> <string name="routing_settings">- Navigace</string>
@ -615,8 +611,6 @@
<string name="map_overlay_descr"> <string name="map_overlay_descr">
Vyberte mapu zobrazenou nad základní mapou Vyberte mapu zobrazenou nad základní mapou
</string> </string>
<string name="map_vector_data">Vektorové mapy</string>
<string name="map_vector_data_descr">Použít stažené vektorové mapy</string>
<string name="tile_source_already_installed"> <string name="tile_source_already_installed">
Mapa je již nainstalovaná, aktualizuji nastavení Mapa je již nainstalovaná, aktualizuji nastavení
</string> </string>

View file

@ -158,10 +158,6 @@
<string name="profile_settings">Profilspezifische Einstellungen</string> <string name="profile_settings">Profilspezifische Einstellungen</string>
<string name="settings_preset">Nutzerprofil</string> <string name="settings_preset">Nutzerprofil</string>
<string name="settings_preset_descr">Verwendungszweck. (Einstellungen für Karten, Logging und Navigation werden für jedes Profil separat gespeichert.)</string> <string name="settings_preset_descr">Verwendungszweck. (Einstellungen für Karten, Logging und Navigation werden für jedes Profil separat gespeichert.)</string>
<string name="rendering_settings">- Kartenkonfiguration</string>
<string name="rendering_settings_descr">Kartenquellen und -parametrisierung</string>
<string name="appearance_settings">- Anzeigenkonfiguration</string>
<string name="appearance_settings_descr">Kartendarstellung und Anzeigeelemente</string>
<string name="monitor_preferences">- Positions-Logging</string> <string name="monitor_preferences">- Positions-Logging</string>
<string name="monitor_preferences_descr">Positions-Logging konfigurieren</string> <string name="monitor_preferences_descr">Positions-Logging konfigurieren</string>
<string name="routing_settings">- Navigation</string> <string name="routing_settings">- Navigation</string>
@ -406,8 +402,6 @@
<string name="default_none">Keine</string> <string name="default_none">Keine</string>
<string name="map_overlay">Overlay-Karte</string> <string name="map_overlay">Overlay-Karte</string>
<string name="map_overlay_descr">Wähle Overlay-Karte</string> <string name="map_overlay_descr">Wähle Overlay-Karte</string>
<string name="map_vector_data">Offline-Vektor-Karten</string>
<string name="map_vector_data_descr">Verwende Offline-Vektor-Karten</string>
<string name="tile_source_already_installed">Karte schon installiert, Einstellungen werden aktualisiert</string> <string name="tile_source_already_installed">Karte schon installiert, Einstellungen werden aktualisiert</string>
<string name="select_tile_source_to_install">Kartenauswahl (Installation oder Update)</string> <string name="select_tile_source_to_install">Kartenauswahl (Installation oder Update)</string>
<string name="internet_not_available">Internet Verbindung erforderlich aber nicht verfügbar</string> <string name="internet_not_available">Internet Verbindung erforderlich aber nicht verfügbar</string>

View file

@ -67,10 +67,6 @@
<string name="profile_settings">Opciones específicas por perfil</string> <string name="profile_settings">Opciones específicas por perfil</string>
<string name="settings_preset">Perfil de usuario</string> <string name="settings_preset">Perfil de usuario</string>
<string name="settings_preset_descr">Selecciona un perfil de uso. (Las opciones de Mapa, Seguimiento y Navegación puede cambiarse para cada perfil)</string> <string name="settings_preset_descr">Selecciona un perfil de uso. (Las opciones de Mapa, Seguimiento y Navegación puede cambiarse para cada perfil)</string>
<string name="rendering_settings">- Configuración de Mapa</string>
<string name="rendering_settings_descr">Configura los mapas y los orígenes de mapas</string>
<string name="appearance_settings">- Aspecto de mapas</string>
<string name="appearance_settings_descr">Configura la presentación de mapas</string>
<string name="monitor_preferences">- Seguimiento</string> <string name="monitor_preferences">- Seguimiento</string>
<string name="monitor_preferences_descr">Especifica los parámetros de seguimiento</string> <string name="monitor_preferences_descr">Especifica los parámetros de seguimiento</string>
<string name="routing_settings">- Navegación</string> <string name="routing_settings">- Navegación</string>
@ -319,8 +315,6 @@
<string name="default_none">Ninguno</string> <string name="default_none">Ninguno</string>
<string name="map_overlay">Mapa superpuesto</string> <string name="map_overlay">Mapa superpuesto</string>
<string name="map_overlay_descr">Elija mapa superpuesto</string> <string name="map_overlay_descr">Elija mapa superpuesto</string>
<string name="map_vector_data">Mapas descargados</string>
<string name="map_vector_data_descr">Usar mapas vectoriales descargados</string>
<string name="tile_source_already_installed">El mapa ya está instalado, se actualizarán las opciones</string> <string name="tile_source_already_installed">El mapa ya está instalado, se actualizarán las opciones</string>
<string name="select_tile_source_to_install">Seleccione mapas (teselas) a instalar o actualizar</string> <string name="select_tile_source_to_install">Seleccione mapas (teselas) a instalar o actualizar</string>
<string name="internet_not_available">No está disponible la conexión a Internet que se necesita para la operación</string> <string name="internet_not_available">No está disponible la conexión a Internet que se necesita para la operación</string>

View file

@ -67,10 +67,6 @@
<string name="profile_settings">Paramètres de profil</string> <string name="profile_settings">Paramètres de profil</string>
<string name="settings_preset">Profil d\'utilisation</string> <string name="settings_preset">Profil d\'utilisation</string>
<string name="settings_preset_descr">Sélectionner un profil d\'utilisation. (Pour chaque profil, il est possible de configurer une source de carte, le suivi et la navigation, voir plus bas.)</string> <string name="settings_preset_descr">Sélectionner un profil d\'utilisation. (Pour chaque profil, il est possible de configurer une source de carte, le suivi et la navigation, voir plus bas.)</string>
<string name="rendering_settings">- Sources de carte</string>
<string name="rendering_settings_descr">Configurer la source et les propriétés des cartes</string>
<string name="appearance_settings">- Style d\'affichage</string>
<string name="appearance_settings_descr">Configurer le style de l\'affichage de la carte</string>
<string name="monitor_preferences">- Traces</string> <string name="monitor_preferences">- Traces</string>
<string name="monitor_preferences_descr">Configurer les paramètres d\'enregistrement du parcours</string> <string name="monitor_preferences_descr">Configurer les paramètres d\'enregistrement du parcours</string>
<string name="routing_settings">- Navigation</string> <string name="routing_settings">- Navigation</string>
@ -306,8 +302,6 @@
<string name="default_none">Aucune</string> <string name="default_none">Aucune</string>
<string name="map_overlay">Sur-couche de la carte</string> <string name="map_overlay">Sur-couche de la carte</string>
<string name="map_overlay_descr">Chosir la carte en sur-couche</string> <string name="map_overlay_descr">Chosir la carte en sur-couche</string>
<string name="map_vector_data">Cartes vectorielles</string>
<string name="map_vector_data_descr">Utiliser les cartes vectorielles téléchargées</string>
<string name="tile_source_already_installed">Carte déjà installée, paramètres seront mis à jour</string> <string name="tile_source_already_installed">Carte déjà installée, paramètres seront mis à jour</string>
<string name="select_tile_source_to_install">Sélectioner les cartes à installer ou mettre à jour</string> <string name="select_tile_source_to_install">Sélectioner les cartes à installer ou mettre à jour</string>
<string name="internet_not_available">Connexion Internet nécessaire pour cette opération non disponible</string> <string name="internet_not_available">Connexion Internet nécessaire pour cette opération non disponible</string>

View file

@ -150,10 +150,6 @@
<string name="profile_settings">Felhasználási módnak megfelelő beállítások</string> <string name="profile_settings">Felhasználási módnak megfelelő beállítások</string>
<string name="settings_preset">Felhasználási mód</string> <string name="settings_preset">Felhasználási mód</string>
<string name="settings_preset_descr">Felhasználási mód kiválasztása. (Minden módban a térkép, útvonalrögzítés és navigáció beállításai alább személyre szabhatók.)</string> <string name="settings_preset_descr">Felhasználási mód kiválasztása. (Minden módban a térkép, útvonalrögzítés és navigáció beállításai alább személyre szabhatók.)</string>
<string name="rendering_settings">- Térképbeállítások</string>
<string name="rendering_settings_descr">Térképbeállítások és térképforrások</string>
<string name="appearance_settings">- Térkép megjelenítés</string>
<string name="appearance_settings_descr">Térkép megjelenésének beállításai</string>
<string name="monitor_preferences">- Útvonalrögzítés</string> <string name="monitor_preferences">- Útvonalrögzítés</string>
<string name="monitor_preferences_descr">Útvonalrögzítés beállításai</string> <string name="monitor_preferences_descr">Útvonalrögzítés beállításai</string>
<string name="routing_settings">- Navigáció</string> <string name="routing_settings">- Navigáció</string>
@ -402,8 +398,6 @@
<string name="default_none">Nincs</string> <string name="default_none">Nincs</string>
<string name="map_overlay">Rátét térkép</string> <string name="map_overlay">Rátét térkép</string>
<string name="map_overlay_descr">Rátét térkép kiválasztás</string> <string name="map_overlay_descr">Rátét térkép kiválasztás</string>
<string name="map_vector_data">Vektoros térképek</string>
<string name="map_vector_data_descr">Letöltött vektoros térképek használata</string>
<string name="tile_source_already_installed">A térkép már telepítve van, a beállítások frissítésre kerülnek</string> <string name="tile_source_already_installed">A térkép már telepítve van, a beállítások frissítésre kerülnek</string>
<string name="select_tile_source_to_install">Térkép kiválasztása telepítéshez, frissítéshez</string> <string name="select_tile_source_to_install">Térkép kiválasztása telepítéshez, frissítéshez</string>
<string name="internet_not_available">A művelet elvégzéséhez internetelérés szükséges</string> <string name="internet_not_available">A művelet elvégzéséhez internetelérés szükséges</string>

View file

@ -51,10 +51,6 @@
<string name="profile_settings">Impostazioni particolari per il profilo</string> <string name="profile_settings">Impostazioni particolari per il profilo</string>
<string name="settings_preset">Profilo d\'uso</string> <string name="settings_preset">Profilo d\'uso</string>
<string name="settings_preset_descr">Seleziona un profilo d\'uso. (Ogni impostazione del profilo per la Mappa, Tracking, e Navigazione può essere personalizzato sotto.)</string> <string name="settings_preset_descr">Seleziona un profilo d\'uso. (Ogni impostazione del profilo per la Mappa, Tracking, e Navigazione può essere personalizzato sotto.)</string>
<string name="rendering_settings">Configura mappa</string>
<string name="rendering_settings_descr">Configura mappe e sorgenti delle mappe</string>
<string name="appearance_settings">Aspetto della mappa</string>
<string name="appearance_settings_descr">Configura l\'aspetto della mappa</string>
<string name="monitor_preferences">Tracking</string> <string name="monitor_preferences">Tracking</string>
<string name="monitor_preferences_descr">Specifica le impostazioni di tracking</string> <string name="monitor_preferences_descr">Specifica le impostazioni di tracking</string>
<string name="routing_settings">Navigazione</string> <string name="routing_settings">Navigazione</string>
@ -300,8 +296,6 @@
<string name="default_none">Nessuna</string> <string name="default_none">Nessuna</string>
<string name="map_overlay">Mappa di overlay</string> <string name="map_overlay">Mappa di overlay</string>
<string name="map_overlay_descr">Scegli mappa di overlay</string> <string name="map_overlay_descr">Scegli mappa di overlay</string>
<string name="map_vector_data">Mappe vettoriali offline</string>
<string name="map_vector_data_descr">Usa le mappe vettoriali scaricate</string>
<string name="tile_source_already_installed">La mappa è già installata, verrà aggiornata</string> <string name="tile_source_already_installed">La mappa è già installata, verrà aggiornata</string>
<string name="select_tile_source_to_install">Seleziona le mappe (tile) da installare o aggiornare</string> <string name="select_tile_source_to_install">Seleziona le mappe (tile) da installare o aggiornare</string>
<string name="internet_not_available">Connessione internet richiesta ma non disponibile</string> <string name="internet_not_available">Connessione internet richiesta ma non disponibile</string>

View file

@ -68,8 +68,6 @@ name="internet_connection_required_for_online_route">オンライン経路案内
<string name="default_none">無し</string> <string name="default_none">無し</string>
<string name="map_overlay">オーバーレイマップ</string> <string name="map_overlay">オーバーレイマップ</string>
<string name="map_overlay_descr">オーバーレイマップを選択</string> <string name="map_overlay_descr">オーバーレイマップを選択</string>
<string name="map_vector_data">オフラインベクターマップ</string>
<string name="map_vector_data_descr">ダウンロードしたベクターマップを使用</string>
<string name="tile_source_already_installed">マップは既に <string name="tile_source_already_installed">マップは既に
インストール済です、設定を更新します</string> インストール済です、設定を更新します</string>
<string name="select_tile_source_to_install">インストールまたは <string name="select_tile_source_to_install">インストールまたは
@ -308,8 +306,7 @@ MB)をダウンロードしますか?</string>
<string name="general_settings_descr">インターネット利用、表示オプション、その他の構成</string> <string name="general_settings_descr">インターネット利用、表示オプション、その他の構成</string>
<string name="general_settings">全般設定</string> <string name="general_settings">全般設定</string>
<string name="rendering_settings_descr">マップソースと外観の構成</string>
<string name="rendering_settings">- マップ</string>
<string name="index_settings_descr">オフライン用のデータを取得/更新</string> <string name="index_settings_descr">オフライン用のデータを取得/更新</string>
<string name="index_settings">オフラインデータ</string> <string name="index_settings">オフラインデータ</string>
<string name="osmand_service">背景サービス</string> <string name="osmand_service">背景サービス</string>

View file

@ -158,10 +158,6 @@
<string name="profile_settings">특정 설정 프로파일</string> <string name="profile_settings">특정 설정 프로파일</string>
<string name="settings_preset">사용자 프로파일</string> <string name="settings_preset">사용자 프로파일</string>
<string name="settings_preset_descr">사용자 프로파일을 선택합니다. (각 프로파일의 맵, 트래킹, 네비게이션 설정은 아래처럼 지정할 수 있습니다.)</string> <string name="settings_preset_descr">사용자 프로파일을 선택합니다. (각 프로파일의 맵, 트래킹, 네비게이션 설정은 아래처럼 지정할 수 있습니다.)</string>
<string name="rendering_settings">- 맵 설정</string>
<string name="rendering_settings_descr">맵과 맵 소스를 설정합니다</string>
<string name="appearance_settings">- 맵 모양</string>
<string name="appearance_settings_descr">맵 모양을 설정합니다</string>
<string name="monitor_preferences">- 트래킹</string> <string name="monitor_preferences">- 트래킹</string>
<string name="monitor_preferences_descr">트래킹 옵션을 설정합니다</string> <string name="monitor_preferences_descr">트래킹 옵션을 설정합니다</string>
<string name="routing_settings">- 네비게이션</string> <string name="routing_settings">- 네비게이션</string>
@ -408,8 +404,6 @@
<string name="default_none">없음</string> <string name="default_none">없음</string>
<string name="map_overlay">오버레이 맵</string> <string name="map_overlay">오버레이 맵</string>
<string name="map_overlay_descr">오버레이 맵을 선택합니다</string> <string name="map_overlay_descr">오버레이 맵을 선택합니다</string>
<string name="map_vector_data">오프라인 벡터 맵</string>
<string name="map_vector_data_descr">다운로드한 벡터 맵을 사용합니다</string>
<string name="tile_source_already_installed">맵이 이미 설치되어, 설정이 갱신될 것입니다</string> <string name="tile_source_already_installed">맵이 이미 설치되어, 설정이 갱신될 것입니다</string>
<string name="select_tile_source_to_install">설치 또는 갱신할 (타일) 맵을 선택합니다</string> <string name="select_tile_source_to_install">설치 또는 갱신할 (타일) 맵을 선택합니다</string>
<string name="internet_not_available">동작에 필요한 인터넷 연결이 되지 않습니다</string> <string name="internet_not_available">동작에 필요한 인터넷 연결이 되지 않습니다</string>

View file

@ -9,7 +9,7 @@
<string name="test_voice_prompts">Test stem-instructies</string> <string name="test_voice_prompts">Test stem-instructies</string>
<string name="switch_to_raster_map_to_see">Geen offline vectorkaart aanwezig voor deze locatie. Je kan deze downloaden via Instellingen (Offline gegevens), of overschakelen naar online kaarten.</string> <string name="switch_to_raster_map_to_see">Geen offline vectorkaart aanwezig voor deze locatie. Je kan deze downloaden via Instellingen (Offline gegevens), of overschakelen naar online kaarten.</string>
<string name="tip_recent_changes_0_7_2_t">Wijzigingen in 0.7.2 : <string name="tip_recent_changes_0_7_2_t">Wijzigingen in 0.7.2 :
\n\t- Interne kaartgeneratie voor alle apparaten \n\t- Interne kaartgeneratie op alle apparaten
\n\t- Offline interessepunt-bewerking \n\t- Offline interessepunt-bewerking
\n\t- Toegankelijkheidsopties \n\t- Toegankelijkheidsopties
\n\t- Veel bugs opgelost \n\t- Veel bugs opgelost
@ -135,10 +135,10 @@
<string name="index_name_europe">Europa</string> <string name="index_name_europe">Europa</string>
<string name="index_name_france">Europa - Frankrijk</string> <string name="index_name_france">Europa - Frankrijk</string>
<string name="index_name_germany">Europa - Duitsland</string> <string name="index_name_germany">Europa - Duitsland</string>
<string name="index_name_russia">Europa/Azi Rusland</string> <string name="index_name_russia">Europa/Azië - Rusland</string>
<string name="index_name_africa">Afrika</string> <string name="index_name_africa">Afrika</string>
<string name="index_name_asia">Azi</string> <string name="index_name_asia">Azië</string>
<string name="index_name_oceania">Oceani</string> <string name="index_name_oceania">Oceanië</string>
<string name="index_name_other">Wereldkaart en topografische kaart</string> <string name="index_name_other">Wereldkaart en topografische kaart</string>
<string name="index_name_wiki">Wereldwijde Wikipedia</string> <string name="index_name_wiki">Wereldwijde Wikipedia</string>
<string name="index_name_voice">Stembestanden (opnamen)</string> <string name="index_name_voice">Stembestanden (opnamen)</string>
@ -150,10 +150,6 @@
<string name="profile_settings">Profielspecifieke instellingen</string> <string name="profile_settings">Profielspecifieke instellingen</string>
<string name="settings_preset">Gebruiksprofiel</string> <string name="settings_preset">Gebruiksprofiel</string>
<string name="settings_preset_descr">Selecteer een profiel. (Elke profielinstelling, kaart, tracking en navigatie kan hieronder ingesteld worden.)</string> <string name="settings_preset_descr">Selecteer een profiel. (Elke profielinstelling, kaart, tracking en navigatie kan hieronder ingesteld worden.)</string>
<string name="rendering_settings">- Kaartconfiguratie</string>
<string name="rendering_settings_descr">Configureer kaarten en kaartbronnen</string>
<string name="appearance_settings">- Kaartpresentatie</string>
<string name="appearance_settings_descr">Configureer kaartpresentatie</string>
<string name="monitor_preferences">- Tracking</string> <string name="monitor_preferences">- Tracking</string>
<string name="monitor_preferences_descr">Specifieke tracking-instellingen</string> <string name="monitor_preferences_descr">Specifieke tracking-instellingen</string>
<string name="routing_settings">- Navigatie</string> <string name="routing_settings">- Navigatie</string>
@ -190,7 +186,7 @@
<string name="tip_osm_improve">Verbeter OSM gegevens</string> <string name="tip_osm_improve">Verbeter OSM gegevens</string>
<string name="tip_osm_improve_t">\tOsmAnd gebruikt kaarten, gebaseerd op Openstreetmap.org (OSM) gegevens en kan -behalve voor kaartweergave en navigatie- gebruikt worden om de kwaliteit van OSM gegevens te verbeteren. U kunt eenvoudig met een paar klikken interessepunten of OSM foutrapporten uploaden! <string name="tip_osm_improve_t">\tOsmAnd gebruikt kaarten, gebaseerd op Openstreetmap.org (OSM) gegevens en kan -behalve voor kaartweergave en navigatie- gebruikt worden om de kwaliteit van OSM gegevens te verbeteren. U kunt eenvoudig met een paar klikken interessepunten of OSM foutrapporten uploaden!
\n\tHiervoor moet u eerst uw OSM login informatie opgeven bij \'Instellingen\' -> \'Algemene instellingen\' -> \'OSM\'. \n\tHiervoor moet u eerst uw OSM login informatie opgeven bij \'Instellingen\' -> \'Algemene instellingen\' -> \'OSM\'.
\n\tOm een nieuw interessepunt toe te voegen, gebruik de optie \'Cre interessepunt\' in het kaartcontextmenu. Vervolg met het ingeven van de informatie over het interessepunt bij \'Cre interessepunt\' en sla deze wijziging op. \n\tOm een nieuw interessepunt toe te voegen, gebruik de optie \'Creëer interessepunt\' in het kaartcontextmenu. Vervolg met het ingeven van de informatie over het interessepunt bij \'Creëer interessepunt\' en sla deze wijziging op.
\n\tFouten in de kaarten kunnen direct worden gerapporteerd via OSM bug, de OSM groep kan het probleem dan sneller oplossen. \n\tFouten in de kaarten kunnen direct worden gerapporteerd via OSM bug, de OSM groep kan het probleem dan sneller oplossen.
\n\Om een fout te rapporteren, gebruik de optie \'Open OSM bug\' in het kaartcontextmenu. Geef daar een gedetailleerde beschrijving van het probleem en stuur het op met de \'Toevoegen\' knop. \n\Om een fout te rapporteren, gebruik de optie \'Open OSM bug\' in het kaartcontextmenu. Geef daar een gedetailleerde beschrijving van het probleem en stuur het op met de \'Toevoegen\' knop.
\n\tEr is een Internetverbinding nodig voor het aanmelden van bugs en interessepunten.</string> \n\tEr is een Internetverbinding nodig voor het aanmelden van bugs en interessepunten.</string>
@ -252,7 +248,7 @@
<string name="file_can_not_be_renamed">Bestandsnaam kan niet worden gewijzigd.</string> <string name="file_can_not_be_renamed">Bestandsnaam kan niet worden gewijzigd.</string>
<string name="file_with_name_already_exists">Er bestaat al een bestand met die naam.</string> <string name="file_with_name_already_exists">Er bestaat al een bestand met die naam.</string>
<string name="gpx_navigation">GPX route</string> <string name="gpx_navigation">GPX route</string>
<string name="poi_query_by_name_matches_categories">Meerdere interessepunt categoriegevonden in zoekaktie :</string> <string name="poi_query_by_name_matches_categories">Meerdere interessepunt categorieën gevonden in zoekaktie :</string>
<string name="data_to_search_poi_not_available">Locale gegevens voor het zoeken van interessepunten is niet aanwezig.</string> <string name="data_to_search_poi_not_available">Locale gegevens voor het zoeken van interessepunten is niet aanwezig.</string>
<string name="poi_filter_by_name">Zoek op naam</string> <string name="poi_filter_by_name">Zoek op naam</string>
<string name="old_poi_file_should_be_deleted">Het interessepuntenbestand \'%1$s\' is redundant en kan worden verwijderd.</string> <string name="old_poi_file_should_be_deleted">Het interessepuntenbestand \'%1$s\' is redundant en kan worden verwijderd.</string>
@ -361,9 +357,9 @@
<string name="installing_new_resources">Installeren nieuwe gegevens&#8230;</string> <string name="installing_new_resources">Installeren nieuwe gegevens&#8230;</string>
<string name="internet_connection_required_for_online_route">Een online route-service is geselecteerd, maar er is geen internetverbinding beschikbaar.</string> <string name="internet_connection_required_for_online_route">Een online route-service is geselecteerd, maar er is geen internetverbinding beschikbaar.</string>
<string name="tts_language_not_supported_title">Taal niet ondersteund</string> <string name="tts_language_not_supported_title">Taal niet ondersteund</string>
<string name="tts_language_not_supported">De geselecteerde taal is niet ondersteund door de getalleerde Android stemgenerator. Wilt u een andere stemgenerator zoeken in de Market? Anders wordt de huidige stemgenerator gebruikt.</string> <string name="tts_language_not_supported">De geselecteerde taal is niet ondersteund door de geïnstalleerde Android stemgenerator. Wilt u een andere stemgenerator zoeken in de Market? Anders wordt de huidige stemgenerator gebruikt.</string>
<string name="tts_missing_language_data_title">Ontbrekende gegevens</string> <string name="tts_missing_language_data_title">Ontbrekende gegevens</string>
<string name="tts_missing_language_data">Geen gegevens voor de geselecteerde taal getalleerd. Wilt u naar de Market gaan om deze te installeren?</string> <string name="tts_missing_language_data">Geen gegevens voor de geselecteerde taal geïnstalleerd. Wilt u naar de Market gaan om deze te installeren?</string>
<string name="gpx_option_reverse_route">Keer GPX richting om</string> <string name="gpx_option_reverse_route">Keer GPX richting om</string>
<string name="gpx_option_destination_point">Gebruik huidige bestemming</string> <string name="gpx_option_destination_point">Gebruik huidige bestemming</string>
<string name="gpx_option_from_start_point">Toon het gehele spoor</string> <string name="gpx_option_from_start_point">Toon het gehele spoor</string>
@ -386,9 +382,7 @@
<string name="default_none">Geen</string> <string name="default_none">Geen</string>
<string name="map_overlay">Overlay kaart</string> <string name="map_overlay">Overlay kaart</string>
<string name="map_overlay_descr">Selecteer overlay kaart</string> <string name="map_overlay_descr">Selecteer overlay kaart</string>
<string name="map_vector_data">Offline vectorkaarten</string> <string name="tile_source_already_installed">Kaart is al geïnstalleerd, instellingen worden geactualiseerd</string>
<string name="map_vector_data_descr">Gebruik downloaded vectorkaarten</string>
<string name="tile_source_already_installed">Kaart is al ge௳talleerd, instellingen worden geactualiseerd</string>
<string name="select_tile_source_to_install">Selecteer (kaartsegment) kaarten om te installeren of te actualiseren</string> <string name="select_tile_source_to_install">Selecteer (kaartsegment) kaarten om te installeren of te actualiseren</string>
<string name="internet_not_available">De benodigde Internetverbinding voor deze actie is niet beschikbaar</string> <string name="internet_not_available">De benodigde Internetverbinding voor deze actie is niet beschikbaar</string>
<string name="install_more">Installeer meer&#8230;</string> <string name="install_more">Installeer meer&#8230;</string>
@ -398,8 +392,8 @@
\n\tDe beschikbaarheid van updates wordt weergegeven in de volgende kleuren: \n\tDe beschikbaarheid van updates wordt weergegeven in de volgende kleuren:
\n\t\'Groen\' - De gegevens op uw apparaat en op de server zijn identiek \n\t\'Groen\' - De gegevens op uw apparaat en op de server zijn identiek
\n\t\'Blauw\' - Er is een update beschikbaar op de server \n\t\'Blauw\' - Er is een update beschikbaar op de server
\n\t\'Donker Groen\' - gedeactiveerde kaart: is up to date \n\t\'Donker Groen\' - gedeactiveerde kaart, deze is up-to-date
\n\t\'Donker Blauw\' - gedeactiveerde kaart: Er is een update beschikbaar \n\t\'Donker Blauw\' - gedeactiveerde kaart, er is een update beschikbaar
</string> </string>
<string name="level_to_switch_vector_raster_descr">Minimum zoomniveau om vectorkaarten inplaats van (raster)kaartsegmenten te gebruiken.</string> <string name="level_to_switch_vector_raster_descr">Minimum zoomniveau om vectorkaarten inplaats van (raster)kaartsegmenten te gebruiken.</string>
<string name="level_to_switch_vector_raster">Min. vector zoomniveau</string> <string name="level_to_switch_vector_raster">Min. vector zoomniveau</string>
@ -407,7 +401,7 @@
<string name="tip_location_sharing_t">\tU kunt de locatie van interessepunten op uw tocht delen met familie of vrienden. <string name="tip_location_sharing_t">\tU kunt de locatie van interessepunten op uw tocht delen met familie of vrienden.
\n\tOm een locatie te delen: \n\tOm een locatie te delen:
\n\tGebruik het \'Kaart contextmenu\' -> \'Deel locatie\' menu. \n\tGebruik het \'Kaart contextmenu\' -> \'Deel locatie\' menu.
\n\tSelecteer dan de methode van delen van uw locatie. De opties zijn: E-Mail, SMS(tekst), of kopieer de locatieco<EFBFBD><EFBFBD>naten naar het prikbord.</string> \n\tSelecteer dan de methode van delen van uw locatie. De opties zijn: E-Mail, SMS(tekst), of kopieer de locatiecoördinaten naar het prikbord.</string>
<string name="tip_favorites">Favorieten</string> <string name="tip_favorites">Favorieten</string>
<string name="tip_favorites_t">\tVaak gebruikte punten kunnen worden bewaard als Favorieten. <string name="tip_favorites_t">\tVaak gebruikte punten kunnen worden bewaard als Favorieten.
\n\tOm een punt als Favoriet te bewaren, ga naar het kaartcontextmenu, selecteer de optie \'Voeg toe aan favorieten\' en geef het dan een naam. Nadat het bewaard is, is het te toegankelijk via \'Hoofdmenu\' -> \'Favorieten\'. \n\tOm een punt als Favoriet te bewaren, ga naar het kaartcontextmenu, selecteer de optie \'Voeg toe aan favorieten\' en geef het dan een naam. Nadat het bewaard is, is het te toegankelijk via \'Hoofdmenu\' -> \'Favorieten\'.
@ -426,7 +420,7 @@
\n\tOsmAnd ondersteunt ook eigen kaartbronnen.</string> \n\tOsmAnd ondersteunt ook eigen kaartbronnen.</string>
<string name="tip_app_mode">Gebruikersprofiel</string> <string name="tip_app_mode">Gebruikersprofiel</string>
<string name="tip_app_mode_t">\tOsmAnd ondersteunt verschillende (aanpasbare) programmaprofielen voor verschillende toepassingen. <string name="tip_app_mode_t">\tOsmAnd ondersteunt verschillende (aanpasbare) programmaprofielen voor verschillende toepassingen.
\n\tU kunt profielen wijzigen in \'Menu\' -> \'Instellingen\' -> \'Gebruikersprofiel\', of bij het cren van een route.</string> \n\tU kunt profielen wijzigen in \'Menu\' -> \'Instellingen\' -> \'Gebruikersprofiel\', of bij het creëren van een route.</string>
<string name="tip_navigation">Navigatie</string> <string name="tip_navigation">Navigatie</string>
<string name="tip_navigation_t">\tVoordat u een navigatie start (routing), moet u eerst een bestemming kiezen. Druk daarna op \'Menu\' -> \'Navigeer\' op de kaart en selecteer het type navigatie.</string> <string name="tip_navigation_t">\tVoordat u een navigatie start (routing), moet u eerst een bestemming kiezen. Druk daarna op \'Menu\' -> \'Navigeer\' op de kaart en selecteer het type navigatie.</string>
<string name="tip_search">Zoeken</string> <string name="tip_search">Zoeken</string>
@ -434,7 +428,7 @@
\n\tDoor in het hoofdmenu op \'Zoeken\' te drukken, worden de zoekacties geopend. Voor elk gevonden resultaat, biedt het contextmenu 2 opties: \'Selecteer als bestemming\' of \'Toon op kaart\'.</string> \n\tDoor in het hoofdmenu op \'Zoeken\' te drukken, worden de zoekacties geopend. Voor elk gevonden resultaat, biedt het contextmenu 2 opties: \'Selecteer als bestemming\' of \'Toon op kaart\'.</string>
<string name="tip_map_context_menu">Kaart-ContextMenu</string> <string name="tip_map_context_menu">Kaart-ContextMenu</string>
<string name="tip_map_context_menu_t">\tHet kaart-contextmenu is beschikbaar door een lange druk op de kaart of door op de trackball knop te drukken. <string name="tip_map_context_menu_t">\tHet kaart-contextmenu is beschikbaar door een lange druk op de kaart of door op de trackball knop te drukken.
\n\tDit toont een venster met de puntco<EFBFBD><EFBFBD>naten. Om de kaart-contextmenu dialoog te openen, druk er op. (Een lange druk verbergt het venster weer) \n\tDit toont een venster met de puntcoördinaten. Om de kaart-contextmenu dialoog te openen, druk er op. (Een lange druk verbergt het venster weer)
\n\tHet kaart-contextmenu bevat alle acties met betrekking tot een punt (locatie).</string> \n\tHet kaart-contextmenu bevat alle acties met betrekking tot een punt (locatie).</string>
<string name="tip_initial">Tips and Trucs</string> <string name="tip_initial">Tips and Trucs</string>
<string name="tip_initial_t">\tOsmAnd is a navigatieprogramma met vele features. <string name="tip_initial_t">\tOsmAnd is a navigatieprogramma met vele features.
@ -479,10 +473,10 @@
<string name="amenity_type_sustenance">Horeca</string> <string name="amenity_type_sustenance">Horeca</string>
<string name="amenity_type_tourism">Toerisme</string> <string name="amenity_type_tourism">Toerisme</string>
<string name="amenity_type_transportation">Vervoer</string> <string name="amenity_type_transportation">Vervoer</string>
<string name="indexing_address">adres wordt geexeerd&#8230;</string> <string name="indexing_address">adres wordt geïndexeerd&#8230;</string>
<string name="indexing_map">kaart wordt geexeerd&#8230;</string> <string name="indexing_map">kaart wordt geïndexeerd&#8230;</string>
<string name="indexing_poi">interessepunt wordt geexeerd&#8230;</string> <string name="indexing_poi">interessepunt wordt geïndexeerd&#8230;</string>
<string name="indexing_transport">vervoer wordt geexeerd&#8230;</string> <string name="indexing_transport">vervoer wordt geïndexeerd&#8230;</string>
<string name="input_output_error">datatransportfout opgetreden</string> <string name="input_output_error">datatransportfout opgetreden</string>
<string name="km">km</string> <string name="km">km</string>
<string name="km_h">km/u</string> <string name="km_h">km/u</string>
@ -504,15 +498,15 @@
<string name="specified_dir_doesnt_exist">Kan de opgegeven directory niet vinden.</string> <string name="specified_dir_doesnt_exist">Kan de opgegeven directory niet vinden.</string>
<string name="application_dir">Opslagdirectory</string> <string name="application_dir">Opslagdirectory</string>
<string name="application_dir_change_warning">Wijziging van de opslagdirectory verplaatst of verwijdert de gegevens niet. Dit moet u afzonderlijk en buiten OsmAnd doen. Toch doorgaan?</string> <string name="application_dir_change_warning">Wijziging van de opslagdirectory verplaatst of verwijdert de gegevens niet. Dit moet u afzonderlijk en buiten OsmAnd doen. Toch doorgaan?</string>
<string name="osmand_net_previously_installed">Een oudere OsmAnd versie is al getalleerd. Alle offline gegevens worden ondersteund door het nieuwe programma, maar Favorieten moeten worden ge칰orteerd in het oude programma en later worden geரorteerd door het nieuwe.</string> <string name="osmand_net_previously_installed">Een oudere OsmAnd versie is al geïnstalleerd. Alle offline gegevens worden ondersteund door het nieuwe programma, maar Favorieten moeten worden geëxporteerd in het oude programma en later worden geïmporteerd door het nieuwe.</string>
<string name="build_installed">Versie {0} succesvol getalleerd ({1}).</string> <string name="build_installed">Versie {0} succesvol geïnstalleerd ({1}).</string>
<string name="downloading_build">Downloading versie&#8230;</string> <string name="downloading_build">Downloading versie&#8230;</string>
<string name="install_selected_build">Doorgaan met de installatie van OsmAnd - {0} van {1} {2} MB ?</string> <string name="install_selected_build">Doorgaan met de installatie van OsmAnd - {0} van {1} {2} MB ?</string>
<string name="loading_builds_failed">Het ophalen van de lijst van OsmAndversies is mislukt</string> <string name="loading_builds_failed">Het ophalen van de lijst van OsmAndversies is mislukt</string>
<string name="loading_builds">OsmAnd versies&#8230; worden geladen</string> <string name="loading_builds">OsmAnd versies&#8230; worden geladen</string>
<string name="select_build_to_install">Selecteer een van de OsmAnd versies om te installeren</string> <string name="select_build_to_install">Selecteer een van de OsmAnd versies om te installeren</string>
<string name="contribution_activity">Speciale actie voor contributie-versies</string> <string name="contribution_activity">Speciale actie voor contributie-versies</string>
<string name="gps_status_app_not_found">GPS Status programma niet getalleerd. Zoeken in Market?</string> <string name="gps_status_app_not_found">GPS Status programma niet geïnstalleerd. Zoeken in Market?</string>
<string name="voice_is_not_available_msg">Stem-begeleiding is niet aanwezig. Ga naar instellingen, selecteer een stem-gegevens pakket, en download deze.</string> <string name="voice_is_not_available_msg">Stem-begeleiding is niet aanwezig. Ga naar instellingen, selecteer een stem-gegevens pakket, en download deze.</string>
<string name="voice_is_not_available_title">Geen stem-begeleiding geselecteerd</string> <string name="voice_is_not_available_title">Geen stem-begeleiding geselecteerd</string>
<string name="daynight_mode_day">Dag</string> <string name="daynight_mode_day">Dag</string>
@ -574,7 +568,7 @@
<string name="rotate_map_to_bearing_descr">Selecteer hoe de kaart roteert</string> <string name="rotate_map_to_bearing_descr">Selecteer hoe de kaart roteert</string>
<string name="rotate_map_to_bearing">Kaartrotatie</string> <string name="rotate_map_to_bearing">Kaartrotatie</string>
<string name="show_route">Route-details</string> <string name="show_route">Route-details</string>
<string name="fav_imported_sucessfully">Favorieten succesvol georteerd</string> <string name="fav_imported_sucessfully">Favorieten succesvol geïmporteerd</string>
<string name="fav_file_to_load_not_found">GPX bestand met favorieten niet gevonden op {0}</string> <string name="fav_file_to_load_not_found">GPX bestand met favorieten niet gevonden op {0}</string>
<string name="fav_saved_sucessfully">Favorieten succesvol opgeslagen in {0}</string> <string name="fav_saved_sucessfully">Favorieten succesvol opgeslagen in {0}</string>
<string name="no_fav_to_save">Geen favorieten om op te slaan</string> <string name="no_fav_to_save">Geen favorieten om op te slaan</string>
@ -595,7 +589,7 @@
<string name="layer_poi">interessepunt&#8230;</string> <string name="layer_poi">interessepunt&#8230;</string>
<string name="layer_map">Kaartbron&#8230;</string> <string name="layer_map">Kaartbron&#8230;</string>
<string name="menu_layers">Definieer beeld</string> <string name="menu_layers">Definieer beeld</string>
<string name="continue_follow_previous_route">Vorige route was niet bedigd. Doorgaan met die route?</string> <string name="continue_follow_previous_route">Vorige route was niet beëindigd. Doorgaan met die route?</string>
<string name="context_menu_item_search_poi">Zoek interessepunt</string> <string name="context_menu_item_search_poi">Zoek interessepunt</string>
<string name="context_menu_item_show_route">Toon route vanaf hier</string> <string name="context_menu_item_show_route">Toon route vanaf hier</string>
<string name="use_trackball_descr">Gebruik trackball om de kaart te verschuiven</string> <string name="use_trackball_descr">Gebruik trackball om de kaart te verschuiven</string>
@ -648,7 +642,7 @@
<string name="map_orientation_default">Zelfde als apparaat-instelling</string> <string name="map_orientation_default">Zelfde als apparaat-instelling</string>
<string name="map_orientation_portrait">Staand</string> <string name="map_orientation_portrait">Staand</string>
<string name="map_orientation_landscape">Liggend</string> <string name="map_orientation_landscape">Liggend</string>
<string name="map_screen_orientation">Kaartscherm-oriatie</string> <string name="map_screen_orientation">Kaartscherm-oriëntatie</string>
<string name="map_screen_orientation_descr">Selecteer scherm-orientation</string> <string name="map_screen_orientation_descr">Selecteer scherm-orientation</string>
<string name="opening_hours_not_supported">Openingtijden-formaat kan niet gewijzigd worden</string> <string name="opening_hours_not_supported">Openingtijden-formaat kan niet gewijzigd worden</string>
<string name="add_new_rule">Voeg nieuwe regel toe</string> <string name="add_new_rule">Voeg nieuwe regel toe</string>
@ -737,7 +731,7 @@
<string name="empty_route_calculated">Fout: berekende route is leeg</string> <string name="empty_route_calculated">Fout: berekende route is leeg</string>
<string name="new_route_calculated_dist">Nieuwe route berekend, afstand</string> <string name="new_route_calculated_dist">Nieuwe route berekend, afstand</string>
<string name="arrived_at_destination">U bent aangekomen op uw bestemming</string> <string name="arrived_at_destination">U bent aangekomen op uw bestemming</string>
<string name="invalid_locations">Co<EFBFBD><EFBFBD>naten zijn ongeldig!</string> <string name="invalid_locations">Coördinaten zijn ongeldig!</string>
<string name="go_back_to_osmand">Ga terug naar de OsmAnd kaart</string> <string name="go_back_to_osmand">Ga terug naar de OsmAnd kaart</string>
<string name="close">Sluiten</string> <string name="close">Sluiten</string>
<string name="loading_data">Gegevens worden geladen&#8230;</string> <string name="loading_data">Gegevens worden geladen&#8230;</string>
@ -800,7 +794,7 @@
<string name="show_location">Toon locatie</string> <string name="show_location">Toon locatie</string>
<string name="map_preferences">Kaart</string> <string name="map_preferences">Kaart</string>
<string name="settings_activity">Instellingen</string> <string name="settings_activity">Instellingen</string>
<string name="show_gps_coordinates_text">Toon GPS co<EFBFBD><EFBFBD>naten op kaart</string> <string name="show_gps_coordinates_text">Toon GPS coördinaten op kaart</string>
<string name="use_internet_to_download_tile">Gebruik het Internet om ontbrekende kaartsegmenten te downloaden</string> <string name="use_internet_to_download_tile">Gebruik het Internet om ontbrekende kaartsegmenten te downloaden</string>
<string name="app_description">Navigatieprogramma</string> <string name="app_description">Navigatieprogramma</string>
<string name="exit_Button">Afsluiten</string> <string name="exit_Button">Afsluiten</string>
@ -843,7 +837,7 @@
<string name="context_menu_item_add_favorite">Voeg toe aan favorieten</string> <string name="context_menu_item_add_favorite">Voeg toe aan favorieten</string>
<string name="context_menu_item_update_map">Actualiseer kaart</string> <string name="context_menu_item_update_map">Actualiseer kaart</string>
<string name="context_menu_item_open_bug">Open OSM bug</string> <string name="context_menu_item_open_bug">Open OSM bug</string>
<string name="context_menu_item_create_poi">Cre interessepunt</string> <string name="context_menu_item_create_poi">Creëer interessepunt</string>
<string name="default_buttons_yes">Ja</string> <string name="default_buttons_yes">Ja</string>
<string name="default_buttons_cancel">Annuleer</string> <string name="default_buttons_cancel">Annuleer</string>
<string name="default_buttons_apply">Toepassen</string> <string name="default_buttons_apply">Toepassen</string>
@ -873,7 +867,7 @@
<string name="osb_close_dialog_success">Bug is afgesloten</string> <string name="osb_close_dialog_success">Bug is afgesloten</string>
<string name="osb_close_dialog_error">Fout opgetreden: bug is niet afgesloten</string> <string name="osb_close_dialog_error">Fout opgetreden: bug is niet afgesloten</string>
<string name="poi_edit_title">Bewerk interessepunt</string> <string name="poi_edit_title">Bewerk interessepunt</string>
<string name="poi_create_title">Cre interessepunt</string> <string name="poi_create_title">Creëer interessepunt</string>
<string name="poi_error_poi_not_found">Punt niet gevonden of voorziening is niet een enkel punt</string> <string name="poi_error_poi_not_found">Punt niet gevonden of voorziening is niet een enkel punt</string>
<string name="poi_remove_confirm_template">Verwijderen {0} (geef commentaar)?</string> <string name="poi_remove_confirm_template">Verwijderen {0} (geef commentaar)?</string>
<string name="poi_remove_title">Verwijder interessepunt</string> <string name="poi_remove_title">Verwijder interessepunt</string>

View file

@ -18,8 +18,6 @@
<string name="show_altitude_info">Pokaż wysokość</string> <string name="show_altitude_info">Pokaż wysokość</string>
<string name="use_transparent_map_theme_descr">Użyj przezroczystych kontrolek mapy</string> <string name="use_transparent_map_theme_descr">Użyj przezroczystych kontrolek mapy</string>
<string name="use_transparent_map_theme">Przezroczysty styl</string> <string name="use_transparent_map_theme">Przezroczysty styl</string>
<string name="appearance_settings_descr">Konfiguruj wygląd aplikacji</string>
<string name="appearance_settings">- Wygląd</string>
<string name="native_library_not_supported">Biblioteka renderowania natywnego nie jest obsługiwana na tym urządzeniu.</string> <string name="native_library_not_supported">Biblioteka renderowania natywnego nie jest obsługiwana na tym urządzeniu.</string>
<string name="init_native_library">Inicjalizacja biblioteki renderowania natywnego…</string> <string name="init_native_library">Inicjalizacja biblioteki renderowania natywnego…</string>
@ -203,8 +201,6 @@
<string name="default_none">Brak</string> <string name="default_none">Brak</string>
<string name="map_overlay">Nakładka</string> <string name="map_overlay">Nakładka</string>
<string name="map_overlay_descr">Wybierz nakładkę (overlay)</string> <string name="map_overlay_descr">Wybierz nakładkę (overlay)</string>
<string name="map_vector_data">Wektorowe mapy offline</string>
<string name="map_vector_data_descr">Użyj pobranych map wektorowych</string>
<string name="tile_source_already_installed">Mapa jest już zainstalowana, ustawienia zostaną zaktualizowane</string> <string name="tile_source_already_installed">Mapa jest już zainstalowana, ustawienia zostaną zaktualizowane</string>
<string name="select_tile_source_to_install">Zaznacz mapy (kafelkowe) do zainstalowania lub zaktualizowania</string> <string name="select_tile_source_to_install">Zaznacz mapy (kafelkowe) do zainstalowania lub zaktualizowania</string>
<string name="internet_not_available">Połączenie internetowe, wymagane dla tej operacji, jest niedostępne</string> <string name="internet_not_available">Połączenie internetowe, wymagane dla tej operacji, jest niedostępne</string>
@ -370,8 +366,6 @@
<string name="general_settings_descr">Skonfiguruj użycie Internetu, opcje wyświetlania i inne</string> <string name="general_settings_descr">Skonfiguruj użycie Internetu, opcje wyświetlania i inne</string>
<string name="general_settings">Ustawienia główne</string> <string name="general_settings">Ustawienia główne</string>
<string name="rendering_settings_descr">Skonfiguruj źródło mapy i wygląd</string>
<string name="rendering_settings">- Mapy</string>
<string name="index_settings_descr">Pobierz/zarządzaj mapami i danymi offline</string> <string name="index_settings_descr">Pobierz/zarządzaj mapami i danymi offline</string>
<string name="index_settings">Dane offline</string> <string name="index_settings">Dane offline</string>
<string name="osmand_service">Usługa w tle</string> <string name="osmand_service">Usługa w tle</string>

View file

@ -59,8 +59,6 @@
<string name="reload">Atualizar</string> <string name="reload">Atualizar</string>
<string name="general_settings_descr">Configurar o uso da Internet, opções de visualização, e mais</string> <string name="general_settings_descr">Configurar o uso da Internet, opções de visualização, e mais</string>
<string name="general_settings">Configurações Gerais</string> <string name="general_settings">Configurações Gerais</string>
<string name="rendering_settings_descr">Configurar a origem do mapa e sua aparência</string>
<string name="rendering_settings">- Mapas</string>
<string name="index_settings_descr">Obter ou atualizar dados para uso offline</string> <string name="index_settings_descr">Obter ou atualizar dados para uso offline</string>
<string name="index_settings">Dados offline</string> <string name="index_settings">Dados offline</string>
<string name="osmand_service">Serviço de segundo plano</string> <string name="osmand_service">Serviço de segundo plano</string>

View file

@ -108,8 +108,7 @@
<string name="show_altitude_info">Показывать высоты</string> <string name="show_altitude_info">Показывать высоты</string>
<string name="use_transparent_map_theme_descr">Использовать прозрачные информационные элементы на карте</string> <string name="use_transparent_map_theme_descr">Использовать прозрачные информационные элементы на карте</string>
<string name="use_transparent_map_theme">Прозрачная тема</string> <string name="use_transparent_map_theme">Прозрачная тема</string>
<string name="appearance_settings_descr">Настроить внешний вид карты</string>
<string name="appearance_settings">- Внешний вид</string>
<string name="native_library_not_supported">Нативная библиотека не поддерживается на этом устройстве.</string> <string name="native_library_not_supported">Нативная библиотека не поддерживается на этом устройстве.</string>
<string name="init_native_library">Инициализация нативной библиотеки…</string> <string name="init_native_library">Инициализация нативной библиотеки…</string>
<string name="choose_auto_follow_route">Настройки автовозрата карты</string> <string name="choose_auto_follow_route">Настройки автовозрата карты</string>
@ -273,8 +272,6 @@
<string name="default_none">Нет</string> <string name="default_none">Нет</string>
<string name="map_overlay">Карта покрытия</string> <string name="map_overlay">Карта покрытия</string>
<string name="map_overlay_descr">Выберите слой для покрытия основной карты</string> <string name="map_overlay_descr">Выберите слой для покрытия основной карты</string>
<string name="map_vector_data">Векторные карты</string>
<string name="map_vector_data_descr">Использовать загруженные векторные карты</string>
<string name="tile_source_already_installed">Карта уже установлена, настройки будут обновлены</string> <string name="tile_source_already_installed">Карта уже установлена, настройки будут обновлены</string>
<string name="select_tile_source_to_install">Выберите карты для установки или обновления</string> <string name="select_tile_source_to_install">Выберите карты для установки или обновления</string>
<string name="internet_not_available">Интернет соединение не доступно</string> <string name="internet_not_available">Интернет соединение не доступно</string>
@ -409,9 +406,7 @@
<string name="reload">Перезагрузить</string> <string name="reload">Перезагрузить</string>
<string name="general_settings_descr">Настроить использование интернета, выбрать ориентацию экрана, вращение карты и другое</string> <string name="general_settings_descr">Настроить использование интернета, выбрать ориентацию экрана, вращение карты и другое</string>
<string name="general_settings">Общие</string> <string name="general_settings">Общие</string>
<string name="rendering_settings_descr">Выбрать источник карты и конфигурацию</string> <string name="index_settings_descr">Загрузить и обновить данные для офлайн использования</string>
<string name="rendering_settings">- Настройка карты</string>
<string name="index_settings_descr">Загрузить и обновить данные для офлайн использования</string>
<string name="index_settings">Данные</string> <string name="index_settings">Данные</string>
<string name="osmand_service">Фоновый режим</string> <string name="osmand_service">Фоновый режим</string>
<string name="osmand_service_descr">Запустить OsmAnd в фоновом режиме для записи трека и навигации</string> <string name="osmand_service_descr">Запустить OsmAnd в фоновом режиме для записи трека и навигации</string>

View file

@ -1,5 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<resources> <resources>
<string name="plugins_screen">Zásuvné moduly</string>
<string name="select_plugin_to_activate">Ťuknutím na zásuvný modul ho aktivujete. Pre aplikovanie zmien je vyžadovaný reštart aplikácie.</string>
<string name="prefs_plugins_descr">Zás. moduly povoľujú extra funkcie vstavané do aplikácie ako stopovanie, mapové dlaždice, funkcie šetrenia batérie, prístupnosť a mnoho iného.</string>
<string name="prefs_plugins">Zásuvné moduly</string>
<string name="tip_recent_changes_0_8_0_t">Zmeny v 0.8.0 :
\n\t- Funkcia zásuvných modulov
\n\t- Podpora nových offline mapových dát
\n\t- Mnoho opravených chýb
</string>
<string name="osm_editing_plugin_description">Tento zás. modul je zameraný na zlepšovanie OSM kvality. Umožňuje zbierať/upravovať OSM POI objekty, otvoriť/komentovať OSM chyby a odosielať zaznamenané GPX (vyžaduje OSM prihlásenie).</string>
<string name="osm_editing_plugin_name">Osm upravovanie</string>
<string name="vector_maps_may_display_faster_on_some_devices">Vektorové mapy môžu byť zobrazované rýchlejšie. Nemusí správne fungovať na niektorých zariadeniach.</string> <string name="vector_maps_may_display_faster_on_some_devices">Vektorové mapy môžu byť zobrazované rýchlejšie. Nemusí správne fungovať na niektorých zariadeniach.</string>
<string name="simulate_route_progression_manually">Ručné simulovanie priebehu cesty</string> <string name="simulate_route_progression_manually">Ručné simulovanie priebehu cesty</string>
<string name="play_commands_of_currently_selected_voice">Prehranie povelov pre aktuálne zvolený hlas</string> <string name="play_commands_of_currently_selected_voice">Prehranie povelov pre aktuálne zvolený hlas</string>
@ -178,8 +189,7 @@
<string name="use_transparent_map_theme_descr">Použije priehľadné ovládače mapy</string> <string name="use_transparent_map_theme_descr">Použije priehľadné ovládače mapy</string>
<string name="use_transparent_map_theme">Priehľadná téma</string> <string name="use_transparent_map_theme">Priehľadná téma</string>
<string name="appearance_settings_descr">Konfiguruje mapové zobrazenie</string>
<string name="appearance_settings">- Vzhľad mapy</string>
<string name="native_library_not_supported">Natívna knižnica nie je podporovaná na tomto zariadení.</string> <string name="native_library_not_supported">Natívna knižnica nie je podporovaná na tomto zariadení.</string>
<string name="init_native_library">Inicializácia natívnej knižnice…</string> <string name="init_native_library">Inicializácia natívnej knižnice…</string>
<string name="choose_auto_follow_route">Automatické nasledovanie</string> <string name="choose_auto_follow_route">Automatické nasledovanie</string>
@ -361,8 +371,6 @@
<string name="default_none">Žiadna</string> <string name="default_none">Žiadna</string>
<string name="map_overlay">Prekrývacia mapa</string> <string name="map_overlay">Prekrývacia mapa</string>
<string name="map_overlay_descr">Výber mapy na prekrytie</string> <string name="map_overlay_descr">Výber mapy na prekrytie</string>
<string name="map_vector_data">Offline vektorové mapy</string>
<string name="map_vector_data_descr">Použitie stiahnutých vektorových máp</string>
<string name="tile_source_already_installed">Mapa je už nainštalovaná, nastavenia budú zaktualizované</string> <string name="tile_source_already_installed">Mapa je už nainštalovaná, nastavenia budú zaktualizované</string>
<string name="select_tile_source_to_install">Vyberte mapy na inštaláciu alebo aktualizáciu</string> <string name="select_tile_source_to_install">Vyberte mapy na inštaláciu alebo aktualizáciu</string>
<string name="internet_not_available">Internetové pripojenie potrebné pre operáciu nie je dostupné</string> <string name="internet_not_available">Internetové pripojenie potrebné pre operáciu nie je dostupné</string>
@ -525,8 +533,6 @@
<string name="general_settings_descr">Konfigurácia zobrazenia a iných globálnych nastavení</string> <string name="general_settings_descr">Konfigurácia zobrazenia a iných globálnych nastavení</string>
<string name="general_settings">Všeobecné nastavenia</string> <string name="general_settings">Všeobecné nastavenia</string>
<string name="rendering_settings_descr">Konfigurácia mapy a mapových zdrojov</string>
<string name="rendering_settings">- Konfigurácia mapy</string>
<string name="index_settings_descr">Stiahnutie a správa offline máp a iných údajov ako sú GPX stopy</string> <string name="index_settings_descr">Stiahnutie a správa offline máp a iných údajov ako sú GPX stopy</string>
<string name="index_settings">Offline údaje</string> <string name="index_settings">Offline údaje</string>
<string name="osmand_service">Služba na pozadí</string> <string name="osmand_service">Služba na pozadí</string>

View file

@ -190,8 +190,6 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com -->
<string name="default_none">Không</string> <string name="default_none">Không</string>
<string name="map_overlay">Chồng phủ bản đồ</string> <string name="map_overlay">Chồng phủ bản đồ</string>
<string name="map_overlay_descr">Chọn bản đồ cần chồng phủ</string> <string name="map_overlay_descr">Chọn bản đồ cần chồng phủ</string>
<string name="map_vector_data">Bản đồ vector Offline</string>
<string name="map_vector_data_descr">Sử dụng bản đồ vector đã tải</string>
<string name="tile_source_already_installed">Bản đồ đã được cài, các thiết lập sẽ được cập nhật</string> <string name="tile_source_already_installed">Bản đồ đã được cài, các thiết lập sẽ được cập nhật</string>
<string name="select_tile_source_to_install">Chọn bản đồ cần cài đặt hoặc cập nhật</string> <string name="select_tile_source_to_install">Chọn bản đồ cần cài đặt hoặc cập nhật</string>
<string name="internet_not_available">Không vào được Internet</string> <string name="internet_not_available">Không vào được Internet</string>
@ -366,8 +364,6 @@ Translator: Le Viet Thanh; email: lethanhx2k@gmail.com -->
<string name="general_settings_descr">Các thiết lập chung cho ứng dụng</string> <string name="general_settings_descr">Các thiết lập chung cho ứng dụng</string>
<string name="general_settings">Thiết lập chung</string> <string name="general_settings">Thiết lập chung</string>
<string name="rendering_settings_descr">Các thiết lập và hiển thị cho bản đồ</string>
<string name="rendering_settings">- Bản đồ</string>
<string name="index_settings_descr">Tải và Quản lý bản đồ Offline hoặc các dữ liệu khác(GPX)</string> <string name="index_settings_descr">Tải và Quản lý bản đồ Offline hoặc các dữ liệu khác(GPX)</string>
<string name="index_settings">Dữ liệu Offline</string> <string name="index_settings">Dữ liệu Offline</string>
<string name="osmand_service">Chạy ngầm</string> <string name="osmand_service">Chạy ngầm</string>

View file

@ -1,22 +1,51 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources> <resources>
<string name="plugins_screen">Plugins</string> <!--
<string name="select_plugin_to_activate">Touch a plugin item to activate it. Application restart is needed to take an effect.</string> Disclaimer :
<string name="prefs_plugins_descr">Plugins enable extra functionality builtin in the application such as Tracking, Tile Maps, Battery Saving features, Accessibility and many others.</string> If you are going to translate strings, please make sure :
<string name="prefs_plugins">Plugins</string> 1. There is no duplicate strings by name
2. Every apostrophe is started with quote (look others).
If you are making/correcting english translations make sure :
1. All your modified/created strings are in the top of the file (to make easier find what's translated).
-->
<string name="map_online_plugin_is_not_installed">Enable online maps plugin to select different map sources</string>
<string name="map_online_data">Online maps</string>
<string name="map_online_data_descr">Use online maps (download and save them on sdcard)</string>
<string name="online_map_settings">Online Map</string>
<string name="online_map_settings_descr">Configure online or cached tile map sources</string>
<string name="map_settings">- Map Settings</string>
<string name="map_settings_descr">Configure the map display</string>
<string name="osmand_rastermaps_plugin_description">This plugin facilitates using a variety of online or cached tile maps as base map or as overlay / underlay maps. The maps can also be prepared offline and copied to the Osmand folder.</string>
<string name="osmand_rastermaps_plugin_name">Online Maps</string>
<string name="osmand_background_plugin_description">This plugin allows navigating and tracking in power saving (screen off) mode. It runs a background service periodically waking up the GPS to record a track point or give a navigation prompt.</string>
<string name="osmand_background_plugin_name">Screen Off Features</string>
<string name="osmand_accessibility_description">This plugin configures special accessibility features.</string>
<string name="osmand_accessibility_name">Accessibility</string>
<string name="extra_settings">Extra settings</string>
<string name="osmand_monitoring_description">This plugin facilitates recording your trips to GPX files or live monitoring using a web service.</string>
<string name="osmand_monitoring_name">Tracking + Monitoring</string>
<string name="osmand_extra_settings_description">This plugin facilitates extra customization of the map appearance enables more device-specific settings.</string>
<string name="osmand_extra_settings_name">Extra Settings</string>
<string name="osmand_development_plugin_description">This plugin enables development and debugging features like animated navigation or rendering performance display.</string>
<string name="osmand_development_plugin_name">Osmand Development</string>
<string name="plugins_screen">Plugin Manager</string>
<string name="select_plugin_to_activate">Touch a Plugin to activate or deactivate it. (Restarting Osmand may be required.)</string>
<string name="prefs_plugins_descr">Plugins provide extra functionality already contained in the application like tracking, tile maps, screen off mode, accessibility settings, and others.</string>
<string name="prefs_plugins">Plugin Manager</string>
<string name="tip_recent_changes_0_8_0_t">Changes in 0.8.0 : <string name="tip_recent_changes_0_8_0_t">Changes in 0.8.0 :
\n\t- Plugin functionality \n\t- Plugin functionality
\n\t- New offline map data support \n\t- New offline map data support
\n\t- Lots of bug fixes \n\t- Lots of bug fixes
</string> </string>
<string name="osm_editing_plugin_description">This plugin is intented to improve OSM quality. It allows to collect/modify OSM POI objects, open/comment OSM bugs and send recorded GPX (requires OSM credentials).</string> <string name="osm_editing_plugin_description">This plugin facilitates OSM feedback. It allows to collect/modify OSM POI objects, open/comment OSM bugs, and contribute recorded GPX files (requires OSM credentials).</string>
<string name="osm_editing_plugin_name">Osm Editing</string> <string name="osm_editing_plugin_name">Osm Editing</string>
<string name="vector_maps_may_display_faster_on_some_devices">Vector maps may display faster. May not work well on some devices.</string> <string name="vector_maps_may_display_faster_on_some_devices">Vector maps may display faster. May not work well on some devices.</string>
<string name="simulate_route_progression_manually">Simulate route progression manually</string> <string name="simulate_route_progression_manually">Simulate route progression manually</string>
<string name="play_commands_of_currently_selected_voice">Play commands of currently selected voice</string> <string name="play_commands_of_currently_selected_voice">Play commands of currently selected voice</string>
<string name="debugging_and_development">OsmAnd debugging and development</string> <string name="debugging_and_development">OsmAnd debugging and development</string>
<string name="native_rendering">Native rendering</string> <string name="native_rendering">Native rendering</string>
<string name="animate_routing">Animate routing</string> <string name="animate_routing">Animate navigation</string>
<string name="test_voice_prompts">Test voice prompts</string> <string name="test_voice_prompts">Test voice prompts</string>
<string name="switch_to_raster_map_to_see">No offline vector map present for this location. You can download one in Settings (Offline data), or switch to online maps.</string> <string name="switch_to_raster_map_to_see">No offline vector map present for this location. You can download one in Settings (Offline data), or switch to online maps.</string>
<string name="tip_recent_changes_0_7_2_t">Changes in 0.7.2 : <string name="tip_recent_changes_0_7_2_t">Changes in 0.7.2 :
@ -130,11 +159,11 @@
<string name="local_openstreetmap_settings_descr">Show and manage OSM POIs noted in local database</string> <string name="local_openstreetmap_settings_descr">Show and manage OSM POIs noted in local database</string>
<string name="live_monitoring_descr">Send tracking to a specified web service</string> <string name="live_monitoring_descr">Send tracking to a specified web service</string>
<string name="live_monitoring">Online Live Tracking</string> <string name="live_monitoring">Online live tracking</string>
<string name="live_monitoring_interval_descr">Specify Live Tracking interval</string> <string name="live_monitoring_interval_descr">Specify live tracking interval</string>
<string name="live_monitoring_interval">Live Tracking interval</string> <string name="live_monitoring_interval">Live tracking interval</string>
<string name="live_monitoring_url_descr">Specify the web address with parameter syntax : lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}</string> <string name="live_monitoring_url_descr">Specify the web address with parameter syntax : lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}</string>
<string name="live_monitoring_url">Live Tracking web address</string> <string name="live_monitoring_url">Live tracking web address</string>
<string name="gpx_monitoring_disabled_warn">Please enable \'Log track to GPX\' Tracking settings</string> <string name="gpx_monitoring_disabled_warn">Please enable \'Log track to GPX\' Tracking settings</string>
<string name="show_current_gpx_title">Show current track</string> <string name="show_current_gpx_title">Show current track</string>
<string name="tip_recent_changes_0_7_0_t">Changes in 0.7.0 : <string name="tip_recent_changes_0_7_0_t">Changes in 0.7.0 :
@ -169,16 +198,13 @@
<string name="profile_settings">Profile Specific Settings</string> <string name="profile_settings">Profile Specific Settings</string>
<string name="settings_preset">User Profile</string> <string name="settings_preset">User Profile</string>
<string name="settings_preset_descr">Select a user profile. Each profile contains specific settings, which can be customized below.</string> <string name="settings_preset_descr">Select a user profile. Each profile contains specific settings, which can be customized below.</string>
<string name="rendering_settings">- Map configuration</string>
<string name="rendering_settings_descr">Configure maps and map sources</string>
<string name="appearance_settings">- Map appearance</string>
<string name="appearance_settings_descr">Configure map display</string>
<string name="monitor_preferences">- Tracking</string> <string name="monitor_preferences">- Tracking</string>
<string name="monitor_preferences_descr">Specify tracking settings</string> <string name="monitor_preferences_descr">Specify tracking settings</string>
<string name="routing_settings">- Navigation</string> <string name="routing_settings">- Navigation</string>
<string name="routing_settings_descr">Specify navigation options</string> <string name="routing_settings_descr">Specify navigation options</string>
<string name="global_settings">Global Settings</string> <string name="global_settings">Global Settings</string>
<string name="index_settings">Offline Data</string> <string name="index_settings">Offline Data (Download)</string>
<string name="index_settings_descr">Download and manage offline maps and other data such as GPX tracks</string> <string name="index_settings_descr">Download and manage offline maps and other data such as GPX tracks</string>
<string name="general_settings">General Settings</string> <string name="general_settings">General Settings</string>
<string name="general_settings_descr">Configure global settings</string> <string name="general_settings_descr">Configure global settings</string>
@ -187,7 +213,7 @@
<string name="user_name_descr">Needed for openstreetmap.org submissions</string> <string name="user_name_descr">Needed for openstreetmap.org submissions</string>
<string name="user_password">Your OSM password</string> <string name="user_password">Your OSM password</string>
<string name="user_password_descr">Needed for openstreetmap.org submissions</string> <string name="user_password_descr">Needed for openstreetmap.org submissions</string>
<string name="osmand_service">Background settings</string> <string name="osmand_service">Background Settings</string>
<string name="osmand_service_descr">Use to run OsmAnd while screen is off</string> <string name="osmand_service_descr">Use to run OsmAnd while screen is off</string>
@ -419,8 +445,6 @@
<string name="default_none">None</string> <string name="default_none">None</string>
<string name="map_overlay">Overlay map</string> <string name="map_overlay">Overlay map</string>
<string name="map_overlay_descr">Choose overlay map</string> <string name="map_overlay_descr">Choose overlay map</string>
<string name="map_vector_data">Offline vector maps</string>
<string name="map_vector_data_descr">Use downloaded vector maps</string>
<string name="tile_source_already_installed">Map is already installed, settings will be updated</string> <string name="tile_source_already_installed">Map is already installed, settings will be updated</string>
<string name="select_tile_source_to_install">Select (tile) maps to install or update</string> <string name="select_tile_source_to_install">Select (tile) maps to install or update</string>
<string name="internet_not_available">Internet connection required for operation is not available</string> <string name="internet_not_available">Internet connection required for operation is not available</string>

View file

@ -2,71 +2,20 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="@string/profile_settings" android:key="profile_dep_cat"> <PreferenceCategory android:title="@string/profile_settings" android:key="profile_dep_cat">
<ListPreference android:summary="@string/settings_preset_descr" android:title="@string/settings_preset" android:key="application_mode"></ListPreference> <ListPreference android:summary="@string/settings_preset_descr" android:title="@string/settings_preset" android:key="application_mode"></ListPreference>
<PreferenceScreen android:key="appearance_settings" android:title="@string/map_settings" android:summary="@string/map_settings_descr">
<PreferenceScreen android:key="map_settings" android:title="@string/rendering_settings" android:summary="@string/rendering_settings_descr"> <ListPreference android:key="rotate_map" android:title="@string/rotate_map_to_bearing" android:summary="@string/rotate_map_to_bearing_descr"></ListPreference>
<PreferenceCategory android:title="@string/pref_raster_map"> <ListPreference android:key="daynight_mode" android:title="@string/daynight" android:summary="@string/daynight_descr"></ListPreference>
<CheckBoxPreference android:summary="@string/map_vector_data_descr" android:title="@string/map_vector_data" <CheckBoxPreference android:key="show_view_angle" android:title="@string/show_view_angle" android:summary="@string/show_view_angle_descr"></CheckBoxPreference>
android:key="map_vector_data"></CheckBoxPreference> <CheckBoxPreference android:title="@string/auto_zoom_map" android:summary="@string/auto_zoom_map_descr" android:key="auto_zoom_map"></CheckBoxPreference>
<ListPreference android:title="@string/map_tile_source" android:summary="@string/map_tile_source_descr" android:key="map_tile_sources"></ListPreference> <CheckBoxPreference android:summary="@string/use_english_names_descr" android:title="@string/use_english_names"
<CheckBoxPreference android:key="use_internet_to_download_tiles" android:title="@string/use_internet" android:summary="@string/use_internet_to_download_tile"></CheckBoxPreference> android:key="use_english_names"></CheckBoxPreference>
<!-- try without, Issue 823: <CheckBoxPreference android:key="show_altitude_info" android:title="@string/show_altitude_info" android:summary="@string/show_altitude_info_descr"/>
<ListPreference android:title="@string/max_level_download_tile" android:summary="@string/max_level_download_tile_descr"
android:key="max_level_download_tile"></ListPreference>
-->
<ListPreference android:title="@string/level_to_switch_vector_raster" android:summary="@string/level_to_switch_vector_raster_descr"
android:key="level_to_switch_vector_raster"></ListPreference>
</PreferenceCategory>
<PreferenceCategory android:title="@string/pref_overlay">
<ListPreference android:title="@string/map_overlay" android:summary="@string/map_overlay_descr" android:key="map_overlay"></ListPreference>
<ListPreference android:title="@string/map_underlay" android:summary="@string/map_underlay_descr" android:key="map_underlay"></ListPreference>
<net.osmand.plus.views.SeekBarPreference android:key="overlay_transparency" android:defaultValue="0" android:max="255"
android:dialogMessage="@string/modify_transparency" android:title="@string/overlay_transparency" android:summary="@string/overlay_transparency_descr"/>
<net.osmand.plus.views.SeekBarPreference android:key="map_transparency" android:defaultValue="0" android:max="255"
android:dialogMessage="@string/modify_transparency" android:title="@string/map_transparency" android:summary="@string/map_transparency_descr"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/pref_vector_map"> <PreferenceCategory android:title="@string/pref_vector_map">
<ListPreference android:key="renderer" android:title="@string/renderers" android:summary="@string/renderers_descr"></ListPreference> <ListPreference android:key="renderer" android:title="@string/renderers" android:summary="@string/renderers_descr"></ListPreference>
<ListPreference android:key="map_text_size" android:title="@string/map_text_size" android:summary="@string/map_text_size_descr"/> <ListPreference android:key="map_text_size" android:title="@string/map_text_size" android:summary="@string/map_text_size_descr"/>
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory android:title="@string/pref_vector_rendering" android:key="custom_vector_rendering">
</PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>
<PreferenceScreen android:key="appearance_settings" android:title="@string/appearance_settings" android:summary="@string/appearance_settings_descr">
<ListPreference android:key="daynight_mode" android:title="@string/daynight" android:summary="@string/daynight_descr"></ListPreference>
<ListPreference android:key="rotate_map" android:title="@string/rotate_map_to_bearing" android:summary="@string/rotate_map_to_bearing_descr"></ListPreference>
<CheckBoxPreference android:title="@string/auto_zoom_map" android:summary="@string/auto_zoom_map_descr" android:key="auto_zoom_map"></CheckBoxPreference>
<ListPreference android:key="position_on_map" android:title="@string/position_on_map" android:summary="@string/position_on_map_descr"></ListPreference>
<CheckBoxPreference android:key="show_view_angle" android:title="@string/show_view_angle" android:summary="@string/show_view_angle_descr"></CheckBoxPreference>
<CheckBoxPreference android:summary="@string/use_english_names_descr" android:title="@string/use_english_names"
android:key="use_english_names"></CheckBoxPreference>
<CheckBoxPreference android:key="show_altitude_info" android:title="@string/show_altitude_info" android:summary="@string/show_altitude_info_descr"/>
<CheckBoxPreference android:key="transparent_map_theme" android:title="@string/use_transparent_map_theme" android:summary="@string/use_transparent_map_theme_descr"/>
<CheckBoxPreference android:key="fluorescent_overlays" android:title="@string/use_fluorescent_overlays" android:summary="@string/use_fluorescent_overlays_descr"/>
<CheckBoxPreference android:key="show_ruler" android:title="@string/show_ruler_level" android:summary="@string/show_ruler_level_descr"/>
</PreferenceScreen>
<PreferenceScreen android:key = "monitor_settings" android:title="@string/monitor_preferences" android:summary="@string/monitor_preferences_descr">
<PreferenceCategory android:title="@string/save_track_to_gpx">
<CheckBoxPreference android:summary="@string/save_track_to_gpx_descrp" android:title="@string/save_track_to_gpx"
android:key="save_track_to_gpx"></CheckBoxPreference>
<ListPreference android:summary="@string/save_track_interval_descr" android:title="@string/save_track_interval"
android:key="save_track_interval"></ListPreference>
<Preference android:summary="@string/save_current_track_descr" android:title="@string/save_current_track" android:key="save_current_track"></Preference>
</PreferenceCategory>
<PreferenceCategory android:title="@string/live_monitoring">
<CheckBoxPreference android:summary="@string/live_monitoring_descr" android:title="@string/live_monitoring"
android:key="live_monitoring"></CheckBoxPreference>
<EditTextPreference android:summary="@string/live_monitoring_url_descr" android:title="@string/live_monitoring_url"
android:key="live_monitoring_url"/>
<ListPreference android:summary="@string/live_monitoring_interval_descr" android:title="@string/live_monitoring_interval"
android:key="live_monitoring_interval"></ListPreference>
</PreferenceCategory>
</PreferenceScreen>
<PreferenceScreen android:key="routing_settings" android:title="@string/routing_settings" android:summary="@string/routing_settings_descr"> <PreferenceScreen android:key="routing_settings" android:title="@string/routing_settings" android:summary="@string/routing_settings_descr">
<ListPreference android:title="@string/router_service" android:key="router_service" android:summary="@string/router_service_descr"></ListPreference> <ListPreference android:title="@string/router_service" android:key="router_service" android:summary="@string/router_service_descr"></ListPreference>
<CheckBoxPreference android:summary="@string/fast_route_mode_descr" android:title="@string/fast_route_mode" <CheckBoxPreference android:summary="@string/fast_route_mode_descr" android:title="@string/fast_route_mode"
@ -84,67 +33,19 @@
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory android:title="@string/global_settings"> <PreferenceCategory android:title="@string/global_settings" android:key="global_settings" >
<Preference android:title="@string/index_settings" android:key="local_indexes" android:summary="@string/index_settings_descr"></Preference> <Preference android:title="@string/index_settings" android:key="local_indexes" android:summary="@string/index_settings_descr"></Preference>
<PreferenceScreen android:key="general_settings" android:title="@string/general_settings" android:summary="@string/general_settings_descr"> <PreferenceScreen android:key="general_settings" android:title="@string/general_settings" android:summary="@string/general_settings_descr">
<PreferenceCategory android:title="@string/global_app_settings"> <PreferenceCategory android:title="@string/global_app_settings">
<ListPreference android:key="map_screen_orientation" android:title="@string/map_screen_orientation" android:summary="@string/map_screen_orientation_descr"></ListPreference> <ListPreference android:key="map_screen_orientation" android:title="@string/map_screen_orientation" android:summary="@string/map_screen_orientation_descr"></ListPreference>
<CheckBoxPreference android:key="use_high_res_maps" android:title="@string/use_high_res_maps" android:summary="@string/use_high_res_maps_descr"></CheckBoxPreference>
<ListPreference android:key="preferred_locale" android:title="@string/preferred_locale" android:summary="@string/preferred_locale_descr"></ListPreference> <ListPreference android:key="preferred_locale" android:title="@string/preferred_locale" android:summary="@string/preferred_locale_descr"></ListPreference>
<ListPreference android:key="default_metric_system" android:title="@string/unit_of_length" android:summary="@string/unit_of_length_descr"></ListPreference> <ListPreference android:key="default_metric_system" android:title="@string/unit_of_length" android:summary="@string/unit_of_length_descr"></ListPreference>
<ListPreference android:key="audio_stream" android:title="@string/choose_audio_stream" <CheckBoxPreference android:key="native_rendering" android:title="@string/native_rendering" android:summary="@string/vector_maps_may_display_faster_on_some_devices"></CheckBoxPreference>
android:summary="@string/choose_audio_stream_descr"></ListPreference>
<CheckBoxPreference android:key="use_trackball_for_movements" android:title="@string/use_trackball" android:summary="@string/use_trackball_descr"></CheckBoxPreference>
<EditTextPreference android:title="@string/application_dir" android:key="external_storage_dir"></EditTextPreference> <EditTextPreference android:title="@string/application_dir" android:key="external_storage_dir"></EditTextPreference>
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory android:title="@string/osm_settings">
<!--
<CheckBoxPreference android:key="show_osm_bugs" android:title="@string/show_osm_bugs"
android:summary="@string/show_osm_bugs_descr"></CheckBoxPreference>
-->
<EditTextPreference android:title="@string/user_name" android:summary="@string/user_name_descr" android:key="user_name"></EditTextPreference>
<EditTextPreference android:title="@string/user_password" android:password="true" android:summary="@string/user_password_descr"
android:key="user_password"></EditTextPreference>
<CheckBoxPreference android:summary="@string/offline_poi_edition_descr" android:title="@string/offline_poi_edition"
android:key="offline_poi_edition"></CheckBoxPreference>
<Preference android:title="@string/local_openstreetmap_settings" android:key="local_openstreetmap_points" android:summary="@string/local_openstreetmap_settings_descr"></Preference>
</PreferenceCategory>
<PreferenceCategory android:title="@string/debugging_and_development">
<CheckBoxPreference android:key="native_rendering" android:title="@string/native_rendering" android:summary="@string/vector_maps_may_display_faster_on_some_devices"></CheckBoxPreference>
<CheckBoxPreference android:summary="@string/trace_rendering_descr" android:title="@string/trace_rendering"
android:key="debug_rendering"></CheckBoxPreference>
<CheckBoxPreference android:key="animate_routing" android:title="@string/animate_routing" android:summary="@string/simulate_route_progression_manually"></CheckBoxPreference>
<Preference android:key="test_voice_commands" android:summary="@string/play_commands_of_currently_selected_voice" android:title="@string/test_voice_prompts"></Preference>
</PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>
<Preference android:title="@string/prefs_plugins" android:summary="@string/prefs_plugins_descr" android:key="plugins"/> <Preference android:title="@string/prefs_plugins" android:summary="@string/prefs_plugins_descr" android:key="plugins"/>
<PreferenceScreen android:title="@string/osmand_service" android:summary="@string/osmand_service_descr">
<CheckBoxPreference android:summary="@string/background_router_service_descr" android:title="@string/background_router_service"
android:key="service_off_enabled"></CheckBoxPreference>
<ListPreference android:key="service_off_provider" android:title="@string/background_service_provider" android:summary="@string/background_service_provider_descr"></ListPreference>
<ListPreference android:key="service_off_interval" android:title="@string/background_service_int" android:summary="@string/background_service_int_descr"></ListPreference>
<ListPreference android:key="service_off_wait_interval" android:title="@string/background_service_wait_int"
android:summary="@string/background_service_wait_int_descr"></ListPreference>
</PreferenceScreen>
<PreferenceScreen android:key="accessibility_preferences" android:title="@string/accessibility_preferences" android:summary="@string/accessibility_preferences_descr">
<ListPreference android:summary="@string/accessibility_mode_descr" android:title="@string/accessibility_mode" android:key="accessibility_mode"></ListPreference>
<PreferenceCategory android:key="accessibility_options">
<ListPreference android:summary="@string/settings_direction_style_descr" android:title="@string/settings_direction_style" android:key="direction_style"></ListPreference>
<CheckBoxPreference android:key="zoom_by_trackball" android:title="@string/zoom_by_trackball" android:summary="@string/zoom_by_trackball_descr"></CheckBoxPreference>
<CheckBoxPreference android:key="scroll_map_by_gestures" android:title="@string/scroll_map_by_gestures" android:summary="@string/scroll_map_by_gestures_descr"></CheckBoxPreference>
<CheckBoxPreference android:key="use_short_object_names" android:title="@string/use_short_object_names" android:summary="@string/use_short_object_names_descr"></CheckBoxPreference>
<CheckBoxPreference android:key="accessibility_extensions" android:title="@string/accessibility_extensions" android:summary="@string/accessibility_extensions_descr"></CheckBoxPreference>
</PreferenceCategory>
</PreferenceScreen>
<Preference android:title="@string/support_new_features" android:key="bidforfix">
</Preference>
</PreferenceCategory> </PreferenceCategory>
<Preference android:title="@string/support_new_features" android:key="bidforfix"/>
</PreferenceScreen> </PreferenceScreen>

View file

@ -0,0 +1,115 @@
package net.osmand.access;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.SettingsActivity;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;
public class AccessibilityPlugin extends OsmandPlugin {
private static final String ID = "osmand.accessibility";
private OsmandSettings settings;
private OsmandApplication app;
private ListPreference accessibilityModePreference;
private ListPreference directionStylePreference;
public AccessibilityPlugin(OsmandApplication app) {
this.app = app;
}
@Override
public boolean init(OsmandApplication app) {
settings = app.getSettings();
return true;
}
@Override
public String getId() {
return ID;
}
@Override
public String getDescription() {
return app.getString(R.string.osmand_accessibility_description);
}
@Override
public String getName() {
return app.getString(R.string.osmand_accessibility_name);
}
@Override
public void registerLayers(MapActivity activity) {
}
@Override
public void settingsActivityUpdate(SettingsActivity activity) {
if(accessibilityModePreference != null) {
accessibilityModePreference.setSummary(app.getString(R.string.accessibility_mode_descr) + " [" + settings.ACCESSIBILITY_MODE.get().toHumanString(app) + "]");
}
if(directionStylePreference != null) {
directionStylePreference.setSummary(app.getString(R.string.settings_direction_style_descr) + " [" + settings.DIRECTION_STYLE.get().toHumanString(app) + "]");
}
}
@Override
public void settingsActivityCreate(final SettingsActivity activity, final PreferenceScreen screen) {
PreferenceScreen grp = screen.getPreferenceManager().createPreferenceScreen(activity);
grp.setTitle(R.string.accessibility_preferences);
grp.setSummary(R.string.accessibility_preferences_descr);
grp.setKey("accessibility_preferences");
((PreferenceCategory)screen.findPreference("global_settings")).addPreference(grp);
String[] entries = new String[AccessibilityMode.values().length];
for (int i = 0; i < entries.length; i++) {
entries[i] = AccessibilityMode.values()[i].toHumanString(activity);
}
accessibilityModePreference = activity.createListPreference(settings.ACCESSIBILITY_MODE, entries, AccessibilityMode.values(),
R.string.accessibility_mode, R.string.accessibility_mode_descr);
accessibilityModePreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
PreferenceCategory accessibilityOptions = ((PreferenceCategory)(screen.findPreference("accessibility_options")));
if (accessibilityOptions != null)
accessibilityOptions.setEnabled(app.accessibilityEnabled());
accessibilityModePreference.setSummary(app.getString(R.string.accessibility_mode_descr) + " [" + settings.ACCESSIBILITY_MODE.get().toHumanString(app) + "]");
return true;
}
});
grp.addPreference(accessibilityModePreference);
PreferenceCategory cat = new PreferenceCategory(activity);
cat.setKey("accessibility_options");
grp.addPreference(cat);
entries = new String[RelativeDirectionStyle.values().length];
for (int i = 0; i < entries.length; i++) {
entries[i] = RelativeDirectionStyle.values()[i].toHumanString(activity);
}
directionStylePreference = activity.createListPreference(settings.DIRECTION_STYLE, entries, RelativeDirectionStyle.values(),
R.string.settings_direction_style, R.string.settings_direction_style_descr);
directionStylePreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
directionStylePreference.setSummary(app.getString(R.string.settings_direction_style_descr) + " [" + settings.DIRECTION_STYLE.get().toHumanString(app) + "]");
return true;
}
});
cat.addPreference(directionStylePreference);
cat.addPreference(activity.createCheckBoxPreference(settings.ZOOM_BY_TRACKBALL, R.string.zoom_by_trackball,
R.string.zoom_by_trackball_descr));
cat.addPreference(activity.createCheckBoxPreference(settings.SCROLL_MAP_BY_GESTURES, R.string.scroll_map_by_gestures,
R.string.scroll_map_by_gestures_descr));
cat.addPreference(activity.createCheckBoxPreference(settings.ZOOM_BY_TRACKBALL, R.string.use_short_object_names,
R.string.use_short_object_names_descr));
cat.addPreference(activity.createCheckBoxPreference(settings.ACCESSIBILITY_EXTENSIONS, R.string.accessibility_extensions,
R.string.accessibility_extensions));
}
}

View file

@ -1,15 +1,17 @@
package net.osmand.plus; package net.osmand.plus;
import gnu.trove.list.array.TIntArrayList;
import java.util.ArrayList; import java.util.ArrayList;
import gnu.trove.list.array.TIntArrayList;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
public class ContextMenuAdapter { public class ContextMenuAdapter {
public interface OnContextMenuClick { public interface OnContextMenuClick {
public void onContextMenuClick(int itemId, int pos, boolean isChecked); public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog);
} }
private final Context ctx; private final Context ctx;

View file

@ -7,9 +7,18 @@ import java.util.Set;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import android.preference.PreferenceScreen;
import net.osmand.LogUtil; import net.osmand.LogUtil;
import net.osmand.access.AccessibilityPlugin;
import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.SettingsActivity;
import net.osmand.plus.background.OsmandBackgroundServicePlugin;
import net.osmand.plus.development.OsmandDevelopmentPlugin;
import net.osmand.plus.extrasettings.OsmandExtraSettings;
import net.osmand.plus.monitoring.OsmandMonitoringPlugin;
import net.osmand.plus.osmedit.OsmEditingPlugin; import net.osmand.plus.osmedit.OsmEditingPlugin;
import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin;
import net.osmand.plus.views.OsmandMapTileView; import net.osmand.plus.views.OsmandMapTileView;
public abstract class OsmandPlugin { public abstract class OsmandPlugin {
@ -34,10 +43,20 @@ public abstract class OsmandPlugin {
*/ */
public abstract boolean init(OsmandApplication app); public abstract boolean init(OsmandApplication app);
public void disable(OsmandApplication app) {};
public static void initPlugins(OsmandApplication app) { public static void initPlugins(OsmandApplication app) {
OsmandSettings settings = app.getSettings(); OsmandSettings settings = app.getSettings();
OsmandRasterMapsPlugin rasterMapsPlugin = new OsmandRasterMapsPlugin(app);
installedPlugins.add(rasterMapsPlugin);
installedPlugins.add(new OsmandMonitoringPlugin(app));
installedPlugins.add(new OsmEditingPlugin(app)); installedPlugins.add(new OsmEditingPlugin(app));
installedPlugins.add(new OsmandBackgroundServicePlugin(app));
installedPlugins.add(new AccessibilityPlugin(app));
installedPlugins.add(new OsmandExtraSettings(app));
installedPlugins.add(new OsmandDevelopmentPlugin(app));
Set<String> enabledPlugins = settings.getEnabledPlugins(); Set<String> enabledPlugins = settings.getEnabledPlugins();
for (OsmandPlugin plugin : installedPlugins) { for (OsmandPlugin plugin : installedPlugins) {
if (enabledPlugins.contains(plugin.getId())) { if (enabledPlugins.contains(plugin.getId())) {
@ -52,17 +71,21 @@ public abstract class OsmandPlugin {
} }
} }
/** public static boolean enablePlugin(OsmandApplication app, OsmandPlugin plugin, boolean enable) {
* ???? if (enable) {
*/ if (!plugin.init(app)) {
public abstract void updateLayers(OsmandMapTileView mapView); return false;
}
public static void refreshLayers(OsmandMapTileView mapView) { activePlugins.add(plugin);
for (OsmandPlugin plugin : activePlugins) { } else {
plugin.updateLayers(mapView); plugin.disable(app);
activePlugins.remove(plugin);
} }
app.getSettings().enablePlugin(plugin.getId(), enable);
return true;
} }
public void updateLayers(OsmandMapTileView mapView, MapActivity activity) {};
public abstract void registerLayers(MapActivity activity); public abstract void registerLayers(MapActivity activity);
@ -74,10 +97,21 @@ public abstract class OsmandPlugin {
public void mapActivityDestroy(MapActivity activity) { } public void mapActivityDestroy(MapActivity activity) { }
public void settingsActivityCreate(SettingsActivity activity, PreferenceScreen screen) {}
public abstract void registerLayerContextMenuActions(OsmandMapTileView mapView, ContextMenuAdapter adapter); public void settingsActivityDestroy(final SettingsActivity activity){}
public abstract void registerMapContextMenuActions(MapActivity mapActivity, double latitude, double longitude, ContextMenuAdapter adapter, Object selectedObj); public void settingsActivityUpdate(final SettingsActivity activity){}
public void registerLayerContextMenuActions(OsmandMapTileView mapView, ContextMenuAdapter adapter, MapActivity mapActivity) {}
public void registerMapContextMenuActions(MapActivity mapActivity, double latitude, double longitude, ContextMenuAdapter adapter, Object selectedObj) {}
public static void refreshLayers(OsmandMapTileView mapView, MapActivity activity) {
for (OsmandPlugin plugin : activePlugins) {
plugin.updateLayers(mapView, activity);
}
}
public static List<OsmandPlugin> getAvailablePlugins(){ public static List<OsmandPlugin> getAvailablePlugins(){
return installedPlugins; return installedPlugins;
@ -122,6 +156,25 @@ public abstract class OsmandPlugin {
} }
public static void onSettingsActivityCreate(SettingsActivity activity, PreferenceScreen screen) {
for (OsmandPlugin plugin : activePlugins) {
plugin.settingsActivityCreate(activity, screen);
}
}
public static void onSettingsActivityDestroy(SettingsActivity activity) {
for (OsmandPlugin plugin : activePlugins) {
plugin.settingsActivityDestroy(activity);
}
}
public static void onSettingsActivityUpdate(SettingsActivity activity) {
for (OsmandPlugin plugin : activePlugins) {
plugin.settingsActivityUpdate(activity);
}
}
public static void createLayers(OsmandMapTileView mapView, MapActivity activity) { public static void createLayers(OsmandMapTileView mapView, MapActivity activity) {
for (OsmandPlugin plugin : activePlugins) { for (OsmandPlugin plugin : activePlugins) {
plugin.registerLayers(activity); plugin.registerLayers(activity);
@ -134,9 +187,10 @@ public abstract class OsmandPlugin {
} }
} }
public static void registerLayerContextMenu(OsmandMapTileView mapView, ContextMenuAdapter adapter) { public static void registerLayerContextMenu(OsmandMapTileView mapView, ContextMenuAdapter adapter, MapActivity mapActivity) {
for (OsmandPlugin plugin : activePlugins) { for (OsmandPlugin plugin : activePlugins) {
plugin.registerLayerContextMenuActions(mapView, adapter); plugin.registerLayerContextMenuActions(mapView, adapter, mapActivity);
} }
} }
} }

View file

@ -545,8 +545,6 @@ public class OsmandSettings {
public final OsmandPreference<Boolean> OFFLINE_POI_EDITION = public final OsmandPreference<Boolean> OFFLINE_POI_EDITION =
new BooleanPreference("offline_poi_edition", false, true); new BooleanPreference("offline_poi_edition", false, true);
public static final String LOCAL_OPENSTREETMAP_POINTS = "local_openstreetmap_points";
// this value string is synchronized with settings_pref.xml preference name // this value string is synchronized with settings_pref.xml preference name
public final CommonPreference<DayNightMode> DAYNIGHT_MODE = public final CommonPreference<DayNightMode> DAYNIGHT_MODE =
@ -575,11 +573,6 @@ public class OsmandSettings {
// this value string is synchronized with settings_pref.xml preference name // this value string is synchronized with settings_pref.xml preference name
public final CommonPreference<Boolean> SAVE_TRACK_TO_GPX = new BooleanPreference("save_track_to_gpx", false, false); public final CommonPreference<Boolean> SAVE_TRACK_TO_GPX = new BooleanPreference("save_track_to_gpx", false, false);
{
SAVE_TRACK_TO_GPX.setModeDefaultValue(ApplicationMode.CAR, true);
SAVE_TRACK_TO_GPX.setModeDefaultValue(ApplicationMode.BICYCLE, true);
SAVE_TRACK_TO_GPX.setModeDefaultValue(ApplicationMode.PEDESTRIAN, true);
}
// this value string is synchronized with settings_pref.xml preference name // this value string is synchronized with settings_pref.xml preference name
public final OsmandPreference<Boolean> FAST_ROUTE_MODE = new BooleanPreference("fast_route_mode", true, false); public final OsmandPreference<Boolean> FAST_ROUTE_MODE = new BooleanPreference("fast_route_mode", true, false);
@ -691,24 +684,24 @@ public class OsmandSettings {
} }
// this value string is synchronized with settings_pref.xml preference name // this value string is synchronized with settings_pref.xml preference name
public final CommonPreference<Boolean> MAP_VECTOR_DATA = new BooleanPreference("map_vector_data", public final CommonPreference<Boolean> MAP_ONLINE_DATA = new BooleanPreference("map_online_data",
false, false); false, true);
// this value string is synchronized with settings_pref.xml preference name // this value string is synchronized with settings_pref.xml preference name
public final CommonPreference<String> MAP_OVERLAY = new StringPreference("map_overlay", public final CommonPreference<String> MAP_OVERLAY = new StringPreference("map_overlay",
null, false); null, true);
// this value string is synchronized with settings_pref.xml preference name // this value string is synchronized with settings_pref.xml preference name
public final CommonPreference<String> MAP_UNDERLAY = new StringPreference("map_underlay", public final CommonPreference<String> MAP_UNDERLAY = new StringPreference("map_underlay",
null, false); null, true);
// this value string is synchronized with settings_pref.xml preference name // this value string is synchronized with settings_pref.xml preference name
public final CommonPreference<Integer> MAP_OVERLAY_TRANSPARENCY = new IntPreference("overlay_transparency", public final CommonPreference<Integer> MAP_OVERLAY_TRANSPARENCY = new IntPreference("overlay_transparency",
200, false); 200, true);
// this value string is synchronized with settings_pref.xml preference name // this value string is synchronized with settings_pref.xml preference name
public final CommonPreference<Integer> MAP_TRANSPARENCY = new IntPreference("map_transparency", public final CommonPreference<Integer> MAP_TRANSPARENCY = new IntPreference("map_transparency",
255, false); 255, true);
// this value string is synchronized with settings_pref.xml preference name // this value string is synchronized with settings_pref.xml preference name
public final CommonPreference<String> MAP_TILE_SOURCES = new StringPreference("map_tile_sources", public final CommonPreference<String> MAP_TILE_SOURCES = new StringPreference("map_tile_sources",

View file

@ -620,11 +620,6 @@ public class DownloadIndexActivity extends OsmandExpandableListActivity {
if (vectorMapsToReindex) { if (vectorMapsToReindex) {
ResourceManager manager = getMyApplication().getResourceManager(); ResourceManager manager = getMyApplication().getResourceManager();
List<String> warnings = manager.indexingMaps(progress); List<String> warnings = manager.indexingMaps(progress);
if (warnings.isEmpty() && !settings.MAP_VECTOR_DATA.get()) {
warnings.add(getString(R.string.binary_map_download_success));
// Is it proper way to switch every tome to vector data?
settings.MAP_VECTOR_DATA.set(true);
}
if (!warnings.isEmpty()) { if (!warnings.isEmpty()) {
return warnings.get(0); return warnings.get(0);
} }

View file

@ -13,13 +13,15 @@ import java.util.Set;
import net.osmand.Algoritms; import net.osmand.Algoritms;
import net.osmand.GPXUtilities.WptPt; import net.osmand.GPXUtilities.WptPt;
import net.osmand.IProgress; import net.osmand.IProgress;
import net.osmand.OpenstreetmapRemoteUtil;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager; import net.osmand.plus.ResourceManager;
import net.osmand.plus.activities.LocalIndexHelper.LocalIndexInfo; import net.osmand.plus.activities.LocalIndexHelper.LocalIndexInfo;
import net.osmand.plus.activities.LocalIndexHelper.LocalIndexType; import net.osmand.plus.activities.LocalIndexHelper.LocalIndexType;
import net.osmand.plus.development.OsmandDevelopmentPlugin;
import net.osmand.plus.osmedit.OpenstreetmapRemoteUtil;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.AlertDialog.Builder; import android.app.AlertDialog.Builder;
@ -166,7 +168,9 @@ public class LocalIndexesActivity extends OsmandExpandableListActivity {
final List<Integer> menu = new ArrayList<Integer>(); final List<Integer> menu = new ArrayList<Integer>();
if(info.getType() == LocalIndexType.GPX_DATA){ if(info.getType() == LocalIndexType.GPX_DATA){
menu.add(R.string.show_gpx_route); menu.add(R.string.show_gpx_route);
menu.add(R.string.local_index_mi_upload_gpx); if(OsmandPlugin.getEnabledPlugin(OsmandDevelopmentPlugin.class) instanceof OsmandDevelopmentPlugin) {
menu.add(R.string.local_index_mi_upload_gpx);
}
descriptionLoader = new LoadLocalIndexDescriptionTask(); descriptionLoader = new LoadLocalIndexDescriptionTask();
descriptionLoader.execute(info); descriptionLoader.execute(info);
} }
@ -442,6 +446,7 @@ public class LocalIndexesActivity extends OsmandExpandableListActivity {
if (!isCancelled()) { if (!isCancelled()) {
String warning = null; String warning = null;
File file = new File(info.getPathToData()); File file = new File(info.getPathToData());
// FIXME should be plugin functionality and do not use remote util directly
warning = new OpenstreetmapRemoteUtil(LocalIndexesActivity.this, null).uploadGPXFile(tagstring, description, visibility, file); warning = new OpenstreetmapRemoteUtil(LocalIndexesActivity.this, null).uploadGPXFile(tagstring, description, visibility, file);
total++; total++;
if (warning == null) { if (warning == null) {
@ -557,7 +562,9 @@ public class LocalIndexesActivity extends OsmandExpandableListActivity {
menu.add(0, R.string.local_index_mi_restore, 1, getString(R.string.local_index_mi_restore)+"..."); menu.add(0, R.string.local_index_mi_restore, 1, getString(R.string.local_index_mi_restore)+"...");
menu.add(0, R.string.local_index_mi_delete, 2, getString(R.string.local_index_mi_delete)+"..."); menu.add(0, R.string.local_index_mi_delete, 2, getString(R.string.local_index_mi_delete)+"...");
menu.add(0, R.string.local_index_mi_reload, 3, R.string.local_index_mi_reload); menu.add(0, R.string.local_index_mi_reload, 3, R.string.local_index_mi_reload);
menu.add(0, R.string.local_index_mi_upload_gpx, 4, getString(R.string.local_index_mi_upload_gpx)+"..."); if(OsmandPlugin.getEnabledPlugin(OsmandDevelopmentPlugin.class) instanceof OsmandDevelopmentPlugin) {
menu.add(0, R.string.local_index_mi_upload_gpx, 4, getString(R.string.local_index_mi_upload_gpx)+"...");
}
return true; return true;
} }

View file

@ -164,16 +164,6 @@ public class MapActivity extends AccessibleActivity implements IMapLocationListe
startProgressDialog = new ProgressDialog(this); startProgressDialog = new ProgressDialog(this);
startProgressDialog.setCancelable(true); startProgressDialog.setCancelable(true);
((OsmandApplication) getApplication()).checkApplicationIsBeingInitialized(this, startProgressDialog); ((OsmandApplication) getApplication()).checkApplicationIsBeingInitialized(this, startProgressDialog);
// Do some action on close
startProgressDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
OsmandApplication app = ((OsmandApplication) getApplication());
if (settings.MAP_VECTOR_DATA.get() && app.getResourceManager().getRenderer().isEmpty()) {
AccessibleToast.makeText(MapActivity.this, getString(R.string.no_vector_map_loaded), Toast.LENGTH_LONG).show();
}
}
});
parseLaunchIntentLocation(); parseLaunchIntentLocation();
mapView = (OsmandMapTileView) findViewById(R.id.MapView); mapView = (OsmandMapTileView) findViewById(R.id.MapView);
@ -183,7 +173,14 @@ public class MapActivity extends AccessibleActivity implements IMapLocationListe
showAndHideMapPosition(); showAndHideMapPosition();
return MapActivity.this.onTrackballEvent(e); return MapActivity.this.onTrackballEvent(e);
} }
});
// Do some action on close
startProgressDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
mapView.refreshMap();
}
}); });
getMyApplication().getResourceManager().getMapTileDownloader().addDownloaderCallback(new IMapDownloaderCallback(){ getMyApplication().getResourceManager().getMapTileDownloader().addDownloaderCallback(new IMapDownloaderCallback(){
@ -260,7 +257,6 @@ public class MapActivity extends AccessibleActivity implements IMapLocationListe
setVolumeControlStream(AudioManager.STREAM_MUSIC); setVolumeControlStream(AudioManager.STREAM_MUSIC);
} }
mapLayers.updateMapSource(mapView, null);
updateApplicationModeSettings(); updateApplicationModeSettings();
mapLayers.getPoiMapLayer().setFilter(settings.getPoiFilterForMap((OsmandApplication) getApplication())); mapLayers.getPoiMapLayer().setFilter(settings.getPoiFilterForMap((OsmandApplication) getApplication()));
@ -1001,7 +997,7 @@ public class MapActivity extends AccessibleActivity implements IMapLocationListe
registerUnregisterSensor(getLastKnownLocation()); registerUnregisterSensor(getLastKnownLocation());
mapLayers.getMapInfoLayer().applyTheme(); mapLayers.getMapInfoLayer().applyTheme();
mapLayers.updateLayers(mapView); mapLayers.updateLayers(mapView);
mapLayers.updateMapSource(mapView, settings.MAP_TILE_SOURCES);
getMyApplication().getDaynightHelper().setDayNightMode(settings.DAYNIGHT_MODE.get()); getMyApplication().getDaynightHelper().setDayNightMode(settings.DAYNIGHT_MODE.get());
} }

View file

@ -200,7 +200,7 @@ public class MapActivityActions implements DialogProvider {
return b.create(); return b.create();
} }
protected void addWaypoint(final double latitude, final double longitude){ public void addWaypoint(final double latitude, final double longitude){
String name = mapActivity.getMapLayers().getContextMenuLayer().getSelectedObjectName(); String name = mapActivity.getMapLayers().getContextMenuLayer().getSelectedObjectName();
enhance(dialogBundle,latitude,longitude, name); enhance(dialogBundle,latitude,longitude, name);
mapActivity.showDialog(DIALOG_ADD_WAYPOINT); mapActivity.showDialog(DIALOG_ADD_WAYPOINT);
@ -234,58 +234,13 @@ public class MapActivityActions implements DialogProvider {
return builder.create(); return builder.create();
} }
protected void reloadTile(final int zoom, final double latitude, final double longitude){ public void reloadTile(final int zoom, final double latitude, final double longitude){
enhance(dialogBundle,latitude,longitude,zoom); enhance(dialogBundle,latitude,longitude,zoom);
mapActivity.showDialog(DIALOG_RELOAD_TITLE); mapActivity.showDialog(DIALOG_RELOAD_TITLE);
} }
private Dialog createReloadTitleDialog(final Bundle args) {
Builder builder = new AccessibleAlertBuilder(mapActivity);
builder.setMessage(R.string.context_menu_item_update_map_confirm);
builder.setNegativeButton(R.string.default_buttons_cancel, null);
final OsmandMapTileView mapView = mapActivity.getMapView();
builder.setPositiveButton(R.string.context_menu_item_update_map, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
int zoom = args.getInt(KEY_ZOOM);
BaseMapLayer mainLayer = mapView.getMainLayer();
if(!(mainLayer instanceof MapTileLayer) || !((MapTileLayer) mainLayer).isVisible()){
AccessibleToast.makeText(mapActivity, R.string.maps_could_not_be_downloaded, Toast.LENGTH_SHORT).show();
return;
}
final ITileSource mapSource = ((MapTileLayer) mainLayer).getMap();
if(mapSource == null || !mapSource.couldBeDownloadedFromInternet()){
AccessibleToast.makeText(mapActivity, R.string.maps_could_not_be_downloaded, Toast.LENGTH_SHORT).show();
return;
}
Rect pixRect = new Rect(0, 0, mapView.getWidth(), mapView.getHeight());
RectF tilesRect = new RectF();
mapView.calculateTileRectangle(pixRect, mapView.getCenterPointX(), mapView.getCenterPointY(),
mapView.getXTile(), mapView.getYTile(), tilesRect);
int left = (int) FloatMath.floor(tilesRect.left);
int top = (int) FloatMath.floor(tilesRect.top);
int width = (int) (FloatMath.ceil(tilesRect.right) - left);
int height = (int) (FloatMath.ceil(tilesRect.bottom) - top);
for (int i = 0; i <width; i++) {
for (int j = 0; j< height; j++) {
((OsmandApplication)mapActivity.getApplication()).getResourceManager().
clearTileImageForMap(null, mapSource, i + left, j + top, zoom);
}
}
mapView.refreshMap();
}
});
builder.setNeutralButton(R.string.context_menu_item_update_poi, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
updatePoiDb(args.getInt(KEY_ZOOM), args.getDouble(KEY_LATITUDE), args.getDouble(KEY_LONGITUDE));
}
});
return builder.create();
}
protected String getString(int res){ protected String getString(int res){
return mapActivity.getString(res); return mapActivity.getString(res);
@ -726,13 +681,8 @@ public class MapActivityActions implements DialogProvider {
adapter.registerItem(R.string.context_menu_item_search); adapter.registerItem(R.string.context_menu_item_search);
adapter.registerItem(R.string.context_menu_item_add_favorite); adapter.registerItem(R.string.context_menu_item_add_favorite);
adapter.registerItem(R.string.context_menu_item_share_location); adapter.registerItem(R.string.context_menu_item_share_location);
adapter.registerItem(R.string.context_menu_item_add_waypoint);
OsmandPlugin.registerMapContextMenu(mapActivity, latitude, longitude, adapter, selectedObj);
if (mapView.getMainLayer() instanceof MapTileLayer) { OsmandPlugin.registerMapContextMenu(mapActivity, latitude, longitude, adapter, selectedObj);
adapter.registerItem(R.string.context_menu_item_update_map);
adapter.registerItem(R.string.context_menu_item_download_map);
}
builder.setItems(adapter.getItemNames(), new DialogInterface.OnClickListener() { builder.setItems(adapter.getItemNames(), new DialogInterface.OnClickListener() {
@ -741,7 +691,7 @@ public class MapActivityActions implements DialogProvider {
int standardId = adapter.getItemId(which ); int standardId = adapter.getItemId(which );
OnContextMenuClick click = adapter.getClickAdapter(which); OnContextMenuClick click = adapter.getClickAdapter(which);
if(click != null) { if(click != null) {
click.onContextMenuClick(standardId, which, false); click.onContextMenuClick(standardId, which, false, dialog);
} else if (standardId == R.string.context_menu_item_navigate_point) { } else if (standardId == R.string.context_menu_item_navigate_point) {
mapActivity.navigateToPoint(new LatLon(latitude, longitude)); mapActivity.navigateToPoint(new LatLon(latitude, longitude));
} else if (standardId == R.string.context_menu_item_show_route) { } else if (standardId == R.string.context_menu_item_show_route) {
@ -756,18 +706,60 @@ public class MapActivityActions implements DialogProvider {
addFavouritePoint(latitude, longitude); addFavouritePoint(latitude, longitude);
} else if (standardId == R.string.context_menu_item_share_location) { } else if (standardId == R.string.context_menu_item_share_location) {
shareLocation(latitude, longitude, mapView.getZoom()); shareLocation(latitude, longitude, mapView.getZoom());
} else if (standardId == R.string.context_menu_item_add_waypoint) { }
addWaypoint(latitude, longitude);
} else if (standardId == R.string.context_menu_item_update_map) {
reloadTile(mapView.getZoom(), latitude, longitude);
} else if (standardId == R.string.context_menu_item_download_map) {
DownloadTilesDialog dlg = new DownloadTilesDialog(mapActivity, (OsmandApplication) mapActivity.getApplication(), mapView);
dlg.openDialog();
}
} }
}); });
builder.create().show(); builder.create().show();
} }
private Dialog createReloadTitleDialog(final Bundle args) {
Builder builder = new AccessibleAlertBuilder(mapActivity);
builder.setMessage(R.string.context_menu_item_update_map_confirm);
builder.setNegativeButton(R.string.default_buttons_cancel, null);
final OsmandMapTileView mapView = mapActivity.getMapView();
builder.setPositiveButton(R.string.context_menu_item_update_map, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
int zoom = args.getInt(KEY_ZOOM);
BaseMapLayer mainLayer = mapView.getMainLayer();
if(!(mainLayer instanceof MapTileLayer) || !((MapTileLayer) mainLayer).isVisible()){
AccessibleToast.makeText(mapActivity, R.string.maps_could_not_be_downloaded, Toast.LENGTH_SHORT).show();
return;
}
final ITileSource mapSource = ((MapTileLayer) mainLayer).getMap();
if(mapSource == null || !mapSource.couldBeDownloadedFromInternet()){
AccessibleToast.makeText(mapActivity, R.string.maps_could_not_be_downloaded, Toast.LENGTH_SHORT).show();
return;
}
Rect pixRect = new Rect(0, 0, mapView.getWidth(), mapView.getHeight());
RectF tilesRect = new RectF();
mapView.calculateTileRectangle(pixRect, mapView.getCenterPointX(), mapView.getCenterPointY(),
mapView.getXTile(), mapView.getYTile(), tilesRect);
int left = (int) FloatMath.floor(tilesRect.left);
int top = (int) FloatMath.floor(tilesRect.top);
int width = (int) (FloatMath.ceil(tilesRect.right) - left);
int height = (int) (FloatMath.ceil(tilesRect.bottom) - top);
for (int i = 0; i <width; i++) {
for (int j = 0; j< height; j++) {
((OsmandApplication)mapActivity.getApplication()).getResourceManager().
clearTileImageForMap(null, mapSource, i + left, j + top, zoom);
}
}
mapView.refreshMap();
}
});
builder.setNeutralButton(R.string.context_menu_item_update_poi, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
updatePoiDb(args.getInt(KEY_ZOOM), args.getDouble(KEY_LATITUDE), args.getDouble(KEY_LONGITUDE));
}
});
return builder.create();
}
@Override @Override
public Dialog onCreateDialog(int id) { public Dialog onCreateDialog(int id) {

View file

@ -10,7 +10,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import net.osmand.Algoritms;
import net.osmand.CallbackWithObject; import net.osmand.CallbackWithObject;
import net.osmand.GPXUtilities; import net.osmand.GPXUtilities;
import net.osmand.GPXUtilities.GPXFile; import net.osmand.GPXUtilities.GPXFile;
@ -32,10 +31,9 @@ import net.osmand.plus.PoiFiltersHelper;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager; import net.osmand.plus.ResourceManager;
import net.osmand.plus.SQLiteTileSource; import net.osmand.plus.SQLiteTileSource;
import net.osmand.plus.render.MapRenderRepositories; import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin;
import net.osmand.plus.render.MapVectorLayer; import net.osmand.plus.render.MapVectorLayer;
import net.osmand.plus.routing.RoutingHelper; import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.views.BaseMapLayer;
import net.osmand.plus.views.ContextMenuLayer; import net.osmand.plus.views.ContextMenuLayer;
import net.osmand.plus.views.FavoritesLayer; import net.osmand.plus.views.FavoritesLayer;
import net.osmand.plus.views.GPXLayer; import net.osmand.plus.views.GPXLayer;
@ -81,8 +79,6 @@ public class MapActivityLayers {
// the order of layer should be preserved ! when you are inserting new layer // the order of layer should be preserved ! when you are inserting new layer
private MapTileLayer mapTileLayer; private MapTileLayer mapTileLayer;
private MapVectorLayer mapVectorLayer; private MapVectorLayer mapVectorLayer;
private MapTileLayer overlayLayer;
private MapTileLayer underlayLayer;
private GPXLayer gpxLayer; private GPXLayer gpxLayer;
private RouteLayer routeLayer; private RouteLayer routeLayer;
private POIMapLayer poiMapLayer; private POIMapLayer poiMapLayer;
@ -109,9 +105,7 @@ public class MapActivityLayers {
RoutingHelper routingHelper = ((OsmandApplication) getApplication()).getRoutingHelper(); RoutingHelper routingHelper = ((OsmandApplication) getApplication()).getRoutingHelper();
underlayLayer = new MapTileLayer(false);
// mapView.addLayer(underlayLayer, -0.5f); // mapView.addLayer(underlayLayer, -0.5f);
mapTileLayer = new MapTileLayer(true); mapTileLayer = new MapTileLayer(true);
mapView.addLayer(mapTileLayer, 0.0f); mapView.addLayer(mapTileLayer, 0.0f);
mapView.setMainLayer(mapTileLayer); mapView.setMainLayer(mapTileLayer);
@ -120,7 +114,6 @@ public class MapActivityLayers {
mapVectorLayer = new MapVectorLayer(mapTileLayer); mapVectorLayer = new MapVectorLayer(mapTileLayer);
mapView.addLayer(mapVectorLayer, 0.5f); mapView.addLayer(mapVectorLayer, 0.5f);
overlayLayer = new MapTileLayer(false);
// mapView.addLayer(overlayLayer, 0.7f); // mapView.addLayer(overlayLayer, 0.7f);
// 0.9 gpx layer // 0.9 gpx layer
@ -167,6 +160,7 @@ public class MapActivityLayers {
public void updateLayers(OsmandMapTileView mapView){ public void updateLayers(OsmandMapTileView mapView){
OsmandSettings settings = getApplication().getSettings(); OsmandSettings settings = getApplication().getSettings();
updateMapSource(mapView, settings.MAP_TILE_SOURCES);
if(mapView.getLayers().contains(transportStopsLayer) != settings.SHOW_TRANSPORT_OVER_MAP.get()){ if(mapView.getLayers().contains(transportStopsLayer) != settings.SHOW_TRANSPORT_OVER_MAP.get()){
if(settings.SHOW_TRANSPORT_OVER_MAP.get()){ if(settings.SHOW_TRANSPORT_OVER_MAP.get()){
mapView.addLayer(transportStopsLayer, 5); mapView.addLayer(transportStopsLayer, 5);
@ -191,7 +185,7 @@ public class MapActivityLayers {
mapView.removeLayer(favoritesLayer); mapView.removeLayer(favoritesLayer);
} }
} }
OsmandPlugin.refreshLayers(mapView); OsmandPlugin.refreshLayers(mapView, activity);
updateGPXLayer(); updateGPXLayer();
} }
@ -199,30 +193,20 @@ public class MapActivityLayers {
OsmandSettings settings = getApplication().getSettings(); OsmandSettings settings = getApplication().getSettings();
// update transparency // update transparency
overlayLayer.setAlpha(settings.MAP_OVERLAY_TRANSPARENCY.get());
int mapTransparency = settings.MAP_UNDERLAY.get() == null ? 255 : settings.MAP_TRANSPARENCY.get(); int mapTransparency = settings.MAP_UNDERLAY.get() == null ? 255 : settings.MAP_TRANSPARENCY.get();
mapTileLayer.setAlpha(mapTransparency); mapTileLayer.setAlpha(mapTransparency);
mapVectorLayer.setAlpha(mapTransparency); mapVectorLayer.setAlpha(mapTransparency);
// update overlay layer
updateLayer(mapView, settings, overlayLayer, settings.MAP_OVERLAY, 0.7f, settings.MAP_OVERLAY == settingsToWarnAboutMap);
updateLayer(mapView, settings, underlayLayer, settings.MAP_UNDERLAY, -0.5f, settings.MAP_UNDERLAY == settingsToWarnAboutMap);
boolean vectorData = settings.MAP_VECTOR_DATA.get();
OsmandApplication app = ((OsmandApplication)getApplication());
ResourceManager rm = app.getResourceManager();
if(vectorData && !app.isApplicationInitializing()){
if(rm.getRenderer().isEmpty()){
AccessibleToast.makeText(activity, activity.getString(R.string.no_vector_map_loaded), Toast.LENGTH_LONG).show();
vectorData = false;
}
}
ITileSource newSource = settings.getMapTileSource(settings.MAP_TILE_SOURCES == settingsToWarnAboutMap); ITileSource newSource = settings.getMapTileSource(settings.MAP_TILE_SOURCES == settingsToWarnAboutMap);
ITileSource oldMap = mapTileLayer.getMap(); ITileSource oldMap = mapTileLayer.getMap();
if(oldMap instanceof SQLiteTileSource){ if (newSource != oldMap) {
((SQLiteTileSource)oldMap).closeDB(); if (oldMap instanceof SQLiteTileSource) {
((SQLiteTileSource) oldMap).closeDB();
}
mapTileLayer.setMap(newSource);
} }
mapTileLayer.setMap(newSource);
boolean vectorData = !settings.MAP_ONLINE_DATA.get();
mapTileLayer.setVisible(!vectorData); mapTileLayer.setVisible(!vectorData);
mapVectorLayer.setVisible(vectorData); mapVectorLayer.setVisible(vectorData);
if(vectorData){ if(vectorData){
@ -232,24 +216,10 @@ public class MapActivityLayers {
} }
} }
private void updateLayer(OsmandMapTileView mapView, OsmandSettings settings,
MapTileLayer layer, CommonPreference<String> preference, float layerOrder, boolean warnWhenSelected) {
ITileSource overlay = settings.getTileSourceByName(preference.get(), warnWhenSelected);
if(!Algoritms.objectEquals(overlay, layer.getMap())){
if(overlay == null){
mapView.removeLayer(layer);
} else {
mapView.addLayer(layer, layerOrder);
}
layer.setMap(overlay);
mapView.refreshMap();
}
}
public void openLayerSelectionDialog(final OsmandMapTileView mapView){ public void openLayerSelectionDialog(final OsmandMapTileView mapView){
final OsmandSettings settings = getApplication().getSettings(); final OsmandSettings settings = getApplication().getSettings();
final ContextMenuAdapter adapter = new ContextMenuAdapter(activity); final ContextMenuAdapter adapter = new ContextMenuAdapter(activity);
adapter.registerSelectedItem(R.string.layer_map, -1, R.drawable.list_activities_map_src);
adapter.registerSelectedItem(R.string.layer_poi, settings.SHOW_POI_OVER_MAP.get() ? 1 : 0, adapter.registerSelectedItem(R.string.layer_poi, settings.SHOW_POI_OVER_MAP.get() ? 1 : 0,
R.drawable.list_activities_poi); R.drawable.list_activities_poi);
adapter.registerSelectedItem(R.string.layer_poi_label, settings.SHOW_POI_LABEL.get() ? 1 : 0, adapter.registerSelectedItem(R.string.layer_poi_label, settings.SHOW_POI_LABEL.get() ? 1 : 0,
@ -270,12 +240,7 @@ public class MapActivityLayers {
} }
adapter.registerSelectedItem(R.string.layer_overlay, overlayLayer.getMap() != null ? 1 : 0, OsmandPlugin.registerLayerContextMenu(mapView, adapter, activity);
R.drawable.list_activities_overlay_map);
adapter.registerSelectedItem(R.string.layer_underlay, underlayLayer.getMap() != null ? 1 : 0,
R.drawable.list_activities_underlay_map);
OsmandPlugin.registerLayerContextMenu(mapView, adapter);
final OnMultiChoiceClickListener listener = new DialogInterface.OnMultiChoiceClickListener() { final OnMultiChoiceClickListener listener = new DialogInterface.OnMultiChoiceClickListener() {
@ -284,10 +249,7 @@ public class MapActivityLayers {
int itemId = adapter.getItemId(item); int itemId = adapter.getItemId(item);
OnContextMenuClick clck = adapter.getClickAdapter(item); OnContextMenuClick clck = adapter.getClickAdapter(item);
if(clck != null) { if(clck != null) {
clck.onContextMenuClick(itemId, item, isChecked); clck.onContextMenuClick(itemId, item, isChecked, dialog);
} else if (itemId == R.string.layer_map) {
dialog.dismiss();
selectMapLayer(mapView);
} else if(itemId == R.string.layer_poi){ } else if(itemId == R.string.layer_poi){
if(isChecked){ if(isChecked){
selectPOIFilterLayer(mapView); selectPOIFilterLayer(mapView);
@ -311,24 +273,6 @@ public class MapActivityLayers {
transportInfoLayer.setVisible(isChecked); transportInfoLayer.setVisible(isChecked);
} else if(itemId == R.string.layer_transport){ } else if(itemId == R.string.layer_transport){
settings.SHOW_TRANSPORT_OVER_MAP.set(isChecked); settings.SHOW_TRANSPORT_OVER_MAP.set(isChecked);
} else if(itemId == R.string.layer_overlay){
if(overlayLayer.getMap() != null){
settings.MAP_OVERLAY.set(null);
updateMapSource(mapView, null);
} else {
dialog.dismiss();
selectMapOverlayLayer(mapView, settings.MAP_OVERLAY, settings.MAP_OVERLAY_TRANSPARENCY,
overlayLayer);
}
} else if(itemId == R.string.layer_underlay){
if(underlayLayer.getMap() != null){
settings.MAP_UNDERLAY.set(null);
updateMapSource(mapView, null);
} else {
dialog.dismiss();
selectMapOverlayLayer(mapView, settings.MAP_UNDERLAY,settings.MAP_TRANSPARENCY,
mapTileLayer, mapVectorLayer);
}
} }
updateLayers(mapView); updateLayers(mapView);
mapView.refreshMap(); mapView.refreshMap();
@ -561,10 +505,15 @@ public class MapActivityLayers {
} }
public void selectMapLayer(final OsmandMapTileView mapView){ public void selectMapLayer(final OsmandMapTileView mapView){
if(OsmandPlugin.getEnabledPlugin(OsmandRasterMapsPlugin.class) == null) {
AccessibleToast.makeText(activity, R.string.map_online_plugin_is_not_installed, Toast.LENGTH_LONG).show();
return;
}
final OsmandSettings settings = getApplication().getSettings(); final OsmandSettings settings = getApplication().getSettings();
final LinkedHashMap<String, String> entriesMap = new LinkedHashMap<String, String>(); final LinkedHashMap<String, String> entriesMap = new LinkedHashMap<String, String>();
final String layerOsmVector = "LAYER_OSM_VECTOR"; final String layerOsmVector = "LAYER_OSM_VECTOR";
final String layerInstallMore = "LAYER_INSTALL_MORE"; final String layerInstallMore = "LAYER_INSTALL_MORE";
@ -579,7 +528,7 @@ public class MapActivityLayers {
String selectedTileSourceKey = settings.MAP_TILE_SOURCES.get(); String selectedTileSourceKey = settings.MAP_TILE_SOURCES.get();
int selectedItem = -1; int selectedItem = -1;
if (settings.MAP_VECTOR_DATA.get()) { if (!settings.MAP_ONLINE_DATA.get()) {
selectedItem = 0; selectedItem = 0;
} else { } else {
@ -608,13 +557,7 @@ public class MapActivityLayers {
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
String layerKey = entriesMapList.get(which).getKey(); String layerKey = entriesMapList.get(which).getKey();
if (layerKey.equals(layerOsmVector)) { if (layerKey.equals(layerOsmVector)) {
MapRenderRepositories r = ((OsmandApplication) getApplication()).getResourceManager().getRenderer(); settings.MAP_ONLINE_DATA.set(false);
if (r.isEmpty()) {
AccessibleToast.makeText(activity, getString(R.string.no_vector_map_loaded), Toast.LENGTH_LONG).show();
return;
} else {
settings.MAP_VECTOR_DATA.set(true);
}
updateMapSource(mapView, null); updateMapSource(mapView, null);
} else if (layerKey.equals(layerInstallMore)) { } else if (layerKey.equals(layerInstallMore)) {
SettingsActivity.installMapLayers(activity, new ResultMatcher<TileSourceTemplate>() { SettingsActivity.installMapLayers(activity, new ResultMatcher<TileSourceTemplate>() {
@ -625,7 +568,7 @@ public class MapActivityLayers {
if(object == null){ if(object == null){
if(count == 1){ if(count == 1){
settings.MAP_TILE_SOURCES.set(template.getName()); settings.MAP_TILE_SOURCES.set(template.getName());
settings.MAP_VECTOR_DATA.set(false); settings.MAP_ONLINE_DATA.set(true);
updateMapSource(mapView, settings.MAP_TILE_SOURCES); updateMapSource(mapView, settings.MAP_TILE_SOURCES);
} else { } else {
selectMapLayer(mapView); selectMapLayer(mapView);
@ -644,7 +587,7 @@ public class MapActivityLayers {
}); });
} else { } else {
settings.MAP_TILE_SOURCES.set(layerKey); settings.MAP_TILE_SOURCES.set(layerKey);
settings.MAP_VECTOR_DATA.set(false); settings.MAP_ONLINE_DATA.set(true);
updateMapSource(mapView, settings.MAP_TILE_SOURCES); updateMapSource(mapView, settings.MAP_TILE_SOURCES);
} }
@ -655,62 +598,6 @@ public class MapActivityLayers {
builder.show(); builder.show();
} }
private void selectMapOverlayLayer(final OsmandMapTileView mapView,
final CommonPreference<String> mapPref, final CommonPreference<Integer> transparencyPref,
final BaseMapLayer... transparencyToChange){
final OsmandSettings settings = getApplication().getSettings();
Map<String, String> entriesMap = settings.getTileSourceEntries();
final ArrayList<String> keys = new ArrayList<String>(entriesMap.keySet());
Builder builder = new AlertDialog.Builder(activity);
final String[] items = new String[entriesMap.size() + 1];
int i = 0;
for(String it : entriesMap.values()){
items[i++] = it;
}
items[i] = getString(R.string.install_more);
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == items.length - 1){
SettingsActivity.installMapLayers(activity, new ResultMatcher<TileSourceTemplate>() {
TileSourceTemplate template = null;
int count = 0;
@Override
public boolean publish(TileSourceTemplate object) {
if(object == null){
if(count == 1){
mapPref.set(template.getName());
mapControlsLayer.showAndHideTransparencyBar(transparencyPref, transparencyToChange);
updateMapSource(mapView, mapPref);
} else {
selectMapOverlayLayer(mapView, mapPref, transparencyPref, transparencyToChange);
}
} else {
count ++;
template = object;
}
return false;
}
@Override
public boolean isCancelled() {
return false;
}
});
} else {
mapPref.set(keys.get(which));
mapControlsLayer.showAndHideTransparencyBar(transparencyPref, transparencyToChange);
updateMapSource(mapView, mapPref);
}
dialog.dismiss();
}
});
builder.show();
}
private String getString(int resId) { private String getString(int resId) {
return activity.getString(resId); return activity.getString(resId);
@ -739,6 +626,18 @@ public class MapActivityLayers {
return mapInfoLayer; return mapInfoLayer;
} }
public MapControlsLayer getMapControlsLayer() {
return mapControlsLayer;
}
public MapTileLayer getMapTileLayer() {
return mapTileLayer;
}
public MapVectorLayer getMapVectorLayer() {
return mapVectorLayer;
}
public POIMapLayer getPoiMapLayer() { public POIMapLayer getPoiMapLayer() {
return poiMapLayer; return poiMapLayer;
} }

View file

@ -17,6 +17,7 @@ import android.widget.ArrayAdapter;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ListView; import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
public class PluginsActivity extends OsmandListActivity { public class PluginsActivity extends OsmandListActivity {
@ -45,14 +46,16 @@ public class PluginsActivity extends OsmandListActivity {
protected void onListItemClick(ListView l, View v, int position, long id) { protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id); super.onListItemClick(l, v, position, id);
OsmandPlugin item = getListAdapter().getItem(position); OsmandPlugin item = getListAdapter().getItem(position);
boolean enable = true; boolean enable = !restartPlugins.contains(item.getId());
if(restartPlugins.contains(item.getId())) {
restartPlugins.remove(item.getId()); boolean ok = OsmandPlugin.enablePlugin(((OsmandApplication) getApplication()), item, enable);
enable = false; if (ok) {
} else { if (!enable) {
restartPlugins.add(item.getId()); restartPlugins.remove(item.getId());
} else {
restartPlugins.add(item.getId());
}
} }
((OsmandApplication) getApplication()).getSettings().enablePlugin(item.getId(), enable);
getListAdapter().notifyDataSetInvalidated(); getListAdapter().notifyDataSetInvalidated();
} }
@ -86,9 +89,9 @@ public class PluginsActivity extends OsmandListActivity {
description.setText(plugin.getDescription()); description.setText(plugin.getDescription());
boolean enabled = enabledPlugins.contains(plugin.getId()); boolean enabled = enabledPlugins.contains(plugin.getId());
boolean toBeEnabled = restartPlugins.contains(plugin.getId()); boolean toBeEnabled = restartPlugins.contains(plugin.getId());
description.setTextColor(toBeEnabled? colorGreen : Color.GRAY); description.setTextColor(toBeEnabled? colorGreen : Color.LTGRAY);
nameView.setTextColor(toBeEnabled? colorGreen : Color.GRAY); nameView.setTextColor(toBeEnabled? colorGreen : Color.LTGRAY);
description.setTypeface(enabled? Typeface.DEFAULT_BOLD : Typeface.DEFAULT); // description.setTypeface(enabled? Typeface.DEFAULT_BOLD : Typeface.DEFAULT);
nameView.setTypeface(enabled? Typeface.DEFAULT_BOLD : Typeface.DEFAULT); nameView.setTypeface(enabled? Typeface.DEFAULT_BOLD : Typeface.DEFAULT);
return row; return row;

View file

@ -12,13 +12,11 @@ import java.util.Set;
import net.osmand.ResultMatcher; import net.osmand.ResultMatcher;
import net.osmand.Version; import net.osmand.Version;
import net.osmand.access.AccessibilityMode;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.access.RelativeDirectionStyle;
import net.osmand.map.TileSourceManager; import net.osmand.map.TileSourceManager;
import net.osmand.map.TileSourceManager.TileSourceTemplate; import net.osmand.map.TileSourceManager.TileSourceTemplate;
import net.osmand.plus.NavigationService;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.OsmandSettings.CommonPreference; import net.osmand.plus.OsmandSettings.CommonPreference;
import net.osmand.plus.OsmandSettings.DayNightMode; import net.osmand.plus.OsmandSettings.DayNightMode;
@ -27,7 +25,6 @@ import net.osmand.plus.OsmandSettings.OsmandPreference;
import net.osmand.plus.ProgressDialogImplementation; import net.osmand.plus.ProgressDialogImplementation;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.ResourceManager; import net.osmand.plus.ResourceManager;
import net.osmand.plus.render.MapRenderRepositories;
import net.osmand.plus.render.NativeOsmandLibrary; import net.osmand.plus.render.NativeOsmandLibrary;
import net.osmand.plus.routing.RouteProvider.RouteService; import net.osmand.plus.routing.RouteProvider.RouteService;
import net.osmand.plus.views.SeekBarPreference; import net.osmand.plus.views.SeekBarPreference;
@ -37,16 +34,10 @@ import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.AlertDialog.Builder; import android.app.AlertDialog.Builder;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnClickListener;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.location.LocationManager;
import android.media.AudioManager;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.preference.CheckBoxPreference; import android.preference.CheckBoxPreference;
@ -67,30 +58,21 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
public static final int SCREEN_NAVIGATION_SETTINGS = 2; public static final int SCREEN_NAVIGATION_SETTINGS = 2;
public static final int SCREEN_MONITORING_SETTINGS = 3; public static final int SCREEN_MONITORING_SETTINGS = 3;
private static final String MORE_VALUE = "MORE_VALUE"; public static final String SCREEN_ID_GENERAL_SETTINGS = "general_settings";
public static final String SCREEN_ID_NAVIGATION_SETTINGS = "routing_settings";
public static final String SCREEN_ID_MONITORING_SETTINGS = "monitor_settings";
public static final String MORE_VALUE = "MORE_VALUE";
private Preference saveCurrentTrack;
private Preference testVoiceCommands;
private Preference localOpenstreetmapPoints;
private Preference bidforfix; private Preference bidforfix;
private Preference plugins; private Preference plugins;
private EditTextPreference applicationDir; private EditTextPreference applicationDir;
private ListPreference applicationModePreference; private ListPreference applicationModePreference;
private ListPreference tileSourcePreference;
private ListPreference overlayPreference;
private ListPreference underlayPreference;
private ListPreference dayNightModePreference; private ListPreference dayNightModePreference;
private ListPreference routerServicePreference; private ListPreference routerServicePreference;
private ListPreference accessibilityModePreference; public ProgressDialog progressDlg;
private ListPreference directionStylePreference;
private CheckBoxPreference routeServiceEnabled;
private BroadcastReceiver broadcastReceiver;
private ProgressDialog progressDlg;
private OsmandSettings osmandSettings; private OsmandSettings osmandSettings;
@ -102,7 +84,7 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
private Map<String, Map<String, ?>> listPrefValues = new LinkedHashMap<String, Map<String, ?>>(); private Map<String, Map<String, ?>> listPrefValues = new LinkedHashMap<String, Map<String, ?>>();
private CheckBoxPreference registerBooleanPreference(OsmandPreference<Boolean> b, PreferenceScreen screen){ public CheckBoxPreference registerBooleanPreference(OsmandPreference<Boolean> b, PreferenceScreen screen){
CheckBoxPreference p = (CheckBoxPreference) screen.findPreference(b.getId()); CheckBoxPreference p = (CheckBoxPreference) screen.findPreference(b.getId());
p.setOnPreferenceChangeListener(this); p.setOnPreferenceChangeListener(this);
screenPreferences.put(b.getId(), p); screenPreferences.put(b.getId(), p);
@ -110,15 +92,49 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
return p; return p;
} }
private void registerSeekBarPreference(OsmandPreference<Integer> b, PreferenceScreen screen){ public CheckBoxPreference createCheckBoxPreference(OsmandPreference<Boolean> b, int title, int summary){
CheckBoxPreference p = new CheckBoxPreference(this);
p.setTitle(title);
p.setSummary(summary);
p.setOnPreferenceChangeListener(this);
screenPreferences.put(b.getId(), p);
booleanPreferences.put(b.getId(), b);
return p;
}
public void registerSeekBarPreference(OsmandPreference<Integer> b, PreferenceScreen screen){
SeekBarPreference p = (SeekBarPreference) screen.findPreference(b.getId()); SeekBarPreference p = (SeekBarPreference) screen.findPreference(b.getId());
p.setOnPreferenceChangeListener(this); p.setOnPreferenceChangeListener(this);
screenPreferences.put(b.getId(), p); screenPreferences.put(b.getId(), p);
seekBarPreferences.put(b.getId(), b); seekBarPreferences.put(b.getId(), b);
} }
private <T> void registerListPreference(OsmandPreference<T> b, PreferenceScreen screen, String[] names, T[] values){ public SeekBarPreference createSeekBarPreference(OsmandPreference<Integer> b, int title, int summary, int dialogTextId,
int defValue, int maxValue){
SeekBarPreference p = new SeekBarPreference(this, dialogTextId, defValue, maxValue);
p.setTitle(title);
p.setSummary(summary);
p.setOnPreferenceChangeListener(this);
screenPreferences.put(b.getId(), p);
seekBarPreferences.put(b.getId(), b);
return p;
}
public <T> void registerListPreference(OsmandPreference<T> b, PreferenceScreen screen, String[] names, T[] values){
ListPreference p = (ListPreference) screen.findPreference(b.getId()); ListPreference p = (ListPreference) screen.findPreference(b.getId());
prepareListPreference(b, names, values, p);
}
public <T> ListPreference createListPreference(OsmandPreference<T> b, String[] names, T[] values, int title, int summary){
ListPreference p = new ListPreference(this);
p.setTitle(title);
p.setDialogTitle(title);
p.setSummary(summary);
prepareListPreference(b, names, values, p);
return p;
}
private <T> void prepareListPreference(OsmandPreference<T> b, String[] names, T[] values, ListPreference p) {
p.setOnPreferenceChangeListener(this); p.setOnPreferenceChangeListener(this);
LinkedHashMap<String, Object> vals = new LinkedHashMap<String, Object>(); LinkedHashMap<String, Object> vals = new LinkedHashMap<String, Object>();
screenPreferences.put(b.getId(), p); screenPreferences.put(b.getId(), p);
@ -130,14 +146,26 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
} }
} }
private void registerEditTextPreference(OsmandPreference<String> b, PreferenceScreen screen){ public void registerEditTextPreference(OsmandPreference<String> b, PreferenceScreen screen){
EditTextPreference p = (EditTextPreference) screen.findPreference(b.getId()); EditTextPreference p = (EditTextPreference) screen.findPreference(b.getId());
p.setOnPreferenceChangeListener(this); p.setOnPreferenceChangeListener(this);
screenPreferences.put(b.getId(), p); screenPreferences.put(b.getId(), p);
editTextPreferences.put(b.getId(), b); editTextPreferences.put(b.getId(), b);
} }
private void registerTimeListPreference(OsmandPreference<Integer> b, PreferenceScreen screen, int[] seconds, int[] minutes, int coeff){ public EditTextPreference createEditTextPreference(OsmandPreference<String> b, int title, int summary){
EditTextPreference p = new EditTextPreference(this);
p.setTitle(title);
p.setDialogTitle(title);
p.setSummary(summary);
p.setOnPreferenceChangeListener(this);
screenPreferences.put(b.getId(), p);
editTextPreferences.put(b.getId(), b);
return p;
}
public void registerTimeListPreference(OsmandPreference<Integer> b, PreferenceScreen screen, int[] seconds, int[] minutes, int coeff){
int minutesLength = minutes == null? 0 : minutes.length; int minutesLength = minutes == null? 0 : minutes.length;
int secondsLength = seconds == null? 0 : seconds.length; int secondsLength = seconds == null? 0 : seconds.length;
Integer[] ints = new Integer[secondsLength + minutesLength]; Integer[] ints = new Integer[secondsLength + minutesLength];
@ -153,6 +181,22 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
registerListPreference(b, screen, intDescriptions, ints); registerListPreference(b, screen, intDescriptions, ints);
} }
public ListPreference createTimeListPreference(OsmandPreference<Integer> b, int[] seconds, int[] minutes, int coeff, int title, int summary){
int minutesLength = minutes == null? 0 : minutes.length;
int secondsLength = seconds == null? 0 : seconds.length;
Integer[] ints = new Integer[secondsLength + minutesLength];
String[] intDescriptions = new String[ints.length];
for (int i = 0; i < secondsLength; i++) {
ints[i] = seconds[i] * coeff;
intDescriptions[i] = seconds[i] + " " + getString(R.string.int_seconds); //$NON-NLS-1$
}
for (int i = 0; i < minutesLength; i++) {
ints[secondsLength + i] = (minutes[i] * 60) * coeff;
intDescriptions[secondsLength + i] = minutes[i] + " " + getString(R.string.int_min); //$NON-NLS-1$
}
return createListPreference(b, intDescriptions, ints, title, summary);
}
private Set<String> getVoiceFiles(){ private Set<String> getVoiceFiles(){
// read available voice data // read available voice data
File extStorage = osmandSettings.extendOsmandPath(ResourceManager.VOICE_PATH); File extStorage = osmandSettings.extendOsmandPath(ResourceManager.VOICE_PATH);
@ -181,45 +225,23 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
// BidForFixHelper bidForFixHelper = getMyApplication().getBidForFix(); // BidForFixHelper bidForFixHelper = getMyApplication().getBidForFix();
// bidForFixHelper.generatePreferenceList(screen, getString(R.string.support_new_features), this); // bidForFixHelper.generatePreferenceList(screen, getString(R.string.support_new_features), this);
OsmandPlugin.onSettingsActivityCreate(this, screen);
registerBooleanPreference(osmandSettings.SHOW_VIEW_ANGLE,screen); registerBooleanPreference(osmandSettings.SHOW_VIEW_ANGLE,screen);
registerBooleanPreference(osmandSettings.USE_TRACKBALL_FOR_MOVEMENTS,screen);
registerBooleanPreference(osmandSettings.ZOOM_BY_TRACKBALL,screen);
registerBooleanPreference(osmandSettings.SCROLL_MAP_BY_GESTURES,screen);
registerBooleanPreference(osmandSettings.USE_SHORT_OBJECT_NAMES,screen);
registerBooleanPreference(osmandSettings.ACCESSIBILITY_EXTENSIONS,screen);
registerBooleanPreference(osmandSettings.USE_HIGH_RES_MAPS,screen);
registerBooleanPreference(osmandSettings.USE_ENGLISH_NAMES,screen); registerBooleanPreference(osmandSettings.USE_ENGLISH_NAMES,screen);
registerBooleanPreference(osmandSettings.AUTO_ZOOM_MAP,screen); registerBooleanPreference(osmandSettings.AUTO_ZOOM_MAP,screen);
// try without AUTO_FOLLOW_ROUTE_NAV (see forum discussion 'Simplify our navigation preference menu')
//registerBooleanPreference(osmandSettings.AUTO_FOLLOW_ROUTE_NAV,screen);
registerBooleanPreference(osmandSettings.SAVE_TRACK_TO_GPX,screen);
registerBooleanPreference(osmandSettings.LIVE_MONITORING,screen);
registerBooleanPreference(osmandSettings.DEBUG_RENDERING_INFO,screen);
registerBooleanPreference(osmandSettings.FAST_ROUTE_MODE,screen); registerBooleanPreference(osmandSettings.FAST_ROUTE_MODE,screen);
registerBooleanPreference(osmandSettings.USE_OSMAND_ROUTING_SERVICE_ALWAYS,screen); registerBooleanPreference(osmandSettings.USE_OSMAND_ROUTING_SERVICE_ALWAYS,screen);
registerBooleanPreference(osmandSettings.USE_INTERNET_TO_DOWNLOAD_TILES,screen);
registerBooleanPreference(osmandSettings.MAP_VECTOR_DATA,screen);
registerBooleanPreference(osmandSettings.TRANSPARENT_MAP_THEME,screen);
registerBooleanPreference(osmandSettings.TEST_ANIMATE_ROUTING,screen);
registerBooleanPreference(osmandSettings.SHOW_ALTITUDE_INFO,screen); registerBooleanPreference(osmandSettings.SHOW_ALTITUDE_INFO,screen);
registerBooleanPreference(osmandSettings.FLUORESCENT_OVERLAYS,screen);
registerBooleanPreference(osmandSettings.SHOW_RULER,screen);
CheckBoxPreference nativeCheckbox = registerBooleanPreference(osmandSettings.NATIVE_RENDERING,screen); CheckBoxPreference nativeCheckbox = registerBooleanPreference(osmandSettings.NATIVE_RENDERING,screen);
//disable the checkbox if the library cannot be used //disable the checkbox if the library cannot be used
if ((NativeOsmandLibrary.isLoaded() && !NativeOsmandLibrary.isSupported()) || if ((NativeOsmandLibrary.isLoaded() && !NativeOsmandLibrary.isSupported()) ||
osmandSettings.NATIVE_RENDERING_FAILED.get()) { osmandSettings.NATIVE_RENDERING_FAILED.get()) {
nativeCheckbox.setEnabled(false); nativeCheckbox.setEnabled(false);
} }
registerEditTextPreference(osmandSettings.USER_NAME, screen);
registerEditTextPreference(osmandSettings.USER_PASSWORD, screen);
registerBooleanPreference(osmandSettings.OFFLINE_POI_EDITION, screen);
registerEditTextPreference(osmandSettings.LIVE_MONITORING_URL, screen);
registerSeekBarPreference(osmandSettings.MAP_OVERLAY_TRANSPARENCY, screen);
registerSeekBarPreference(osmandSettings.MAP_TRANSPARENCY, screen);
// List preferences // List preferences
registerListPreference(osmandSettings.ROTATE_MAP, screen, registerListPreference(osmandSettings.ROTATE_MAP, screen,
@ -230,14 +252,6 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
new String[] {getString(R.string.map_orientation_portrait), getString(R.string.map_orientation_landscape), getString(R.string.map_orientation_default)}, new String[] {getString(R.string.map_orientation_portrait), getString(R.string.map_orientation_landscape), getString(R.string.map_orientation_default)},
new Integer[] {ActivityInfo.SCREEN_ORIENTATION_PORTRAIT, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED}); new Integer[] {ActivityInfo.SCREEN_ORIENTATION_PORTRAIT, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED});
registerListPreference(osmandSettings.POSITION_ON_MAP, screen,
new String[] {getString(R.string.position_on_map_center), getString(R.string.position_on_map_bottom)},
new Integer[] {OsmandSettings.CENTER_CONSTANT, OsmandSettings.BOTTOM_CONSTANT});
registerListPreference(osmandSettings.AUDIO_STREAM_GUIDANCE, screen,
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});
entries = new String[DayNightMode.values().length]; entries = new String[DayNightMode.values().length];
for(int i=0; i<entries.length; i++){ for(int i=0; i<entries.length; i++){
@ -245,34 +259,24 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
} }
registerListPreference(osmandSettings.DAYNIGHT_MODE, screen, entries, DayNightMode.values()); registerListPreference(osmandSettings.DAYNIGHT_MODE, screen, entries, DayNightMode.values());
entries = new String[MetricsConstants.values().length]; MetricsConstants[] mvls = new MetricsConstants[] {MetricsConstants.KILOMETERS_AND_METERS, MetricsConstants.MILES_AND_FOOTS}; //MetricsConstants.values();
entries = new String[mvls.length];
for(int i=0; i<entries.length; i++){ for(int i=0; i<entries.length; i++){
entries[i] = MetricsConstants.values()[i].toHumanString(this); entries[i] = mvls[i].toHumanString(this);
} }
registerListPreference(osmandSettings.METRIC_SYSTEM, screen, entries, MetricsConstants.values()); registerListPreference(osmandSettings.METRIC_SYSTEM, screen, entries, mvls);
//getResources().getAssets().getLocales(); //getResources().getAssets().getLocales();
entrieValues = new String[] { "", "en", "cs", "de", "es", "fr", "hu", "it", "jp", "nl", "pl", "pt", "ru", "sk", "vi" }; entrieValues = new String[] { "",
entries = new String[entrieValues.length]; "en", "cs", "de", "es", "fr", "hu", "it", "jp", "nl", "pl", "pt", "ru", "sk", "vi" };
entries[0] = getString(R.string.system_locale); entries = new String[] { getString(R.string.system_locale),
for (int i = 1; i < entries.length; i++) { "English", "Czech", "German", "Spanish", "French", "Hungarian", "Italian", "Japanese", "Dutch", "Polish", "Portuguese", "Russian", "Slovak", "Vietnamese" };;
entries[i] = entrieValues[i];
}
registerListPreference(osmandSettings.PREFERRED_LOCALE, screen, entries, entrieValues); registerListPreference(osmandSettings.PREFERRED_LOCALE, screen, entries, entrieValues);
int startZoom = 12;
int endZoom = 19;
entries = new String[endZoom - startZoom + 1];
Integer[] intValues = new Integer[endZoom - startZoom + 1];
for (int i = startZoom; i <= endZoom; i++) {
entries[i - startZoom] = i + ""; //$NON-NLS-1$
intValues[i - startZoom] = i ;
}
// try without, Issue 823:
// registerListPreference(osmandSettings.MAX_LEVEL_TO_DOWNLOAD_TILE, screen, entries, intValues);
intValues = new Integer[] { 0, 5, 10, 15, 20, 25, 30, 45, 60, 90};
Integer[] intValues = new Integer[] { 0, 5, 10, 15, 20, 25, 30, 45, 60, 90};
entries = new String[intValues.length]; entries = new String[intValues.length];
entries[0] = getString(R.string.auto_follow_route_never); entries[0] = getString(R.string.auto_follow_route_never);
for (int i = 1; i < intValues.length; i++) { for (int i = 1; i < intValues.length; i++) {
@ -286,31 +290,7 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
entries[i] = (int) (floatValues[i] * 100) +" %"; entries[i] = (int) (floatValues[i] * 100) +" %";
} }
registerListPreference(osmandSettings.MAP_TEXT_SIZE, screen, entries, floatValues); registerListPreference(osmandSettings.MAP_TEXT_SIZE, screen, entries, floatValues);
entries = new String[AccessibilityMode.values().length];
for(int i=0; i<entries.length; i++){
entries[i] = AccessibilityMode.values()[i].toHumanString(this);
}
registerListPreference(osmandSettings.ACCESSIBILITY_MODE, screen, entries, AccessibilityMode.values());
entries = new String[RelativeDirectionStyle.values().length];
for(int i=0; i<entries.length; i++){
entries[i] = RelativeDirectionStyle.values()[i].toHumanString(this);
}
registerListPreference(osmandSettings.DIRECTION_STYLE, screen, entries, RelativeDirectionStyle.values());
startZoom = 1;
endZoom = 18;
entries = new String[endZoom - startZoom + 1];
intValues = new Integer[endZoom - startZoom + 1];
for (int i = startZoom; i <= endZoom; i++) {
entries[i - startZoom] = i + ""; //$NON-NLS-1$
intValues[i - startZoom] = i ;
}
registerListPreference(osmandSettings.LEVEL_TO_SWITCH_VECTOR_RASTER, screen, entries, intValues);
entries = new String[RouteService.values().length]; entries = new String[RouteService.values().length];
for(int i=0; i<entries.length; i++){ for(int i=0; i<entries.length; i++){
entries[i] = RouteService.values()[i].getName(); entries[i] = RouteService.values()[i].getName();
@ -319,19 +299,6 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
entries = new String[]{getString(R.string.gps_provider), getString(R.string.network_provider)};
entrieValues = new String[]{LocationManager.GPS_PROVIDER, LocationManager.NETWORK_PROVIDER};
registerListPreference(osmandSettings.SERVICE_OFF_PROVIDER, screen, entries, entrieValues);
registerTimeListPreference(osmandSettings.SAVE_TRACK_INTERVAL, screen, new int[]{1, 2, 3, 5, 10, 15, 20, 30}, new int[]{1, 2, 3, 5}, 1);
registerTimeListPreference(osmandSettings.LIVE_MONITORING_INTERVAL, screen, new int[]{1, 2, 3, 5, 10, 15, 20, 30}, new int[]{1, 2, 3, 5}, 1);
registerTimeListPreference(osmandSettings.SERVICE_OFF_INTERVAL, screen,
new int[]{0, 30, 45, 60}, new int[]{2, 3, 5, 10, 15, 30, 45, 60, 90}, 1000);
registerTimeListPreference(osmandSettings.SERVICE_OFF_WAIT_INTERVAL, screen,
new int[]{15, 30, 45, 60, 90}, new int[]{2, 3, 5, 10}, 1000);
entries = new String[ApplicationMode.values().length]; entries = new String[ApplicationMode.values().length];
for(int i=0; i<entries.length; i++){ for(int i=0; i<entries.length; i++){
entries[i] = ApplicationMode.values()[i].toHumanString(this); entries[i] = ApplicationMode.values()[i].toHumanString(this);
@ -347,48 +314,21 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
applicationModePreference = (ListPreference) screen.findPreference(osmandSettings.APPLICATION_MODE.getId()); applicationModePreference = (ListPreference) screen.findPreference(osmandSettings.APPLICATION_MODE.getId());
applicationModePreference.setOnPreferenceChangeListener(this); applicationModePreference.setOnPreferenceChangeListener(this);
tileSourcePreference = (ListPreference) screen.findPreference(osmandSettings.MAP_TILE_SOURCES.getId());
tileSourcePreference.setOnPreferenceChangeListener(this);
overlayPreference = (ListPreference) screen.findPreference(osmandSettings.MAP_OVERLAY.getId());
overlayPreference.setOnPreferenceChangeListener(this);
underlayPreference = (ListPreference) screen.findPreference(osmandSettings.MAP_UNDERLAY.getId());
underlayPreference.setOnPreferenceChangeListener(this);
dayNightModePreference = (ListPreference) screen.findPreference(osmandSettings.DAYNIGHT_MODE.getId()); dayNightModePreference = (ListPreference) screen.findPreference(osmandSettings.DAYNIGHT_MODE.getId());
dayNightModePreference.setOnPreferenceChangeListener(this); dayNightModePreference.setOnPreferenceChangeListener(this);
routerServicePreference = (ListPreference) screen.findPreference(osmandSettings.ROUTER_SERVICE.getId()); routerServicePreference = (ListPreference) screen.findPreference(osmandSettings.ROUTER_SERVICE.getId());
routerServicePreference.setOnPreferenceChangeListener(this); routerServicePreference.setOnPreferenceChangeListener(this);
accessibilityModePreference = (ListPreference)screen.findPreference(osmandSettings.ACCESSIBILITY_MODE.getId());
accessibilityModePreference.setOnPreferenceChangeListener(this);
directionStylePreference = (ListPreference)screen.findPreference(osmandSettings.DIRECTION_STYLE.getId());
directionStylePreference.setOnPreferenceChangeListener(this);
Preference localIndexes =(Preference) screen.findPreference(OsmandSettings.LOCAL_INDEXES); Preference localIndexes =(Preference) screen.findPreference(OsmandSettings.LOCAL_INDEXES);
localIndexes.setOnPreferenceClickListener(this); localIndexes.setOnPreferenceClickListener(this);
saveCurrentTrack =(Preference) screen.findPreference(OsmandSettings.SAVE_CURRENT_TRACK);
saveCurrentTrack.setOnPreferenceClickListener(this);
testVoiceCommands =(Preference) screen.findPreference("test_voice_commands");
testVoiceCommands.setOnPreferenceClickListener(this);
routeServiceEnabled =(CheckBoxPreference) screen.findPreference(OsmandSettings.SERVICE_OFF_ENABLED);
routeServiceEnabled.setOnPreferenceChangeListener(this);
applicationDir = (EditTextPreference) screen.findPreference(OsmandSettings.EXTERNAL_STORAGE_DIR); applicationDir = (EditTextPreference) screen.findPreference(OsmandSettings.EXTERNAL_STORAGE_DIR);
applicationDir.setOnPreferenceChangeListener(this); applicationDir.setOnPreferenceChangeListener(this);
localOpenstreetmapPoints = (Preference) screen.findPreference(OsmandSettings.LOCAL_OPENSTREETMAP_POINTS);
localOpenstreetmapPoints.setOnPreferenceClickListener(this);
bidforfix = (Preference) screen.findPreference("bidforfix"); bidforfix = (Preference) screen.findPreference("bidforfix");
bidforfix.setOnPreferenceClickListener(this); bidforfix.setOnPreferenceClickListener(this);
plugins = (Preference) screen.findPreference("plugins"); plugins = (Preference) screen.findPreference("plugins");
plugins.setOnPreferenceClickListener(this); plugins.setOnPreferenceClickListener(this);
broadcastReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
routeServiceEnabled.setChecked(false);
}
};
registerReceiver(broadcastReceiver, new IntentFilter(NavigationService.OSMAND_STOP_SERVICE_ACTION));
Intent intent = getIntent(); Intent intent = getIntent();
@ -396,11 +336,11 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
int s = intent.getIntExtra(INTENT_KEY_SETTINGS_SCREEN, 0); int s = intent.getIntExtra(INTENT_KEY_SETTINGS_SCREEN, 0);
String pref = null; String pref = null;
if(s == SCREEN_GENERAL_SETTINGS){ if(s == SCREEN_GENERAL_SETTINGS){
pref = "general_settings"; pref = SCREEN_ID_GENERAL_SETTINGS;
} else if(s == SCREEN_NAVIGATION_SETTINGS){ } else if(s == SCREEN_NAVIGATION_SETTINGS){
pref = "routing_settings"; pref = SCREEN_ID_NAVIGATION_SETTINGS;
} else if(s == SCREEN_MONITORING_SETTINGS){ } else if(s == SCREEN_MONITORING_SETTINGS){
pref = "monitor_settings"; pref = SCREEN_ID_MONITORING_SETTINGS;
} }
if(pref != null){ if(pref != null){
Preference toOpen = screen.findPreference(pref); Preference toOpen = screen.findPreference(pref);
@ -414,29 +354,31 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
private void createCustomRenderingProperties(boolean update) { private void createCustomRenderingProperties(boolean update) {
RenderingRulesStorage renderer = getMyApplication().getRendererRegistry().getCurrentSelectedRenderer(); RenderingRulesStorage renderer = getMyApplication().getRendererRegistry().getCurrentSelectedRenderer();
PreferenceCategory cat = (PreferenceCategory) findPreference("custom_vector_rendering"); PreferenceCategory cat = (PreferenceCategory) findPreference("custom_vector_rendering");
cat.removeAll(); if (cat != null) {
if(renderer != null){ cat.removeAll();
for(RenderingRuleProperty p : renderer.PROPS.getCustomRules()){ if (renderer != null) {
CommonPreference<String> custom = getMyApplication().getSettings().getCustomRenderProperty(p.getAttrName()); for (RenderingRuleProperty p : renderer.PROPS.getCustomRules()) {
ListPreference lp = new ListPreference(this); CommonPreference<String> custom = getMyApplication().getSettings().getCustomRenderProperty(p.getAttrName());
lp.setOnPreferenceChangeListener(this); ListPreference lp = new ListPreference(this);
lp.setKey(custom.getId()); lp.setOnPreferenceChangeListener(this);
lp.setTitle(p.getName()); lp.setKey(custom.getId());
lp.setSummary(p.getDescription()); lp.setTitle(p.getName());
cat.addPreference(lp); lp.setSummary(p.getDescription());
cat.addPreference(lp);
LinkedHashMap<String, Object> vals = new LinkedHashMap<String, Object>();
screenPreferences.put(custom.getId(), lp); LinkedHashMap<String, Object> vals = new LinkedHashMap<String, Object>();
listPreferences.put(custom.getId(), custom); screenPreferences.put(custom.getId(), lp);
listPrefValues.put(custom.getId(), vals); listPreferences.put(custom.getId(), custom);
String[] names = p.getPossibleValues(); listPrefValues.put(custom.getId(), vals);
for(int i=0; i<names.length; i++){ String[] names = p.getPossibleValues();
vals.put(names[i], names[i]); for (int i = 0; i < names.length; i++) {
vals.put(names[i], names[i]);
}
}
if (update) {
updateAllSettings();
} }
}
if(update) {
updateAllSettings();
} }
} }
@ -476,8 +418,8 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
@Override @Override
protected void onDestroy() { protected void onDestroy() {
OsmandPlugin.onSettingsActivityDestroy(this);
super.onDestroy(); super.onDestroy();
unregisterReceiver(broadcastReceiver);
} }
public void updateAllSettings(){ public void updateAllSettings(){
@ -514,83 +456,16 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
pref.setText(s.get()); pref.setText(s.get());
} }
// Specific properties OsmandPlugin.onSettingsActivityUpdate(this);
routeServiceEnabled.setChecked(getMyApplication().getNavigationService() != null);
updateTileSourceSummary();
updateApplicationDirTextAndSummary(); updateApplicationDirTextAndSummary();
applicationModePreference.setTitle(getString(R.string.settings_preset) + " [" + osmandSettings.APPLICATION_MODE.get().toHumanString(this) + "]"); applicationModePreference.setTitle(getString(R.string.settings_preset) + " [" + osmandSettings.APPLICATION_MODE.get().toHumanString(this) + "]");
dayNightModePreference.setSummary(getString(R.string.daynight_descr) + " [" + osmandSettings.DAYNIGHT_MODE.get().toHumanString(this) + "]"); dayNightModePreference.setSummary(getString(R.string.daynight_descr) + " [" + osmandSettings.DAYNIGHT_MODE.get().toHumanString(this) + "]");
routerServicePreference.setSummary(getString(R.string.router_service_descr) + " [" + osmandSettings.ROUTER_SERVICE.get() + "]"); routerServicePreference.setSummary(getString(R.string.router_service_descr) + " [" + osmandSettings.ROUTER_SERVICE.get() + "]");
accessibilityModePreference.setSummary(getString(R.string.accessibility_mode_descr) + " [" + osmandSettings.ACCESSIBILITY_MODE.get().toHumanString(this) + "]");
directionStylePreference.setSummary(getString(R.string.settings_direction_style_descr) + " [" + osmandSettings.DIRECTION_STYLE.get().toHumanString(this) + "]");
/*
// TODO: Add Profile name to screen title (only, not to Preference title) of Profile specific settings
PreferenceScreen screen = getPreferenceScreen();
if (screen.getKey().toString().equals("map_settings")) {
screen.setTitle(getString(R.string.rendering_settings) + " [" + ApplicationMode.toHumanString(osmandSettings.APPLICATION_MODE.get(), this) + "]");
} else if (screen.getKey().toString().equals("appearance_settings")) {
screen.setTitle(getString(R.string.appearance_settings) + " [" + ApplicationMode.toHumanString(osmandSettings.APPLICATION_MODE.get(), this) + "]");
} else if (screen.getKey().toString().equals("monitor_settings")) {
screen.setTitle(getString(R.string.monitor_preferences) + " [" + ApplicationMode.toHumanString(osmandSettings.APPLICATION_MODE.get(), this) + "]");
} else if (screen.getKey().toString().equals("routing_settings")) {
screen.setTitle(getString(R.string.routing_settings) + " [" + ApplicationMode.toHumanString(osmandSettings.APPLICATION_MODE.get(), this) + "]");
}
*/
} }
private void updateTileSourceSummary() {
fillTileSourcesToPreference(tileSourcePreference, osmandSettings.MAP_TILE_SOURCES.get(), false);
fillTileSourcesToPreference(overlayPreference, osmandSettings.MAP_OVERLAY.get(), true);
fillTileSourcesToPreference(underlayPreference, osmandSettings.MAP_UNDERLAY.get(), true);
// String mapName = " " + osmandSettings.MAP_TILE_SOURCES.get(); //$NON-NLS-1$
// String summary = tileSourcePreference.getSummary().toString();
// if (summary.lastIndexOf(':') != -1) {
// summary = summary.substring(0, summary.lastIndexOf(':') + 1);
// }
// tileSourcePreference.setSummary(summary + mapName);
tileSourcePreference.setSummary(getString(R.string.map_tile_source_descr) + " [" + osmandSettings.MAP_TILE_SOURCES.get() + "]");
overlayPreference.setSummary(getString(R.string.map_overlay_descr) + " [" + osmandSettings.MAP_OVERLAY.get() + "]");
underlayPreference.setSummary(getString(R.string.map_underlay_descr) + " [" + osmandSettings.MAP_UNDERLAY.get() + "]");
}
private void fillTileSourcesToPreference(ListPreference tileSourcePreference, String value, boolean addNone) {
Map<String, String> entriesMap = osmandSettings.getTileSourceEntries();
int add = addNone ? 1 : 0;
String[] entries = new String[entriesMap.size() + 1 + add];
String[] values = new String[entriesMap.size() + 1 + add];
int ki = 0;
if(addNone){
entries[ki] = getString(R.string.default_none);
values[ki] = "";
ki++;
}
if (value == null) {
value = "";
}
for(Map.Entry<String, String> es : entriesMap.entrySet()){
entries[ki] = es.getValue();
values[ki] = es.getKey();
ki++;
}
entries[ki] = getString(R.string.install_more);
values[ki] = MORE_VALUE;
fill(tileSourcePreference, entries, values, value);
}
private void fill(ListPreference component, String[] list, String[] values, String selected) {
component.setEntries(list);
component.setEntryValues(values);
component.setValue(selected);
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
@ -602,13 +477,6 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
OsmandPreference<String> editPref = editTextPreferences.get(preference.getKey()); OsmandPreference<String> editPref = editTextPreferences.get(preference.getKey());
if(boolPref != null){ if(boolPref != null){
boolPref.set((Boolean)newValue); boolPref.set((Boolean)newValue);
if (boolPref.getId().equals(osmandSettings.MAP_VECTOR_DATA.getId())) {
MapRenderRepositories r = ((OsmandApplication)getApplication()).getResourceManager().getRenderer();
if(r.isEmpty()){
AccessibleToast.makeText(this, getString(R.string.no_vector_map_loaded), Toast.LENGTH_LONG).show();
return false;
}
}
if (boolPref.getId().equals(osmandSettings.NATIVE_RENDERING.getId())) { if (boolPref.getId().equals(osmandSettings.NATIVE_RENDERING.getId())) {
if(((Boolean)newValue).booleanValue()) { if(((Boolean)newValue).booleanValue()) {
loadNativeLibrary(); loadNativeLibrary();
@ -649,13 +517,6 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
dayNightModePreference.setSummary(getString(R.string.daynight_descr) + " [" + osmandSettings.DAYNIGHT_MODE.get().toHumanString(this) + "]"); dayNightModePreference.setSummary(getString(R.string.daynight_descr) + " [" + osmandSettings.DAYNIGHT_MODE.get().toHumanString(this) + "]");
} else if (listPref.getId().equals(osmandSettings.ROUTER_SERVICE.getId())) { } else if (listPref.getId().equals(osmandSettings.ROUTER_SERVICE.getId())) {
routerServicePreference.setSummary(getString(R.string.router_service_descr) + " [" + osmandSettings.ROUTER_SERVICE.get() + "]"); routerServicePreference.setSummary(getString(R.string.router_service_descr) + " [" + osmandSettings.ROUTER_SERVICE.get() + "]");
} else if (listPref.getId().equals(osmandSettings.ACCESSIBILITY_MODE.getId())) {
PreferenceCategory accessibilityOptions = ((PreferenceCategory)(getPreferenceScreen().findPreference("accessibility_options")));
if (accessibilityOptions != null)
accessibilityOptions.setEnabled(getMyApplication().accessibilityEnabled());
accessibilityModePreference.setSummary(getString(R.string.accessibility_mode_descr) + " [" + osmandSettings.ACCESSIBILITY_MODE.get().toHumanString(this) + "]");
} else if (listPref.getId().equals(osmandSettings.DIRECTION_STYLE.getId())) {
directionStylePreference.setSummary(getString(R.string.settings_direction_style_descr) + " [" + osmandSettings.DIRECTION_STYLE.get().toHumanString(this) + "]");
} }
} }
if (listPref.getId().equals(osmandSettings.RENDERER.getId())) { if (listPref.getId().equals(osmandSettings.RENDERER.getId())) {
@ -669,48 +530,6 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
} else if(preference == applicationDir){ } else if(preference == applicationDir){
warnAboutChangingStorage((String) newValue); warnAboutChangingStorage((String) newValue);
return false; return false;
} else if (preference == routeServiceEnabled) {
Intent serviceIntent = new Intent(this, NavigationService.class);
if ((Boolean) newValue) {
ComponentName name = startService(serviceIntent);
if (name == null) {
routeServiceEnabled.setChecked(getMyApplication().getNavigationService() != null);
}
} else {
if(!stopService(serviceIntent)){
routeServiceEnabled.setChecked(getMyApplication().getNavigationService() != null);
}
}
} else if (preference == tileSourcePreference || preference == overlayPreference
|| preference == underlayPreference) {
if(MORE_VALUE.equals(newValue)){
SettingsActivity.installMapLayers(this, new ResultMatcher<TileSourceTemplate>() {
@Override
public boolean isCancelled() { return false;}
@Override
public boolean publish(TileSourceTemplate object) {
if(object == null){
updateTileSourceSummary();
}
return true;
}
});
} else if(preference == tileSourcePreference){
osmandSettings.MAP_TILE_SOURCES.set((String) newValue);
updateTileSourceSummary();
} else {
if(((String) newValue).length() == 0){
newValue = null;
}
if(preference == underlayPreference){
osmandSettings.MAP_UNDERLAY.set(((String) newValue));
underlayPreference.setSummary(getString(R.string.map_underlay_descr) + " [" + osmandSettings.MAP_UNDERLAY.get() + "]");
} else if(preference == overlayPreference){
osmandSettings.MAP_OVERLAY.set(((String) newValue));
overlayPreference.setSummary(getString(R.string.map_overlay_descr) + " [" + osmandSettings.MAP_OVERLAY.get() + "]");
}
}
} }
return true; return true;
} }
@ -849,20 +668,6 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
if(preference.getKey().equals(OsmandSettings.LOCAL_INDEXES)){ if(preference.getKey().equals(OsmandSettings.LOCAL_INDEXES)){
startActivity(new Intent(this, LocalIndexesActivity.class)); startActivity(new Intent(this, LocalIndexesActivity.class));
return true; return true;
} else if(preference == testVoiceCommands){
startActivity(new Intent(this, TestVoiceActivity.class));
return true;
} else if(preference == saveCurrentTrack){
SavingTrackHelper helper = new SavingTrackHelper(this);
if (helper.hasDataToSave()) {
saveCurrentTracks();
} else {
helper.close();
}
return true;
} else if(preference == localOpenstreetmapPoints){
startActivity(new Intent(this, LocalOpenstreetmapActivity.class));
return true;
} else if(preference == bidforfix){ } else if(preference == bidforfix){
startActivity(new Intent(this, OsmandBidForFixActivity.class)); startActivity(new Intent(this, OsmandBidForFixActivity.class));
return true; return true;
@ -873,26 +678,6 @@ public class SettingsActivity extends PreferenceActivity implements OnPreference
return false; return false;
} }
private void saveCurrentTracks() {
progressDlg = ProgressDialog.show(this, getString(R.string.saving_gpx_tracks), getString(R.string.saving_gpx_tracks), true);
final ProgressDialogImplementation impl = new ProgressDialogImplementation(progressDlg);
impl.setRunnable("SavingGPX", new Runnable() { //$NON-NLS-1$
@Override
public void run() {
try {
SavingTrackHelper helper = new SavingTrackHelper(SettingsActivity.this);
helper.saveDataToGpx();
helper.close();
} finally {
if (progressDlg != null) {
progressDlg.dismiss();
progressDlg = null;
}
}
}
});
impl.run();
}
public static void installMapLayers(final Activity activity, final ResultMatcher<TileSourceTemplate> result){ public static void installMapLayers(final Activity activity, final ResultMatcher<TileSourceTemplate> result){
final OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings(); final OsmandSettings settings = ((OsmandApplication) activity.getApplication()).getSettings();

View file

@ -0,0 +1,120 @@
package net.osmand.plus.background;
import net.osmand.plus.NavigationService;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.SettingsActivity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.location.LocationManager;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;
public class OsmandBackgroundServicePlugin extends OsmandPlugin {
private static final String ID = "osmand.backgroundservice";
private OsmandSettings settings;
private OsmandApplication app;
private BroadcastReceiver broadcastReceiver;
private CheckBoxPreference routeServiceEnabled;
public OsmandBackgroundServicePlugin(OsmandApplication app) {
this.app = app;
}
@Override
public boolean init(OsmandApplication app) {
settings = app.getSettings();
return true;
}
@Override
public String getId() {
return ID;
}
@Override
public String getDescription() {
return app.getString(R.string.osmand_background_plugin_description);
}
@Override
public String getName() {
return app.getString(R.string.osmand_background_plugin_name);
}
@Override
public void registerLayers(MapActivity activity) {
}
@Override
public void settingsActivityDestroy(final SettingsActivity activity){
if(broadcastReceiver != null) {
activity.unregisterReceiver(broadcastReceiver);
}
}
@Override
public void settingsActivityUpdate(final SettingsActivity activity){
if(routeServiceEnabled != null) {
routeServiceEnabled.setChecked(app.getNavigationService() != null);
}
}
@Override
public void settingsActivityCreate(final SettingsActivity activity, PreferenceScreen screen) {
PreferenceScreen grp = screen.getPreferenceManager().createPreferenceScreen(activity);
grp.setTitle(R.string.osmand_service);
grp.setSummary(R.string.osmand_service_descr);
((PreferenceCategory) screen.findPreference("global_settings")).addPreference(grp);
routeServiceEnabled = new CheckBoxPreference(activity);
broadcastReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
routeServiceEnabled.setChecked(false);
}
};
activity.registerReceiver(broadcastReceiver, new IntentFilter(NavigationService.OSMAND_STOP_SERVICE_ACTION));
routeServiceEnabled.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
Intent serviceIntent = new Intent(activity, NavigationService.class);
if ((Boolean) newValue) {
ComponentName name = activity.startService(serviceIntent);
if (name == null) {
routeServiceEnabled.setChecked(app.getNavigationService() != null);
}
} else {
if(!activity.stopService(serviceIntent)){
routeServiceEnabled.setChecked(app.getNavigationService() != null);
}
}
return true;
}
});
routeServiceEnabled.setTitle(R.string.background_router_service);
routeServiceEnabled.setSummary(R.string.background_router_service_descr);
routeServiceEnabled.setKey("service_off_enabled");
grp.addPreference(routeServiceEnabled);
String[] entries = new String[]{app.getString(R.string.gps_provider), app.getString(R.string.network_provider)};
String[] entrieValues = new String[]{LocationManager.GPS_PROVIDER, LocationManager.NETWORK_PROVIDER};
grp.addPreference(activity.createListPreference(settings.SERVICE_OFF_PROVIDER, entries, entrieValues,
R.string.background_service_provider, R.string.background_service_provider_descr));
grp.addPreference(activity.createTimeListPreference(settings.SERVICE_OFF_INTERVAL,new int[]{0, 30, 45, 60}, new int[]{2, 3, 5, 10, 15, 30, 45, 60, 90}, 1000,
R.string.background_service_int, R.string.background_service_int_descr));
grp.addPreference(activity.createTimeListPreference(settings.SERVICE_OFF_WAIT_INTERVAL,new int[]{15, 30, 45, 60, 90}, new int[]{2, 3, 5, 10}, 1000,
R.string.background_service_wait_int, R.string.background_service_wait_int_descr));
}
}

View file

@ -0,0 +1,76 @@
package net.osmand.plus.development;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.SettingsActivity;
import android.content.Intent;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;
public class OsmandDevelopmentPlugin extends OsmandPlugin {
private static final String ID = "osmand.development";
private OsmandSettings settings;
private OsmandApplication app;
public OsmandDevelopmentPlugin(OsmandApplication app) {
this.app = app;
}
@Override
public boolean init(OsmandApplication app) {
settings = app.getSettings();
return true;
}
@Override
public String getId() {
return ID;
}
@Override
public String getDescription() {
return app.getString(R.string.osmand_development_plugin_description);
}
@Override
public String getName() {
return app.getString(R.string.osmand_development_plugin_name);
}
@Override
public void registerLayers(MapActivity activity) {
}
@Override
public void settingsActivityCreate(final SettingsActivity activity, PreferenceScreen screen) {
PreferenceScreen general = (PreferenceScreen) screen.findPreference(SettingsActivity.SCREEN_ID_GENERAL_SETTINGS);
PreferenceCategory cat = new PreferenceCategory(app);
cat.setTitle(R.string.debugging_and_development);
general.addPreference(cat);
CheckBoxPreference dbg = activity.createCheckBoxPreference(settings.DEBUG_RENDERING_INFO,
R.string.trace_rendering, R.string.trace_rendering_descr);
cat.addPreference(dbg);
CheckBoxPreference animate = activity.createCheckBoxPreference(settings.TEST_ANIMATE_ROUTING,
R.string.animate_routing, R.string.simulate_route_progression_manually);
cat.addPreference(animate);
Preference pref = new Preference(app);
pref.setTitle(R.string.test_voice_prompts);
pref.setSummary(R.string.play_commands_of_currently_selected_voice);
pref.setKey("test_voice_commands");
pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
activity.startActivity(new Intent(activity, TestVoiceActivity.class));
return true;
}
});
cat.addPreference(pref);
}
}

View file

@ -1,7 +1,7 @@
/** /**
* *
*/ */
package net.osmand.plus.activities; package net.osmand.plus.development;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;

View file

@ -0,0 +1,89 @@
package net.osmand.plus.extrasettings;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.SettingsActivity;
import android.media.AudioManager;
import android.preference.ListPreference;
import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;
public class OsmandExtraSettings extends OsmandPlugin {
private static final String ID = "osmand.extrasettings";
private OsmandSettings settings;
private OsmandApplication app;
public OsmandExtraSettings(OsmandApplication app) {
this.app = app;
}
@Override
public boolean init(OsmandApplication app) {
settings = app.getSettings();
return true;
}
@Override
public String getId() {
return ID;
}
@Override
public String getDescription() {
return app.getString(R.string.osmand_extra_settings_description);
}
@Override
public String getName() {
return app.getString(R.string.osmand_extra_settings_name);
}
@Override
public void registerLayers(MapActivity activity) {
}
@Override
public void settingsActivityCreate(final SettingsActivity activity, PreferenceScreen screen) {
PreferenceScreen general = (PreferenceScreen) screen.findPreference(SettingsActivity.SCREEN_ID_GENERAL_SETTINGS);
PreferenceCategory cat = new PreferenceCategory(app);
cat.setTitle(R.string.extra_settings);
general.addPreference(cat);
cat.addPreference(activity.createCheckBoxPreference(settings.USE_HIGH_RES_MAPS,
R.string.use_high_res_maps, R.string.use_high_res_maps_descr));
cat.addPreference(activity.createCheckBoxPreference(settings.USE_TRACKBALL_FOR_MOVEMENTS,
R.string.use_trackball, R.string.use_trackball_descr));
ListPreference lp = activity.createListPreference(settings.AUDIO_STREAM_GUIDANCE,
new String[] {app.getString(R.string.voice_stream_music), app.getString(R.string.voice_stream_notification),
app.getString(R.string.voice_stream_voice_call)},
new Integer[] {AudioManager.STREAM_MUSIC, AudioManager.STREAM_NOTIFICATION, AudioManager.STREAM_VOICE_CALL},
R.string.choose_audio_stream, R.string.choose_audio_stream_descr);
cat.addPreference(lp);
PreferenceScreen appearance = (PreferenceScreen) screen.findPreference("appearance_settings");
cat = new PreferenceCategory(app);
cat.setTitle(R.string.extra_settings);
appearance.addPreference(cat);
cat.addPreference(activity.createCheckBoxPreference(settings.TRANSPARENT_MAP_THEME,
R.string.use_transparent_map_theme, R.string.use_transparent_map_theme_descr));
cat.addPreference(activity.createCheckBoxPreference(settings.SHOW_RULER,
R.string.show_ruler_level, R.string.show_ruler_level_descr));
cat.addPreference(activity.createCheckBoxPreference(settings.FLUORESCENT_OVERLAYS,
R.string.use_fluorescent_overlays, R.string.use_fluorescent_overlays_descr));
cat.addPreference(activity.createListPreference(settings.POSITION_ON_MAP,
new String[] { activity.getString(R.string.position_on_map_center), activity.getString(R.string.position_on_map_bottom) },
new Integer[] { OsmandSettings.CENTER_CONSTANT, OsmandSettings.BOTTOM_CONSTANT }, R.string.position_on_map,
R.string.position_on_map_descr));
PreferenceCategory vectorSettings = new PreferenceCategory(app);
vectorSettings.setTitle(R.string.pref_vector_rendering);
vectorSettings.setKey("custom_vector_rendering");
appearance.addPreference(vectorSettings);
}
}

View file

@ -0,0 +1,140 @@
package net.osmand.plus.monitoring;
import net.osmand.plus.ContextMenuAdapter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.ProgressDialogImplementation;
import net.osmand.plus.R;
import net.osmand.plus.ContextMenuAdapter.OnContextMenuClick;
import net.osmand.plus.activities.ApplicationMode;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.SavingTrackHelper;
import net.osmand.plus.activities.SettingsActivity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;
public class OsmandMonitoringPlugin extends OsmandPlugin {
private static final String ID = "osmand.monitoring";
private OsmandSettings settings;
private OsmandApplication app;
public OsmandMonitoringPlugin(OsmandApplication app) {
this.app = app;
}
@Override
public boolean init(OsmandApplication app) {
settings = app.getSettings();
settings.SAVE_TRACK_TO_GPX.setModeDefaultValue(ApplicationMode.CAR, true);
settings.SAVE_TRACK_TO_GPX.setModeDefaultValue(ApplicationMode.BICYCLE, true);
settings.SAVE_TRACK_TO_GPX.setModeDefaultValue(ApplicationMode.PEDESTRIAN, true);
return true;
}
@Override
public String getId() {
return ID;
}
@Override
public String getDescription() {
return app.getString(R.string.osmand_monitoring_description);
}
@Override
public String getName() {
return app.getString(R.string.osmand_monitoring_name);
}
@Override
public void registerLayers(MapActivity activity) {
}
@Override
public void registerMapContextMenuActions(final MapActivity mapActivity, final double latitude, final double longitude, ContextMenuAdapter adapter,
Object selectedObj) {
OnContextMenuClick listener = new OnContextMenuClick() {
@Override
public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
if (resId == R.string.context_menu_item_add_waypoint) {
mapActivity.getMapActions().addWaypoint(latitude, longitude);
}
}
};
adapter.registerItem(R.string.context_menu_item_add_waypoint, 0, listener, -1);
}
@Override
public void settingsActivityCreate(final SettingsActivity activity, PreferenceScreen screen) {
PreferenceScreen grp = screen.getPreferenceManager().createPreferenceScreen(activity);
grp.setTitle(R.string.monitor_preferences);
grp.setSummary(R.string.monitor_preferences_descr);
grp.setKey("monitor_settings");
((PreferenceCategory) screen.findPreference("profile_dep_cat")).addPreference(grp);
PreferenceCategory cat = new PreferenceCategory(activity);
cat.setTitle(R.string.save_track_to_gpx);
grp.addPreference(cat);
cat.addPreference(activity.createCheckBoxPreference(settings.SAVE_TRACK_TO_GPX, R.string.save_track_to_gpx,
R.string.save_track_to_gpx_descrp));
cat.addPreference(activity.createTimeListPreference(settings.SAVE_TRACK_INTERVAL, new int[] { 1, 2, 3, 5, 10, 15, 20, 30 },
new int[] { 1, 2, 3, 5 }, 1, R.string.save_track_interval, R.string.save_track_interval_descr));
Preference pref = new Preference(activity);
pref.setTitle(R.string.save_current_track);
pref.setSummary(R.string.save_current_track_descr);
pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
SavingTrackHelper helper = new SavingTrackHelper(activity);
if (helper.hasDataToSave()) {
saveCurrentTracks(activity);
} else {
helper.close();
}
return true;
}
});
cat.addPreference(pref);
cat = new PreferenceCategory(activity);
cat.setTitle(R.string.live_monitoring);
grp.addPreference(cat);
cat.addPreference(activity.createCheckBoxPreference(settings.LIVE_MONITORING, R.string.live_monitoring,
R.string.live_monitoring_descr));
cat.addPreference(activity.createEditTextPreference(settings.LIVE_MONITORING_URL, R.string.live_monitoring_url,
R.string.live_monitoring_url_descr));
cat.addPreference(activity.createTimeListPreference(settings.LIVE_MONITORING_INTERVAL, new int[] { 1, 2, 3, 5, 10, 15, 20, 30 },
new int[] { 1, 2, 3, 5 }, 1, R.string.live_monitoring_interval, R.string.live_monitoring_interval_descr));
}
private void saveCurrentTracks(final SettingsActivity activity) {
activity.progressDlg = ProgressDialog.show(activity, activity.getString(R.string.saving_gpx_tracks), activity.getString(R.string.saving_gpx_tracks), true);
final ProgressDialogImplementation impl = new ProgressDialogImplementation(activity.progressDlg);
impl.setRunnable("SavingGPX", new Runnable() { //$NON-NLS-1$
@Override
public void run() {
try {
SavingTrackHelper helper = new SavingTrackHelper(activity);
helper.saveDataToGpx();
helper.close();
} finally {
if (activity.progressDlg != null) {
activity.progressDlg.dismiss();
activity.progressDlg = null;
}
}
}
});
impl.run();
}
}

View file

@ -1,4 +1,5 @@
package net.osmand; package net.osmand.plus.osmedit;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View file

@ -7,9 +7,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import net.osmand.OpenstreetmapLocalUtil;
import net.osmand.OpenstreetmapRemoteUtil;
import net.osmand.OpenstreetmapUtil;
import net.osmand.OsmAndFormatter; import net.osmand.OsmAndFormatter;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.data.Amenity; import net.osmand.data.Amenity;

View file

@ -1,4 +1,4 @@
package net.osmand.plus.activities; package net.osmand.plus.osmedit;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.ArrayList; import java.util.ArrayList;
@ -7,18 +7,15 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import net.osmand.LogUtil; import net.osmand.LogUtil;
import net.osmand.OpenstreetmapPoint;
import net.osmand.OpenstreetmapRemoteUtil;
import net.osmand.OpenstreetmapUtil;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.osm.EntityInfo; import net.osmand.osm.EntityInfo;
import net.osmand.osm.Node; import net.osmand.osm.Node;
import net.osmand.plus.AmenityIndexRepositoryOdb; import net.osmand.plus.AmenityIndexRepositoryOdb;
import net.osmand.plus.OpenstreetmapsDbHelper;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.ProgressDialogImplementation; import net.osmand.plus.ProgressDialogImplementation;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.OsmandExpandableListActivity;
import android.app.Dialog; import android.app.Dialog;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.DialogInterface; import android.content.DialogInterface;
@ -199,7 +196,7 @@ public class LocalOpenstreetmapActivity extends OsmandExpandableListActivity {
} }
} }
return new Integer(uploaded); return Integer.valueOf(uploaded);
} }
@Override @Override

View file

@ -1,7 +1,9 @@
package net.osmand; package net.osmand.plus.osmedit;
import java.util.Map; import java.util.Map;
import net.osmand.LogUtil;
import net.osmand.data.Amenity; import net.osmand.data.Amenity;
import net.osmand.data.AmenityType; import net.osmand.data.AmenityType;
import net.osmand.osm.EntityInfo; import net.osmand.osm.EntityInfo;
@ -9,7 +11,6 @@ import net.osmand.osm.MapRenderingTypes;
import net.osmand.osm.MapUtils; import net.osmand.osm.MapUtils;
import net.osmand.osm.Node; import net.osmand.osm.Node;
import net.osmand.osm.OSMSettings.OSMTagKey; import net.osmand.osm.OSMSettings.OSMTagKey;
import net.osmand.plus.OpenstreetmapsDbHelper;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;

View file

@ -1,4 +1,4 @@
package net.osmand; package net.osmand.plus.osmedit;
import java.io.Serializable; import java.io.Serializable;

View file

@ -1,4 +1,4 @@
package net.osmand; package net.osmand.plus.osmedit;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.BufferedWriter; import java.io.BufferedWriter;
@ -18,6 +18,10 @@ import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import net.osmand.Algoritms;
import net.osmand.Base64;
import net.osmand.LogUtil;
import net.osmand.Version;
import net.osmand.access.AccessibleToast; import net.osmand.access.AccessibleToast;
import net.osmand.data.Amenity; import net.osmand.data.Amenity;
import net.osmand.osm.Entity; import net.osmand.osm.Entity;

View file

@ -1,4 +1,4 @@
package net.osmand; package net.osmand.plus.osmedit;
import net.osmand.data.Amenity; import net.osmand.data.Amenity;
import net.osmand.osm.EntityInfo; import net.osmand.osm.EntityInfo;

View file

@ -1,11 +1,9 @@
package net.osmand.plus; package net.osmand.plus.osmedit;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import net.osmand.OpenstreetmapPoint;
import net.osmand.OpenstreetmapRemoteUtil;
import net.osmand.osm.Node; import net.osmand.osm.Node;
import net.osmand.osm.OSMSettings.OSMTagKey; import net.osmand.osm.OSMSettings.OSMTagKey;
import android.content.Context; import android.content.Context;

View file

@ -457,7 +457,7 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider
OnContextMenuClick listener = new OnContextMenuClick() { OnContextMenuClick listener = new OnContextMenuClick() {
@Override @Override
public void onContextMenuClick(int itemId, int pos, boolean isChecked) { public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
if (itemId == R.string.osb_comment_menu_item) { if (itemId == R.string.osb_comment_menu_item) {
commentBug(bug); commentBug(bug);
} else if (itemId == R.string.osb_close_menu_item) { } else if (itemId == R.string.osb_close_menu_item) {

View file

@ -1,5 +1,14 @@
package net.osmand.plus.osmedit; package net.osmand.plus.osmedit;
import android.content.DialogInterface;
import android.content.Intent;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;
import android.text.InputType;
import net.osmand.data.Amenity; import net.osmand.data.Amenity;
import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuAdapter;
import net.osmand.plus.ContextMenuAdapter.OnContextMenuClick; import net.osmand.plus.ContextMenuAdapter.OnContextMenuClick;
@ -8,6 +17,7 @@ import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.SettingsActivity;
import net.osmand.plus.views.OsmandMapTileView; import net.osmand.plus.views.OsmandMapTileView;
public class OsmEditingPlugin extends OsmandPlugin { public class OsmEditingPlugin extends OsmandPlugin {
@ -34,7 +44,7 @@ public class OsmEditingPlugin extends OsmandPlugin {
private EditingPOIActivity poiActions; private EditingPOIActivity poiActions;
@Override @Override
public void updateLayers(OsmandMapTileView mapView){ public void updateLayers(OsmandMapTileView mapView, MapActivity activity){
if(mapView.getLayers().contains(osmBugsLayer) != settings.SHOW_OSM_BUGS.get()){ if(mapView.getLayers().contains(osmBugsLayer) != settings.SHOW_OSM_BUGS.get()){
if(settings.SHOW_OSM_BUGS.get()){ if(settings.SHOW_OSM_BUGS.get()){
mapView.addLayer(osmBugsLayer, 2); mapView.addLayer(osmBugsLayer, 2);
@ -54,7 +64,37 @@ public class OsmEditingPlugin extends OsmandPlugin {
poiActions = new EditingPOIActivity(activity); poiActions = new EditingPOIActivity(activity);
activity.addDialogProvider(poiActions); activity.addDialogProvider(poiActions);
activity.addDialogProvider(osmBugsLayer); activity.addDialogProvider(osmBugsLayer);
}
@Override
public void settingsActivityCreate(final SettingsActivity activity, PreferenceScreen screen) {
PreferenceScreen general = (PreferenceScreen) screen.findPreference(SettingsActivity.SCREEN_ID_GENERAL_SETTINGS);
PreferenceCategory cat = new PreferenceCategory(app);
cat.setTitle(R.string.osm_settings);
general.addPreference(cat);
EditTextPreference userName = activity.createEditTextPreference(settings.USER_NAME, R.string.user_name, R.string.user_name_descr);
cat.addPreference(userName);
EditTextPreference pwd = activity.createEditTextPreference(settings.USER_PASSWORD, R.string.user_password, R.string.user_password_descr);
pwd.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
cat.addPreference(pwd);
CheckBoxPreference poiEdit = activity.createCheckBoxPreference(settings.OFFLINE_POI_EDITION,
R.string.offline_poi_edition, R.string.offline_poi_edition_descr);
cat.addPreference(poiEdit);
Preference pref = new Preference(app);
pref.setTitle(R.string.local_openstreetmap_settings);
pref.setSummary(R.string.local_openstreetmap_settings_descr);
pref.setKey("local_openstreetmap_points");
pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
activity.startActivity(new Intent(activity, LocalOpenstreetmapActivity.class));
return true;
}
});
cat.addPreference(pref);
} }
public EditingPOIActivity getPoiActions() { public EditingPOIActivity getPoiActions() {
@ -69,7 +109,7 @@ public class OsmEditingPlugin extends OsmandPlugin {
OnContextMenuClick alist = new OnContextMenuClick() { OnContextMenuClick alist = new OnContextMenuClick() {
@Override @Override
public void onContextMenuClick(int resId, int pos, boolean isChecked) { public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
if (resId == R.string.poi_context_menu_delete) { if (resId == R.string.poi_context_menu_delete) {
getPoiActions().showDeleteDialog(a); getPoiActions().showDeleteDialog(a);
} else if (resId == R.string.poi_context_menu_modify) { } else if (resId == R.string.poi_context_menu_modify) {
@ -83,7 +123,7 @@ public class OsmEditingPlugin extends OsmandPlugin {
OnContextMenuClick listener = new OnContextMenuClick() { OnContextMenuClick listener = new OnContextMenuClick() {
@Override @Override
public void onContextMenuClick(int resId, int pos, boolean isChecked) { public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
if (resId == R.string.context_menu_item_create_poi) { if (resId == R.string.context_menu_item_create_poi) {
poiActions.showCreateDialog(latitude, longitude); poiActions.showCreateDialog(latitude, longitude);
} else if (resId == R.string.context_menu_item_open_bug) { } else if (resId == R.string.context_menu_item_open_bug) {
@ -96,12 +136,12 @@ public class OsmEditingPlugin extends OsmandPlugin {
} }
@Override @Override
public void registerLayerContextMenuActions(OsmandMapTileView mapView, ContextMenuAdapter adapter) { public void registerLayerContextMenuActions(OsmandMapTileView mapView, ContextMenuAdapter adapter, MapActivity mapActivity) {
adapter.registerSelectedItem(R.string.layer_osm_bugs, settings.SHOW_OSM_BUGS.get() ? 1 : 0, R.drawable.list_activities_osm_bugs, adapter.registerSelectedItem(R.string.layer_osm_bugs, settings.SHOW_OSM_BUGS.get() ? 1 : 0, R.drawable.list_activities_osm_bugs,
new OnContextMenuClick() { new OnContextMenuClick() {
@Override @Override
public void onContextMenuClick(int itemId, int pos, boolean isChecked) { public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
if (itemId == R.string.layer_osm_bugs) { if (itemId == R.string.layer_osm_bugs) {
settings.SHOW_OSM_BUGS.set(isChecked); settings.SHOW_OSM_BUGS.set(isChecked);
} }

View file

@ -0,0 +1,398 @@
package net.osmand.plus.rastermaps;
import java.util.ArrayList;
import java.util.Map;
import net.osmand.Algoritms;
import net.osmand.ResultMatcher;
import net.osmand.map.ITileSource;
import net.osmand.map.TileSourceManager.TileSourceTemplate;
import net.osmand.plus.ContextMenuAdapter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.ContextMenuAdapter.OnContextMenuClick;
import net.osmand.plus.OsmandSettings.CommonPreference;
import net.osmand.plus.activities.DownloadTilesDialog;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.MapActivityLayers;
import net.osmand.plus.activities.SettingsActivity;
import net.osmand.plus.views.BaseMapLayer;
import net.osmand.plus.views.MapTileLayer;
import net.osmand.plus.views.OsmandMapTileView;
import net.osmand.plus.views.SeekBarPreference;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceCategory;
import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
public class OsmandRasterMapsPlugin extends OsmandPlugin {
private static final String ID = "osmand.rastermaps";
private OsmandSettings settings;
private OsmandApplication app;
private ListPreference tileSourcePreference;
private ListPreference overlayPreference;
private ListPreference underlayPreference;
private MapTileLayer overlayLayer;
private MapTileLayer underlayLayer;
public OsmandRasterMapsPlugin(OsmandApplication app) {
this.app = app;
}
@Override
public boolean init(OsmandApplication app) {
settings = app.getSettings();
return true;
}
@Override
public String getId() {
return ID;
}
@Override
public String getDescription() {
return app.getString(R.string.osmand_rastermaps_plugin_description);
}
@Override
public String getName() {
return app.getString(R.string.osmand_rastermaps_plugin_name);
}
@Override
public void registerLayers(MapActivity activity) {
underlayLayer = new MapTileLayer(false);
// mapView.addLayer(underlayLayer, -0.5f);
overlayLayer = new MapTileLayer(false);
// mapView.addLayer(overlayLayer, 0.7f);
}
@Override
public void updateLayers(OsmandMapTileView mapView, MapActivity activity) {
updateMapLayers(mapView, null, activity.getMapLayers());
}
public void updateMapLayers(OsmandMapTileView mapView, CommonPreference<String> settingsToWarnAboutMap,
final MapActivityLayers layers) {
overlayLayer.setAlpha(settings.MAP_OVERLAY_TRANSPARENCY.get());
updateLayer(mapView, settings, overlayLayer, settings.MAP_OVERLAY, 0.7f, settings.MAP_OVERLAY == settingsToWarnAboutMap);
updateLayer(mapView, settings, underlayLayer, settings.MAP_UNDERLAY, -0.5f, settings.MAP_UNDERLAY == settingsToWarnAboutMap);
layers.updateMapSource(mapView, settingsToWarnAboutMap);
}
public void updateLayer(OsmandMapTileView mapView, OsmandSettings settings,
MapTileLayer layer, CommonPreference<String> preference, float layerOrder, boolean warnWhenSelected) {
ITileSource overlay = settings.getTileSourceByName(preference.get(), warnWhenSelected);
if(!Algoritms.objectEquals(overlay, layer.getMap())){
if(overlay == null){
mapView.removeLayer(layer);
} else {
mapView.addLayer(layer, layerOrder);
}
layer.setMap(overlay);
mapView.refreshMap();
}
}
public void selectMapOverlayLayer(final OsmandMapTileView mapView,
final CommonPreference<String> mapPref, final CommonPreference<Integer> transparencyPref,
final MapActivity activity,
final BaseMapLayer... transparencyToChange){
final OsmandSettings settings = app.getSettings();
final MapActivityLayers layers = activity.getMapLayers();
Map<String, String> entriesMap = settings.getTileSourceEntries();
final ArrayList<String> keys = new ArrayList<String>(entriesMap.keySet());
Builder builder = new AlertDialog.Builder(activity);
final String[] items = new String[entriesMap.size() + 1];
int i = 0;
for(String it : entriesMap.values()){
items[i++] = it;
}
items[i] = app.getString(R.string.install_more);
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == items.length - 1){
SettingsActivity.installMapLayers(activity, new ResultMatcher<TileSourceTemplate>() {
TileSourceTemplate template = null;
int count = 0;
@Override
public boolean publish(TileSourceTemplate object) {
if(object == null){
if(count == 1){
mapPref.set(template.getName());
layers.getMapControlsLayer().showAndHideTransparencyBar(transparencyPref, transparencyToChange);
updateMapLayers(mapView, mapPref, layers);
} else {
selectMapOverlayLayer(mapView, mapPref, transparencyPref, activity, transparencyToChange);
}
} else {
count ++;
template = object;
}
return false;
}
@Override
public boolean isCancelled() {
return false;
}
});
} else {
mapPref.set(keys.get(which));
layers.getMapControlsLayer().showAndHideTransparencyBar(transparencyPref, transparencyToChange);
updateMapLayers(mapView, mapPref, layers);
}
dialog.dismiss();
}
});
builder.show();
}
@Override
public void registerLayerContextMenuActions(final OsmandMapTileView mapView, ContextMenuAdapter adapter, final MapActivity mapActivity) {
final MapActivityLayers layers = mapActivity.getMapLayers();
OnContextMenuClick listener = new OnContextMenuClick() {
@Override
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
if (itemId == R.string.layer_map) {
dialog.dismiss();
layers.selectMapLayer(mapView);
} else if(itemId == R.string.layer_overlay){
if(overlayLayer.getMap() != null){
settings.MAP_OVERLAY.set(null);
updateMapLayers(mapView, null, layers);
} else {
dialog.dismiss();
selectMapOverlayLayer(mapView, settings.MAP_OVERLAY, settings.MAP_OVERLAY_TRANSPARENCY, mapActivity,
overlayLayer);
}
} else if(itemId == R.string.layer_underlay){
if(underlayLayer.getMap() != null){
settings.MAP_UNDERLAY.set(null);
updateMapLayers(mapView, null, layers);
} else {
dialog.dismiss();
selectMapOverlayLayer(mapView, settings.MAP_UNDERLAY,settings.MAP_TRANSPARENCY,
mapActivity, layers.getMapTileLayer(), layers.getMapVectorLayer());
}
}
}
};
adapter.registerSelectedItem(R.string.layer_map, -1, R.drawable.list_activities_map_src, listener, 0);
adapter.registerSelectedItem(R.string.layer_overlay, overlayLayer.getMap() != null ? 1 : 0,
R.drawable.list_activities_overlay_map, listener, -1);
adapter.registerSelectedItem(R.string.layer_underlay, underlayLayer.getMap() != null ? 1 : 0,
R.drawable.list_activities_underlay_map, listener, -1);
}
@Override
public void registerMapContextMenuActions(final MapActivity mapActivity, final double latitude, final double longitude, ContextMenuAdapter adapter,
Object selectedObj) {
final OsmandMapTileView mapView = mapActivity.getMapView();
if (mapView.getMainLayer() instanceof MapTileLayer) {
OnContextMenuClick listener = new OnContextMenuClick() {
@Override
public void onContextMenuClick(int resId, int pos, boolean isChecked, DialogInterface dialog) {
if (resId == R.string.context_menu_item_update_map) {
mapActivity.getMapActions().reloadTile(mapView.getZoom(), latitude, longitude);
} else if (resId == R.string.context_menu_item_download_map) {
DownloadTilesDialog dlg = new DownloadTilesDialog(mapActivity, (OsmandApplication) mapActivity.getApplication(), mapView);
dlg.openDialog();
}
}
};
adapter.registerItem(R.string.context_menu_item_update_map, 0, listener, -1);
adapter.registerItem(R.string.context_menu_item_download_map, 0, listener, -1);
}
}
@Override
public void settingsActivityUpdate(SettingsActivity activity) {
updateTileSourceSummary();
}
@Override
public void settingsActivityCreate(final SettingsActivity activity, PreferenceScreen screen) {
PreferenceGroup general = (PreferenceGroup) screen.findPreference("global_settings");
PreferenceGroup grp = screen.getPreferenceManager().createPreferenceScreen(activity);
grp.setSummary(R.string.online_map_settings_descr);
grp.setTitle(R.string.online_map_settings);
grp.setKey("map_settings");
grp.setOrder(0);
general.addPreference(grp);
OnPreferenceChangeListener listener = createPreferenceListener(activity);
PreferenceCategory cat = new PreferenceCategory(activity);
cat.setTitle(R.string.pref_raster_map);
grp.addPreference(cat);
CheckBoxPreference mapVectorData = activity.createCheckBoxPreference(settings.MAP_ONLINE_DATA,
R.string.map_online_data, R.string.map_online_data_descr);
// final OnPreferenceChangeListener parent = mapVectorData.getOnPreferenceChangeListener();
// MapRenderRepositories r = app.getResourceManager().getRenderer();
// if(r.isEmpty()){
// AccessibleToast.makeText(this, app.getString(R.string.no_vector_map_loaded), Toast.LENGTH_LONG).show();
// return false;
// }
cat.addPreference(mapVectorData);
tileSourcePreference = new ListPreference(activity);
tileSourcePreference.setSummary(R.string.map_tile_source_descr);
tileSourcePreference.setTitle(R.string.map_tile_source);
tileSourcePreference.setOnPreferenceChangeListener(listener);
cat.addPreference(tileSourcePreference);
cat.addPreference(activity.createCheckBoxPreference(settings.USE_INTERNET_TO_DOWNLOAD_TILES,
R.string.use_internet, R.string.use_internet_to_download_tile));
int startZoom = 1;
int endZoom = 18;
String[] entries = new String[endZoom - startZoom + 1];
Integer[] intValues = new Integer[endZoom - startZoom + 1];
for (int i = startZoom; i <= endZoom; i++) {
entries[i - startZoom] = i + ""; //$NON-NLS-1$
intValues[i - startZoom] = i ;
}
ListPreference lp = activity.createListPreference(settings.LEVEL_TO_SWITCH_VECTOR_RASTER,
entries, intValues, R.string.level_to_switch_vector_raster, R.string.level_to_switch_vector_raster_descr);
cat.addPreference(lp);
// try without, Issue 823:
// int startZoom = 12;
// int endZoom = 19;
// entries = new String[endZoom - startZoom + 1];
// Integer[] intValues = new Integer[endZoom - startZoom + 1];
// for (int i = startZoom; i <= endZoom; i++) {
// entries[i - startZoom] = i + ""; //$NON-NLS-1$
// intValues[i - startZoom] = i ;
// }
// registerListPreference(osmandSettings.MAX_LEVEL_TO_DOWNLOAD_TILE, screen, entries, intValues);
cat = new PreferenceCategory(activity);
cat.setTitle(R.string.pref_overlay);
grp.addPreference(cat);
overlayPreference = new ListPreference(activity);
overlayPreference.setSummary(R.string.map_overlay_descr);
overlayPreference.setTitle(R.string.map_overlay);
overlayPreference.setOnPreferenceChangeListener(listener);
cat.addPreference(overlayPreference);
underlayPreference = new ListPreference(activity);
underlayPreference.setSummary(R.string.map_underlay_descr);
underlayPreference.setTitle(R.string.map_underlay);
underlayPreference.setOnPreferenceChangeListener(listener);
cat.addPreference(underlayPreference);
SeekBarPreference sp = activity.createSeekBarPreference(settings.MAP_OVERLAY_TRANSPARENCY, R.string.overlay_transparency, R.string.overlay_transparency_descr,
R.string.modify_transparency, 0, 255);
cat.addPreference(sp);
sp = activity.createSeekBarPreference(settings.MAP_TRANSPARENCY, R.string.map_transparency, R.string.map_transparency_descr,
R.string.modify_transparency, 0, 255);
cat.addPreference(sp);
}
private OnPreferenceChangeListener createPreferenceListener(final SettingsActivity activity) {
return new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference == tileSourcePreference || preference == overlayPreference
|| preference == underlayPreference) {
if(SettingsActivity.MORE_VALUE.equals(newValue)){
SettingsActivity.installMapLayers(activity, new ResultMatcher<TileSourceTemplate>() {
@Override
public boolean isCancelled() { return false;}
@Override
public boolean publish(TileSourceTemplate object) {
if(object == null){
updateTileSourceSummary();
}
return true;
}
});
} else if(preference == tileSourcePreference){
settings.MAP_TILE_SOURCES.set((String) newValue);
updateTileSourceSummary();
} else {
if(((String) newValue).length() == 0){
newValue = null;
}
if(preference == underlayPreference){
settings.MAP_UNDERLAY.set(((String) newValue));
underlayPreference.setSummary(app.getString(R.string.map_underlay_descr) + " [" + settings.MAP_UNDERLAY.get() + "]");
} else if(preference == overlayPreference){
settings.MAP_OVERLAY.set(((String) newValue));
overlayPreference.setSummary(app.getString(R.string.map_overlay_descr) + " [" + settings.MAP_OVERLAY.get() + "]");
}
}
}
return true;
}
};
}
private void updateTileSourceSummary() {
if (tileSourcePreference != null) {
fillTileSourcesToPreference(tileSourcePreference, settings.MAP_TILE_SOURCES.get(), false);
fillTileSourcesToPreference(overlayPreference, settings.MAP_OVERLAY.get(), true);
fillTileSourcesToPreference(underlayPreference, settings.MAP_UNDERLAY.get(), true);
// String mapName = " " + settings.MAP_TILE_SOURCES.get(); //$NON-NLS-1$
// String summary = tileSourcePreference.getSummary().toString();
// if (summary.lastIndexOf(':') != -1) {
// summary = summary.substring(0, summary.lastIndexOf(':') + 1);
// }
// tileSourcePreference.setSummary(summary + mapName);
tileSourcePreference.setSummary(app.getString(R.string.map_tile_source_descr) + " [" + settings.MAP_TILE_SOURCES.get() + "]");
overlayPreference.setSummary(app.getString(R.string.map_overlay_descr) + " [" + settings.MAP_OVERLAY.get() + "]");
underlayPreference.setSummary(app.getString(R.string.map_underlay_descr) + " [" + settings.MAP_UNDERLAY.get() + "]");
}
}
private void fillTileSourcesToPreference(ListPreference tileSourcePreference, String value, boolean addNone) {
Map<String, String> entriesMap = settings.getTileSourceEntries();
int add = addNone ? 1 : 0;
String[] entries = new String[entriesMap.size() + 1 + add];
String[] values = new String[entriesMap.size() + 1 + add];
int ki = 0;
if (addNone) {
entries[ki] = app.getString(R.string.default_none);
values[ki] = "";
ki++;
}
if (value == null) {
value = "";
}
for (Map.Entry<String, String> es : entriesMap.entrySet()) {
entries[ki] = es.getValue();
values[ki] = es.getKey();
ki++;
}
entries[ki] = app.getString(R.string.install_more);
values[ki] = SettingsActivity.MORE_VALUE;
fill(tileSourcePreference, entries, values, value);
}
private void fill(ListPreference component, String[] list, String[] values, String selected) {
component.setEntries(list);
component.setEntryValues(values);
component.setValue(selected);
}
}

View file

@ -1,6 +1,5 @@
package net.osmand.plus.render; package net.osmand.plus.render;
import net.osmand.access.AccessibleToast;
import net.osmand.osm.MapUtils; import net.osmand.osm.MapUtils;
import net.osmand.plus.ResourceManager; import net.osmand.plus.ResourceManager;
import net.osmand.plus.RotatedTileBox; import net.osmand.plus.RotatedTileBox;
@ -85,19 +84,17 @@ public class MapVectorLayer extends BaseMapLayer {
@Override @Override
public void onDraw(Canvas canvas, RectF latLonBounds, RectF tilesRect, DrawSettings drawSettings) { public void onDraw(Canvas canvas, RectF latLonBounds, RectF tilesRect, DrawSettings drawSettings) {
if(!visible){ if (!visible) {
return; return;
} }
if(!isVectorDataVisible() && tileLayer != null){ if (!isVectorDataVisible() && tileLayer != null) {
tileLayer.drawTileMap(canvas, tilesRect); tileLayer.drawTileMap(canvas, tilesRect);
resourceManager.getRenderer().interruptLoadingMap(); resourceManager.getRenderer().interruptLoadingMap();
} else { } else {
if (!view.isZooming()) { if (!view.isZooming()) {
pixRect.set(0, 0, view.getWidth(), view.getHeight()); pixRect.set(0, 0, view.getWidth(), view.getHeight());
updateRotatedTileBox(); updateRotatedTileBox();
//TODO passing of nithMode and appMode could be probably something more general? These are if (resourceManager.updateRenderedMapNeeded(rotatedTileBox, drawSettings)) {
//renderer properties, so, we should check if renderer properties are changed somehow...
if (resourceManager.updateRenderedMapNeeded(rotatedTileBox,drawSettings)) {
// pixRect.set(-view.getWidth(), -view.getHeight() / 2, 2 * view.getWidth(), 3 * view.getHeight() / 2); // pixRect.set(-view.getWidth(), -view.getHeight() / 2, 2 * view.getWidth(), 3 * view.getHeight() / 2);
pixRect.set(-view.getWidth() / 3, -view.getHeight() / 4, 4 * view.getWidth() / 3, 5 * view.getHeight() / 4); pixRect.set(-view.getWidth() / 3, -view.getHeight() / 4, 4 * view.getWidth() / 3, 5 * view.getHeight() / 4);
updateRotatedTileBox(); updateRotatedTileBox();
@ -105,7 +102,7 @@ public class MapVectorLayer extends BaseMapLayer {
} }
} }
MapRenderRepositories renderer = resourceManager.getRenderer(); MapRenderRepositories renderer = resourceManager.getRenderer();
drawRenderedMap(canvas, renderer.getBitmap(), renderer.getBitmapLocation()); drawRenderedMap(canvas, renderer.getBitmap(), renderer.getBitmapLocation());
drawRenderedMap(canvas, renderer.getPrevBitmap(), renderer.getPrevBmpLocation()); drawRenderedMap(canvas, renderer.getPrevBitmap(), renderer.getPrevBmpLocation());
@ -113,7 +110,8 @@ public class MapVectorLayer extends BaseMapLayer {
} }
private void drawRenderedMap(Canvas canvas, Bitmap bmp, RotatedTileBox bmpLoc) { private boolean drawRenderedMap(Canvas canvas, Bitmap bmp, RotatedTileBox bmpLoc) {
boolean shown = false;
if (bmp != null && bmpLoc != null) { if (bmp != null && bmpLoc != null) {
float rot = bmpLoc.getRotate(); float rot = bmpLoc.getRotate();
float mult = (float) MapUtils.getPowZoom(view.getZoom() - bmpLoc.getZoom()); float mult = (float) MapUtils.getPowZoom(view.getZoom() - bmpLoc.getZoom());
@ -134,9 +132,11 @@ public class MapVectorLayer extends BaseMapLayer {
* view.getTileSize()); * view.getTileSize());
if(!bmp.isRecycled()){ if(!bmp.isRecycled()){
canvas.drawBitmap(bmp, null, destImage, paintImg); canvas.drawBitmap(bmp, null, destImage, paintImg);
shown = true;
} }
canvas.rotate(rot, view.getCenterPointX(), view.getCenterPointY()); canvas.rotate(rot, view.getCenterPointX(), view.getCenterPointY());
} }
return shown;
} }

View file

@ -21,6 +21,7 @@ import net.osmand.plus.render.RenderingIcons;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.AlertDialog.Builder; import android.app.AlertDialog.Builder;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Canvas; import android.graphics.Canvas;
@ -302,7 +303,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
final Amenity a = (Amenity) o; final Amenity a = (Amenity) o;
OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() { OnContextMenuClick listener = new ContextMenuAdapter.OnContextMenuClick() {
@Override @Override
public void onContextMenuClick(int itemId, int pos, boolean isChecked) { public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
if (itemId == R.string.poi_context_menu_call) { if (itemId == R.string.poi_context_menu_call) {
try { try {
Intent intent = new Intent(Intent.ACTION_VIEW); Intent intent = new Intent(Intent.ACTION_VIEW);

View file

@ -61,6 +61,25 @@ public class SeekBarPreference extends DialogPreference implements
maxValue = attrs.getAttributeIntValue(ANDROID_NS, MAX_VALUE_ID, 100); maxValue = attrs.getAttributeIntValue(ANDROID_NS, MAX_VALUE_ID, 100);
} }
/**
* Default constructor.
*
* @param context
* The application context.
* @param attrs
* The attribute set, containing the text, title, values, and
* range for the slider dialog.
*/
public SeekBarPreference(final Context context, int dialogTextId, int defValue, int maxValue) {
super(context, null);
this.context = context;
dialogText = context.getResources().getString(dialogTextId);
valueText = null;
this.defaultValue = defValue;
this.maxValue = maxValue;
}
public int getMax() { public int getMax() {
return maxValue; return maxValue;
@ -120,7 +139,7 @@ public class SeekBarPreference extends DialogPreference implements
if (shouldPersist()) { if (shouldPersist()) {
persistInt(valueToSave); persistInt(valueToSave);
} }
callChangeListener(new Integer(valueToSave)); callChangeListener(Integer.valueOf(valueToSave));
} else { } else {
this.valueToSave = value; this.valueToSave = value;
} }