Merge branch 'master' of https://github.com/osmandapp/Osmand
|
@ -9,7 +9,7 @@
|
||||||
<classpathentry kind="lib" path="libs/junidecode-0.1.jar"/>
|
<classpathentry kind="lib" path="libs/junidecode-0.1.jar"/>
|
||||||
<classpathentry kind="lib" path="libs/kxml2-2.3.0.jar"/>
|
<classpathentry kind="lib" path="libs/kxml2-2.3.0.jar"/>
|
||||||
<classpathentry kind="lib" path="libs/tuprolog.jar"/>
|
<classpathentry kind="lib" path="libs/tuprolog.jar"/>
|
||||||
<classpathentry kind="lib" path="libs/icu4j-56_1_patched.jar"/>
|
<classpathentry kind="lib" path="libs/icu4j-49_1_patched.jar"/>
|
||||||
<classpathentry kind="lib" path="libs/gnu-trove-osmand.jar"/>
|
<classpathentry kind="lib" path="libs/gnu-trove-osmand.jar"/>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
BIN
OsmAnd-java/libs/icu4j-49_1_patched.jar
Normal file
|
@ -1,5 +1,9 @@
|
||||||
package net.osmand.binary;
|
package net.osmand.binary;
|
||||||
|
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
import gnu.trove.list.array.TIntArrayList;
|
import gnu.trove.list.array.TIntArrayList;
|
||||||
import gnu.trove.map.hash.TIntObjectHashMap;
|
import gnu.trove.map.hash.TIntObjectHashMap;
|
||||||
import net.osmand.binary.BinaryMapIndexReader.MapIndex;
|
import net.osmand.binary.BinaryMapIndexReader.MapIndex;
|
||||||
|
@ -52,6 +56,15 @@ public class BinaryMapDataObject {
|
||||||
return objectNames;
|
return objectNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<Integer, String> getOrderedObjectNames() {
|
||||||
|
LinkedHashMap<Integer, String> lm = new LinkedHashMap<Integer, String> ();
|
||||||
|
for (int i = 0; i < namesOrder.size(); i++) {
|
||||||
|
int nm = namesOrder.get(i);
|
||||||
|
lm.put(nm, objectNames.get(nm));
|
||||||
|
}
|
||||||
|
return lm;
|
||||||
|
}
|
||||||
|
|
||||||
public void putObjectName(int type, String name){
|
public void putObjectName(int type, String name){
|
||||||
if(objectNames == null){
|
if(objectNames == null){
|
||||||
objectNames = new TIntObjectHashMap<String>();
|
objectNames = new TIntObjectHashMap<String>();
|
||||||
|
|
|
@ -151,7 +151,7 @@ public class GeocodingUtilities {
|
||||||
List<GeocodingResult> lst = new ArrayList<GeocodingUtilities.GeocodingResult>();
|
List<GeocodingResult> lst = new ArrayList<GeocodingUtilities.GeocodingResult>();
|
||||||
List<RouteSegmentPoint> listR = new ArrayList<BinaryRoutePlanner.RouteSegmentPoint>();
|
List<RouteSegmentPoint> listR = new ArrayList<BinaryRoutePlanner.RouteSegmentPoint>();
|
||||||
rp.findRouteSegment(lat, lon, ctx, listR);
|
rp.findRouteSegment(lat, lon, ctx, listR);
|
||||||
double dist = 0;
|
double distSquare = 0;
|
||||||
TLongHashSet set = new TLongHashSet();
|
TLongHashSet set = new TLongHashSet();
|
||||||
Set<String> streetNames = new HashSet<String>();
|
Set<String> streetNames = new HashSet<String>();
|
||||||
for(RouteSegmentPoint p : listR) {
|
for(RouteSegmentPoint p : listR) {
|
||||||
|
@ -161,8 +161,8 @@ public class GeocodingUtilities {
|
||||||
}
|
}
|
||||||
boolean emptyName = Algorithms.isEmpty(road.getName()) && Algorithms.isEmpty(road.getRef()) ;
|
boolean emptyName = Algorithms.isEmpty(road.getName()) && Algorithms.isEmpty(road.getRef()) ;
|
||||||
if(!emptyName) {
|
if(!emptyName) {
|
||||||
if(dist == 0 || dist > p.dist) {
|
if(distSquare == 0 || distSquare > p.distSquare) {
|
||||||
dist = p.dist;
|
distSquare = p.distSquare;
|
||||||
}
|
}
|
||||||
GeocodingResult sr = new GeocodingResult();
|
GeocodingResult sr = new GeocodingResult();
|
||||||
sr.searchPoint = new LatLon(lat, lon);
|
sr.searchPoint = new LatLon(lat, lon);
|
||||||
|
@ -175,11 +175,11 @@ public class GeocodingUtilities {
|
||||||
lst.add(sr);
|
lst.add(sr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(p.dist > STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS * STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS &&
|
if(p.distSquare > STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS * STOP_SEARCHING_STREET_WITH_MULTIPLIER_RADIUS &&
|
||||||
dist != 0 && p.dist > THRESHOLD_MULTIPLIER_SKIP_STREETS_AFTER * dist ) {
|
distSquare != 0 && p.distSquare > THRESHOLD_MULTIPLIER_SKIP_STREETS_AFTER * distSquare ) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(p.dist > STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS*STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS) {
|
if(p.distSquare > STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS*STOP_SEARCHING_STREET_WITHOUT_MULTIPLIER_RADIUS) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -835,12 +835,12 @@ public class BinaryRoutePlanner {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class RouteSegmentPoint extends RouteSegment {
|
public static class RouteSegmentPoint extends RouteSegment {
|
||||||
public RouteSegmentPoint(RouteDataObject road, int segmentStart, double dist) {
|
public RouteSegmentPoint(RouteDataObject road, int segmentStart, double distSquare) {
|
||||||
super(road, segmentStart);
|
super(road, segmentStart);
|
||||||
this.dist = dist;
|
this.distSquare = distSquare;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double dist;
|
public double distSquare;
|
||||||
public int preciseX;
|
public int preciseX;
|
||||||
public int preciseY;
|
public int preciseY;
|
||||||
public List<RouteSegmentPoint> others;
|
public List<RouteSegmentPoint> others;
|
||||||
|
|
|
@ -72,10 +72,10 @@ public class RoutePlannerFrontEnd {
|
||||||
for (int j = 1; j < r.getPointsLength(); j++) {
|
for (int j = 1; j < r.getPointsLength(); j++) {
|
||||||
QuadPoint pr = MapUtils.getProjectionPoint31(px, py, r.getPoint31XTile(j - 1),
|
QuadPoint pr = MapUtils.getProjectionPoint31(px, py, r.getPoint31XTile(j - 1),
|
||||||
r.getPoint31YTile(j - 1), r.getPoint31XTile(j ), r.getPoint31YTile(j ));
|
r.getPoint31YTile(j - 1), r.getPoint31XTile(j ), r.getPoint31YTile(j ));
|
||||||
double currentsDist = squareDist((int) pr.x, (int)pr.y, px, py);
|
double currentsDistSquare = squareDist((int) pr.x, (int)pr.y, px, py);
|
||||||
if (road == null || currentsDist < road.dist) {
|
if (road == null || currentsDistSquare < road.distSquare) {
|
||||||
RouteDataObject ro = new RouteDataObject(r);
|
RouteDataObject ro = new RouteDataObject(r);
|
||||||
road = new RouteSegmentPoint(ro, j, currentsDist);
|
road = new RouteSegmentPoint(ro, j, currentsDistSquare);
|
||||||
road.preciseX = (int) pr.x;
|
road.preciseX = (int) pr.x;
|
||||||
road.preciseY = (int) pr.y;
|
road.preciseY = (int) pr.y;
|
||||||
}
|
}
|
||||||
|
@ -89,7 +89,7 @@ public class RoutePlannerFrontEnd {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compare(RouteSegmentPoint o1, RouteSegmentPoint o2) {
|
public int compare(RouteSegmentPoint o1, RouteSegmentPoint o2) {
|
||||||
return Double.compare(o1.dist, o2.dist);
|
return Double.compare(o1.distSquare, o2.distSquare);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if(list.size() > 0) {
|
if(list.size() > 0) {
|
||||||
|
|
|
@ -1,479 +1,292 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest package="net.osmand.plus"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
android:installLocation="auto"
|
||||||
android:installLocation="auto"
|
android:versionName="@string/app_version"
|
||||||
android:versionCode="231"
|
android:versionCode="231"
|
||||||
android:versionName="@string/app_version">
|
package="net.osmand.plus">
|
||||||
|
|
||||||
<uses-sdk
|
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />
|
||||||
android:minSdkVersion="14"
|
|
||||||
android:targetSdkVersion="21"/>
|
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
|
||||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
|
||||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
|
|
||||||
<uses-permission android:name="android.permission.INTERNET"/>
|
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
|
||||||
<uses-permission android:name="android.permission.STORAGE"/>
|
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
|
||||||
<uses-permission android:name="android.permission.CAMERA"/>
|
|
||||||
<uses-permission android:name="android.permission.VIBRATE"/>
|
|
||||||
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
|
||||||
<uses-permission android:name="com.android.vending.BILLING"/>
|
|
||||||
|
|
||||||
<uses-feature
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||||
android:name="android.hardware.camera"
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
android:required="false"/>
|
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.camera.autofocus"
|
|
||||||
android:required="false"/>
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.microphone"
|
|
||||||
android:required="false"/>
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.wifi"
|
|
||||||
android:required="false"/>
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.location"
|
|
||||||
android:required="false"/>
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.location.network"
|
|
||||||
android:required="false"/>
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.location.gps"
|
|
||||||
android:required="false"/>
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.sensor.light"
|
|
||||||
android:required="false"/>
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.sensor.compass"
|
|
||||||
android:required="false"/>
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.sensor.accelerometer"
|
|
||||||
android:required="false"/>
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.sensor.gyroscope"
|
|
||||||
android:required="false"/>
|
|
||||||
<uses-feature
|
|
||||||
android:name="android.hardware.touchscreen"
|
|
||||||
android:required="false"/>
|
|
||||||
|
|
||||||
<supports-screens
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
android:anyDensity="true"
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
android:largeScreens="true"
|
<uses-permission android:name="android.permission.STORAGE" />
|
||||||
android:normalScreens="true"
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
android:resizeable="true"
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
android:smallScreens="true"
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
android:xlargeScreens="true"/>
|
<uses-permission android:name="android.permission.VIBRATE" />
|
||||||
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||||
|
<uses-permission android:name="com.android.vending.BILLING" />
|
||||||
|
|
||||||
<android:uses-permission android:name="android.permission.READ_PHONE_STATE"/>
|
|
||||||
<android:uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
|
||||||
|
|
||||||
<!-- android:theme="@style/OsmandLightDarkActionBarTheme" -->
|
|
||||||
<application
|
|
||||||
android:name=".OsmandApplication"
|
|
||||||
android:allowBackup="true"
|
|
||||||
android:backupAgent=".OsmandBackupAgent"
|
|
||||||
android:configChanges="locale"
|
|
||||||
android:icon="@drawable/icon"
|
|
||||||
android:label="@string/app_name"
|
|
||||||
android:largeHeap="true"
|
|
||||||
android:restoreAnyVersion="true"
|
|
||||||
android:theme="@style/OsmandDarkTheme">
|
|
||||||
<meta-data
|
|
||||||
android:name="com.google.android.backup.api_key"
|
|
||||||
android:value="AEdPqrEAAAAIqF3tNGT66etVBn_vgzpfAY1wmIzKV1Ss6Ku-2A"/>
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.android.support.multiwindow"
|
|
||||||
android:value="true"/>
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W"
|
|
||||||
android:resource="@dimen/app_defaultsize_w"
|
|
||||||
android:value=""/>
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H"
|
|
||||||
android:resource="@dimen/app_defaultsize_h"
|
|
||||||
android:value=""/>
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W"
|
|
||||||
android:resource="@dimen/app_minimumsize_w"
|
|
||||||
android:value=""/>
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H"
|
|
||||||
android:resource="@dimen/app_minimumsize_h"
|
|
||||||
android:value=""/>
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.minimode.icon.portrait.normal"
|
|
||||||
android:resource="@drawable/icon"
|
|
||||||
android:value=""/>
|
|
||||||
<meta-data
|
|
||||||
android:name="com.sec.minimode.icon.landscape.normal"
|
|
||||||
android:resource="@drawable/icon"
|
|
||||||
android:value=""/>
|
|
||||||
|
|
||||||
<activity android:name=".activities.HelpActivity"/>
|
<uses-feature android:name="android.hardware.camera" android:required="false" />
|
||||||
<activity android:name=".activities.ExitActivity"/>
|
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
|
||||||
|
<uses-feature android:name="android.hardware.microphone" android:required="false" />
|
||||||
|
<uses-feature android:name="android.hardware.wifi" android:required="false" />
|
||||||
|
<uses-feature android:name="android.hardware.location" android:required="false" />
|
||||||
|
<uses-feature android:name="android.hardware.location.network" android:required="false" />
|
||||||
|
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
|
||||||
|
<uses-feature android:name="android.hardware.sensor.light" android:required="false" />
|
||||||
|
<uses-feature android:name="android.hardware.sensor.compass" android:required="false" />
|
||||||
|
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="false" />
|
||||||
|
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="false" />
|
||||||
|
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
|
||||||
|
|
||||||
|
|
||||||
|
<supports-screens android:resizeable="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true"
|
||||||
|
android:xlargeScreens="true" android:anyDensity="true" />
|
||||||
|
|
||||||
|
|
||||||
|
<!-- android:theme="@style/OsmandLightDarkActionBarTheme" -->
|
||||||
|
<application android:allowBackup="true" android:backupAgent="net.osmand.plus.OsmandBackupAgent"
|
||||||
|
android:icon="@drawable/icon" android:label="@string/app_name"
|
||||||
|
android:name="net.osmand.plus.OsmandApplication" android:configChanges="locale"
|
||||||
|
android:theme="@style/OsmandDarkTheme" android:restoreAnyVersion="true" android:largeHeap="true">
|
||||||
|
|
||||||
|
<meta-data android:name="com.google.android.backup.api_key" android:value="AEdPqrEAAAAIqF3tNGT66etVBn_vgzpfAY1wmIzKV1Ss6Ku-2A" />
|
||||||
|
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />
|
||||||
|
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W" android:resource="@dimen/app_defaultsize_w" android:value="" />
|
||||||
|
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H" android:resource="@dimen/app_defaultsize_h" android:value="" />
|
||||||
|
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W" android:resource="@dimen/app_minimumsize_w" android:value="" />
|
||||||
|
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H" android:resource="@dimen/app_minimumsize_h" android:value="" />
|
||||||
|
<meta-data android:name="com.sec.minimode.icon.portrait.normal" android:resource="@drawable/icon" android:value="" />
|
||||||
|
<meta-data android:name="com.sec.minimode.icon.landscape.normal" android:resource="@drawable/icon" android:value="" />
|
||||||
|
<activity android:name="net.osmand.plus.activities.HelpActivity" />
|
||||||
|
<activity android:name="net.osmand.plus.activities.ExitActivity" />
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name="android.support.v4.content.FileProvider"
|
android:name="android.support.v4.content.FileProvider"
|
||||||
android:authorities="net.osmand.fileprovider"
|
android:authorities="net.osmand.fileprovider"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:grantUriPermissions="true">
|
android:grantUriPermissions="true" >
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
android:resource="@xml/paths"/>
|
android:resource="@xml/paths" />
|
||||||
</provider>
|
</provider>
|
||||||
|
|
||||||
<activity
|
<activity android:name="net.osmand.plus.activities.MapActivity" android:label="@string/app_name"
|
||||||
android:name=".activities.MapActivity"
|
android:screenOrientation="unspecified" android:launchMode="singleTop">
|
||||||
android:label="@string/app_name"
|
<intent-filter>
|
||||||
android:launchMode="singleTop"
|
<action android:name="android.intent.action.VIEW" />
|
||||||
android:screenOrientation="unspecified">
|
<action android:name="android.intent.action.SEND" />
|
||||||
<intent-filter>
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
<data android:scheme="content" android:host="*" android:mimeType="binary/octet-stream" />
|
||||||
<action android:name="android.intent.action.SEND"/>
|
<data android:scheme="content" android:host="*" android:mimeType="application/octet-stream" />
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
<data
|
<intent-filter>
|
||||||
android:host="*"
|
<data android:scheme="http" />
|
||||||
android:mimeType="binary/octet-stream"
|
<data android:host="osmand.net" />
|
||||||
android:scheme="content"/>
|
<data android:pathPrefix="/go" />
|
||||||
<data
|
<action android:name="android.intent.action.VIEW" />
|
||||||
android:host="*"
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
android:mimeType="application/octet-stream"
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
android:scheme="content"/>
|
<category android:name="android.intent.category.APP_MAPS" />
|
||||||
</intent-filter>
|
<category android:name="android.intent.category.CAR_MODE" />
|
||||||
<intent-filter>
|
<category android:name="android.intent.category.CAR_DOCK" />
|
||||||
<action android:name="android.intent.action.MAIN"/>
|
<category android:name="android.intent.category.DESK_DOCK" />
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
<intent-filter>
|
||||||
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER"/>
|
<data android:scheme="https" />
|
||||||
</intent-filter>
|
<data android:host="osmand.net" />
|
||||||
<intent-filter>
|
<data android:pathPrefix="/go" />
|
||||||
<data android:scheme="http"/>
|
<action android:name="android.intent.action.VIEW" />
|
||||||
<data android:host="osmand.net"/>
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<data android:pathPrefix="/go"/>
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
<category android:name="android.intent.category.APP_MAPS" />
|
||||||
|
<category android:name="android.intent.category.CAR_MODE" />
|
||||||
|
<category android:name="android.intent.category.CAR_DOCK" />
|
||||||
|
<category android:name="android.intent.category.DESK_DOCK" />
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
<!-- android matches non-greedy : http://stackoverflow.com/questions/3400072/pathpattern-to-match-file-extension-does-not-work-if-a-period-exists-elsewhere-i-->
|
||||||
<category android:name="android.intent.category.BROWSABLE"/>
|
<!-- mimeType&host are both needed or you will either have unwanted matching or no match when needed -->
|
||||||
<category android:name="android.intent.category.APP_MAPS"/>
|
<intent-filter>
|
||||||
<category android:name="android.intent.category.CAR_MODE"/>
|
<action android:name="android.intent.action.VIEW" />
|
||||||
<category android:name="android.intent.category.CAR_DOCK"/>
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.DESK_DOCK"/>
|
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\.gpx" />
|
||||||
</intent-filter>
|
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\.gpx" />
|
||||||
<intent-filter>
|
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\.gpx" />
|
||||||
<data android:scheme="https"/>
|
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\..*\\.gpx" />
|
||||||
<data android:host="osmand.net"/>
|
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\..*\\..*\\.gpx" />
|
||||||
<data android:pathPrefix="/go"/>
|
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\.kml" />
|
||||||
|
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\.kml" />
|
||||||
|
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\.kml" />
|
||||||
|
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\..*\\.kml" />
|
||||||
|
<data android:scheme="file" android:host="*" android:mimeType="*/*" android:pathPattern=".*\\..*\\..*\\..*\\..*\\.kml" />
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
<!-- google navigation intent -->
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<data android:scheme="google.navigation" />
|
||||||
|
<data android:scheme="osmand.navigation" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
<receiver android:name="net.osmand.plus.audionotes.MediaRemoteControlReceiver">
|
||||||
<category android:name="android.intent.category.BROWSABLE"/>
|
<intent-filter>
|
||||||
<category android:name="android.intent.category.APP_MAPS"/>
|
<action android:name="android.intent.action.CAMERA_BUTTON" />
|
||||||
<category android:name="android.intent.category.CAR_MODE"/>
|
<action android:name="android.intent.action.MEDIA_BUTTON" />
|
||||||
<category android:name="android.intent.category.CAR_DOCK"/>
|
</intent-filter>
|
||||||
<category android:name="android.intent.category.DESK_DOCK"/>
|
</receiver>
|
||||||
</intent-filter>
|
|
||||||
|
|
||||||
<!-- android matches non-greedy : http://stackoverflow.com/questions/3400072/pathpattern-to-match-file-extension-does-not-work-if-a-period-exists-elsewhere-i -->
|
<activity android:name="net.osmand.plus.activities.SettingsActivity" android:label="@string/shared_string_settings" android:configChanges="keyboardHidden|orientation" />
|
||||||
<!-- mimeType&host are both needed or you will either have unwanted matching or no match when needed -->
|
<activity android:name="net.osmand.plus.activities.SettingsGeneralActivity" android:configChanges="keyboardHidden|orientation" />
|
||||||
<intent-filter>
|
<activity android:name="net.osmand.plus.activities.SettingsNavigationActivity" android:configChanges="keyboardHidden|orientation" />
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
<activity android:name="net.osmand.plus.monitoring.SettingsMonitoringActivity" android:configChanges="keyboardHidden|orientation" />
|
||||||
|
<activity android:name="net.osmand.plus.rastermaps.SettingsRasterMapsActivity" android:configChanges="keyboardHidden|orientation" />
|
||||||
|
<activity android:name="net.osmand.plus.routepointsnavigation.RoutePointsActivity" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
<activity android:name="net.osmand.plus.osmedit.SettingsOsmEditingActivity" android:configChanges="keyboardHidden|orientation" />
|
||||||
|
<activity android:name="net.osmand.plus.development.SettingsDevelopmentActivity" android:configChanges="keyboardHidden|orientation" />
|
||||||
|
<activity android:name="net.osmand.plus.audionotes.SettingsAudioVideoActivity" android:configChanges="keyboardHidden|orientation" />
|
||||||
|
<activity android:name="net.osmand.access.SettingsAccessibilityActivity" android:configChanges="keyboardHidden|orientation" />
|
||||||
|
|
||||||
<data
|
<activity android:name="net.osmand.plus.activities.search.SearchActivity" android:label="@string/search_activity" />
|
||||||
android:host="*"
|
<activity android:name="net.osmand.plus.activities.ShowRouteInfoActivity" android:label="@string/show_route" />
|
||||||
android:mimeType="*/*"
|
<activity android:name="net.osmand.plus.activities.FavoritesListActivity" android:label="@string/favourites_list_activity" />
|
||||||
android:pathPattern=".*\\.gpx"
|
<activity android:name=".myplaces.FavoritesActivity" android:windowSoftInputMode="adjustPan" />
|
||||||
android:scheme="file"/>
|
<activity android:name="net.osmand.plus.activities.TrackActivity"/>
|
||||||
<data
|
<activity android:name="net.osmand.plus.activities.PluginsActivity" />
|
||||||
android:host="*"
|
<activity android:name="net.osmand.plus.activities.PluginActivity" />
|
||||||
android:mimeType="*/*"
|
<activity android:name="net.osmand.plus.activities.ContributionVersionActivity" android:configChanges="keyboardHidden|orientation" android:label="@string/contribution_activity" />
|
||||||
android:pathPattern=".*\\..*\\.gpx"
|
|
||||||
android:scheme="file"/>
|
|
||||||
<data
|
|
||||||
android:host="*"
|
|
||||||
android:mimeType="*/*"
|
|
||||||
android:pathPattern=".*\\..*\\..*\\.gpx"
|
|
||||||
android:scheme="file"/>
|
|
||||||
<data
|
|
||||||
android:host="*"
|
|
||||||
android:mimeType="*/*"
|
|
||||||
android:pathPattern=".*\\..*\\..*\\..*\\.gpx"
|
|
||||||
android:scheme="file"/>
|
|
||||||
<data
|
|
||||||
android:host="*"
|
|
||||||
android:mimeType="*/*"
|
|
||||||
android:pathPattern=".*\\..*\\..*\\..*\\..*\\.gpx"
|
|
||||||
android:scheme="file"/>
|
|
||||||
<data
|
|
||||||
android:host="*"
|
|
||||||
android:mimeType="*/*"
|
|
||||||
android:pathPattern=".*\\.kml"
|
|
||||||
android:scheme="file"/>
|
|
||||||
<data
|
|
||||||
android:host="*"
|
|
||||||
android:mimeType="*/*"
|
|
||||||
android:pathPattern=".*\\..*\\.kml"
|
|
||||||
android:scheme="file"/>
|
|
||||||
<data
|
|
||||||
android:host="*"
|
|
||||||
android:mimeType="*/*"
|
|
||||||
android:pathPattern=".*\\..*\\..*\\.kml"
|
|
||||||
android:scheme="file"/>
|
|
||||||
<data
|
|
||||||
android:host="*"
|
|
||||||
android:mimeType="*/*"
|
|
||||||
android:pathPattern=".*\\..*\\..*\\..*\\.kml"
|
|
||||||
android:scheme="file"/>
|
|
||||||
<data
|
|
||||||
android:host="*"
|
|
||||||
android:mimeType="*/*"
|
|
||||||
android:pathPattern=".*\\..*\\..*\\..*\\..*\\.kml"
|
|
||||||
android:scheme="file"/>
|
|
||||||
</intent-filter>
|
|
||||||
|
|
||||||
<!-- google navigation intent -->
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
<activity android:name="net.osmand.plus.osmo.SettingsOsMoActivity" android:configChanges="keyboardHidden|orientation" />
|
||||||
|
<activity android:name="net.osmand.plus.osmo.OsMoGroupsActivity">
|
||||||
|
<intent-filter>
|
||||||
|
<data android:scheme="http" android:host="z.osmo.mobi" />
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
|
||||||
<data android:scheme="google.navigation"/>
|
<activity android:name="net.osmand.plus.activities.search.SearchPOIActivity" android:label="@string/searchpoi_activity" />
|
||||||
<data android:scheme="osmand.navigation"/>
|
<activity android:name="net.osmand.plus.activities.search.SearchAddressActivity" android:label="@string/select_address_activity" />
|
||||||
</intent-filter>
|
<activity android:name="net.osmand.plus.activities.search.SearchCityByNameActivity" />
|
||||||
</activity>
|
<activity android:name="net.osmand.plus.activities.search.SearchRegionByNameActivity" />
|
||||||
|
<activity android:name="net.osmand.plus.activities.search.SearchStreetByNameActivity" />
|
||||||
|
<activity android:name="net.osmand.plus.activities.search.SearchStreet2ByNameActivity" />
|
||||||
|
<activity android:name="net.osmand.plus.activities.search.SearchBuildingByNameActivity" />
|
||||||
|
<activity android:name="net.osmand.plus.sherpafy.TourViewActivity" android:exported="true"
|
||||||
|
android:launchMode= "singleInstance" android:label="Sherpafy" />
|
||||||
|
<activity android:name="net.osmand.plus.activities.EditPOIFilterActivity" />
|
||||||
|
|
||||||
<receiver android:name=".audionotes.MediaRemoteControlReceiver">
|
<activity android:name="net.osmand.plus.activities.search.GeoIntentActivity" android:label="@string/app_name">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.CAMERA_BUTTON"/>
|
<data android:scheme="osmand.geo" />
|
||||||
<action android:name="android.intent.action.MEDIA_BUTTON"/>
|
<action android:name="android.intent.action.VIEW" />
|
||||||
</intent-filter>
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
</receiver>
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
<activity
|
<data android:scheme="geo" />
|
||||||
android:name=".activities.SettingsActivity"
|
<action android:name="android.intent.action.VIEW"/>
|
||||||
android:configChanges="keyboardHidden|orientation"
|
<category android:name="android.intent.category.DEFAULT"/>
|
||||||
android:label="@string/shared_string_settings"/>
|
<category android:name="android.intent.category.BROWSABLE"/>
|
||||||
<activity
|
</intent-filter>
|
||||||
android:name=".activities.SettingsGeneralActivity"
|
<intent-filter>
|
||||||
android:configChanges="keyboardHidden|orientation"/>
|
<data android:scheme="http" />
|
||||||
<activity
|
<data android:scheme="https" />
|
||||||
android:name=".activities.SettingsNavigationActivity"
|
<data android:host="maps.google.com" />
|
||||||
android:configChanges="keyboardHidden|orientation"/>
|
<data android:host="maps.yandex.ru" />
|
||||||
<activity
|
<data android:host="maps.yandex.com" />
|
||||||
android:name=".monitoring.SettingsMonitoringActivity"
|
<data android:host="www.openstreetmap.org" />
|
||||||
android:configChanges="keyboardHidden|orientation"/>
|
<data android:host="openstreetmap.org" />
|
||||||
<activity
|
<data android:host="osm.org" />
|
||||||
android:name=".rastermaps.SettingsRasterMapsActivity"
|
<data android:host="map.baidu.cn" />
|
||||||
android:configChanges="keyboardHidden|orientation"/>
|
<data android:host="map.baidu.com" />
|
||||||
<activity android:name=".routepointsnavigation.RoutePointsActivity"/>
|
<data android:host="wb.amap.com" />
|
||||||
<activity
|
<data android:host="www.amap.com" />
|
||||||
android:name=".osmedit.SettingsOsmEditingActivity"
|
<data android:host="here.com" />
|
||||||
android:configChanges="keyboardHidden|orientation"/>
|
<data android:host="www.here.com" />
|
||||||
<activity
|
<data android:host="share.here.com" />
|
||||||
android:name=".development.SettingsDevelopmentActivity"
|
<data android:host="map.wap.qq.com" />
|
||||||
android:configChanges="keyboardHidden|orientation"/>
|
<data android:host="map.qq.com" />
|
||||||
<activity
|
<data android:host="maps.apple.com" />
|
||||||
android:name=".audionotes.SettingsAudioVideoActivity"
|
<action android:name="android.intent.action.VIEW" />
|
||||||
android:configChanges="keyboardHidden|orientation"/>
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<activity
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
android:name="net.osmand.access.SettingsAccessibilityActivity"
|
</intent-filter>
|
||||||
android:configChanges="keyboardHidden|orientation"/>
|
<intent-filter>
|
||||||
<activity
|
<data android:scheme="http" android:host="www.google.com" android:pathPrefix="/maps" />
|
||||||
android:name=".activities.search.SearchActivity"
|
<data android:scheme="https" android:host="www.google.com" android:pathPrefix="/maps" />
|
||||||
android:label="@string/search_activity"/>
|
<action android:name="android.intent.action.VIEW" />
|
||||||
<activity
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
android:name=".activities.ShowRouteInfoActivity"
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
android:label="@string/show_route"/>
|
</intent-filter>
|
||||||
<activity
|
<intent-filter>
|
||||||
android:name=".activities.FavoritesListActivity"
|
<data android:scheme="http" android:host="openstreetmap.de" android:pathPrefix="/karte" />
|
||||||
android:label="@string/favourites_list_activity"/>
|
<data android:scheme="https" android:host="openstreetmap.de" android:pathPrefix="/karte" />
|
||||||
<activity
|
<action android:name="android.intent.action.VIEW" />
|
||||||
android:name=".myplaces.FavoritesActivity"
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
android:windowSoftInputMode="adjustPan"/>
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
<activity android:name=".activities.TrackActivity"/>
|
</intent-filter>
|
||||||
<activity android:name=".activities.PluginsActivity"/>
|
<intent-filter>
|
||||||
<activity android:name=".activities.PluginActivity"/>
|
<data android:scheme="http" android:host="download.osmand.net" android:pathPrefix="/go" />
|
||||||
<activity
|
<data android:scheme="http" android:host="download.osmand.net" android:pathPrefix="go" />
|
||||||
android:name=".activities.ContributionVersionActivity"
|
<action android:name="android.intent.action.VIEW" />
|
||||||
android:configChanges="keyboardHidden|orientation"
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
android:label="@string/contribution_activity"/>
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
<activity
|
<category android:name="android.intent.category.APP_MAPS" />
|
||||||
android:name=".osmo.SettingsOsMoActivity"
|
<category android:name="android.intent.category.CAR_MODE" />
|
||||||
android:configChanges="keyboardHidden|orientation"/>
|
<category android:name="android.intent.category.CAR_DOCK" />
|
||||||
<activity android:name=".osmo.OsMoGroupsActivity">
|
<category android:name="android.intent.category.DESK_DOCK" />
|
||||||
<intent-filter>
|
</intent-filter>
|
||||||
<data
|
<!-- requires read permission -->
|
||||||
android:host="z.osmo.mobi"
|
<!--
|
||||||
android:scheme="http"/>
|
|
||||||
|
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
|
||||||
<category android:name="android.intent.category.BROWSABLE"/>
|
|
||||||
</intent-filter>
|
|
||||||
</activity>
|
|
||||||
<activity
|
|
||||||
android:name=".activities.search.SearchPOIActivity"
|
|
||||||
android:label="@string/searchpoi_activity"/>
|
|
||||||
<activity
|
|
||||||
android:name=".activities.search.SearchAddressActivity"
|
|
||||||
android:label="@string/select_address_activity"/>
|
|
||||||
<activity android:name=".activities.search.SearchCityByNameActivity"/>
|
|
||||||
<activity android:name=".activities.search.SearchRegionByNameActivity"/>
|
|
||||||
<activity android:name=".activities.search.SearchStreetByNameActivity"/>
|
|
||||||
<activity android:name=".activities.search.SearchStreet2ByNameActivity"/>
|
|
||||||
<activity android:name=".activities.search.SearchBuildingByNameActivity"/>
|
|
||||||
<activity
|
|
||||||
android:name=".sherpafy.TourViewActivity"
|
|
||||||
android:exported="true"
|
|
||||||
android:label="Sherpafy"
|
|
||||||
android:launchMode="singleInstance"/>
|
|
||||||
<activity android:name=".activities.EditPOIFilterActivity"/>
|
|
||||||
<activity
|
|
||||||
android:name=".activities.search.GeoIntentActivity"
|
|
||||||
android:label="@string/app_name">
|
|
||||||
<intent-filter>
|
|
||||||
<data android:scheme="osmand.geo"/>
|
|
||||||
|
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
|
||||||
</intent-filter>
|
|
||||||
<intent-filter>
|
|
||||||
<data android:scheme="geo"/>
|
|
||||||
|
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
|
||||||
<category android:name="android.intent.category.BROWSABLE"/>
|
|
||||||
</intent-filter>
|
|
||||||
<intent-filter>
|
|
||||||
<data android:scheme="http"/>
|
|
||||||
<data android:scheme="https"/>
|
|
||||||
<data android:host="maps.google.com"/>
|
|
||||||
<data android:host="maps.yandex.ru"/>
|
|
||||||
<data android:host="maps.yandex.com"/>
|
|
||||||
<data android:host="www.openstreetmap.org"/>
|
|
||||||
<data android:host="openstreetmap.org"/>
|
|
||||||
<data android:host="osm.org"/>
|
|
||||||
<data android:host="map.baidu.cn"/>
|
|
||||||
<data android:host="map.baidu.com"/>
|
|
||||||
<data android:host="wb.amap.com"/>
|
|
||||||
<data android:host="www.amap.com"/>
|
|
||||||
<data android:host="here.com"/>
|
|
||||||
<data android:host="www.here.com"/>
|
|
||||||
<data android:host="share.here.com"/>
|
|
||||||
<data android:host="map.wap.qq.com"/>
|
|
||||||
<data android:host="map.qq.com"/>
|
|
||||||
<data android:host="maps.apple.com"/>
|
|
||||||
|
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
|
||||||
<category android:name="android.intent.category.BROWSABLE"/>
|
|
||||||
</intent-filter>
|
|
||||||
<intent-filter>
|
|
||||||
<data
|
|
||||||
android:host="www.google.com"
|
|
||||||
android:pathPrefix="/maps"
|
|
||||||
android:scheme="http"/>
|
|
||||||
<data
|
|
||||||
android:host="www.google.com"
|
|
||||||
android:pathPrefix="/maps"
|
|
||||||
android:scheme="https"/>
|
|
||||||
|
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
|
||||||
<category android:name="android.intent.category.BROWSABLE"/>
|
|
||||||
</intent-filter>
|
|
||||||
<intent-filter>
|
|
||||||
<data
|
|
||||||
android:host="openstreetmap.de"
|
|
||||||
android:pathPrefix="/karte"
|
|
||||||
android:scheme="http"/>
|
|
||||||
<data
|
|
||||||
android:host="openstreetmap.de"
|
|
||||||
android:pathPrefix="/karte"
|
|
||||||
android:scheme="https"/>
|
|
||||||
|
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
|
||||||
<category android:name="android.intent.category.BROWSABLE"/>
|
|
||||||
</intent-filter>
|
|
||||||
<intent-filter>
|
|
||||||
<data
|
|
||||||
android:host="download.osmand.net"
|
|
||||||
android:pathPrefix="/go"
|
|
||||||
android:scheme="http"/>
|
|
||||||
<data
|
|
||||||
android:host="download.osmand.net"
|
|
||||||
android:pathPrefix="go"
|
|
||||||
android:scheme="http"/>
|
|
||||||
|
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT"/>
|
|
||||||
<category android:name="android.intent.category.BROWSABLE"/>
|
|
||||||
<category android:name="android.intent.category.APP_MAPS"/>
|
|
||||||
<category android:name="android.intent.category.CAR_MODE"/>
|
|
||||||
<category android:name="android.intent.category.CAR_DOCK"/>
|
|
||||||
<category android:name="android.intent.category.DESK_DOCK"/>
|
|
||||||
</intent-filter>
|
|
||||||
<!-- requires read permission -->
|
|
||||||
<!--
|
|
||||||
<intent-filter android:label="OsmAnd">
|
<intent-filter android:label="OsmAnd">
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<data android:mimeType="vnd.android.cursor.item/postal-address_v2" />
|
<data android:mimeType="vnd.android.cursor.item/postal-address_v2" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
-->
|
-->
|
||||||
</activity>
|
</activity>
|
||||||
<activity android:name=".development.TestVoiceActivity"/>
|
|
||||||
<activity
|
|
||||||
android:name=".download.DownloadActivity"
|
|
||||||
android:label=""/>
|
|
||||||
|
|
||||||
<!-- keep android:process on a separate line !! -->
|
<activity android:name="net.osmand.plus.development.TestVoiceActivity" />
|
||||||
<service
|
<activity android:name="net.osmand.plus.download.DownloadActivity" android:label="" />
|
||||||
android:name=".NavigationService"
|
|
||||||
android:label="@string/process_navigation_service"
|
|
||||||
android:process="net.osmand.plus"
|
|
||||||
android:stopWithTask="false">
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="net.osmand.plus.NavigationService"/>
|
|
||||||
</intent-filter>
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<receiver android:name=".OnNavigationServiceAlarmReceiver"/>
|
<!-- keep android:process on a separate line !! -->
|
||||||
|
<service
|
||||||
|
android:process="net.osmand.plus"
|
||||||
|
android:label="@string/process_navigation_service"
|
||||||
|
android:name="net.osmand.plus.NavigationService"
|
||||||
|
android:stopWithTask="false">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="net.osmand.plus.NavigationService" />
|
||||||
|
</intent-filter>
|
||||||
|
</service>
|
||||||
|
|
||||||
<activity android:name=".activities.PrintDialogActivity"/>
|
<receiver android:name="net.osmand.plus.OnNavigationServiceAlarmReceiver" />
|
||||||
|
<activity android:name="net.osmand.plus.activities.PrintDialogActivity" />
|
||||||
|
|
||||||
<receiver
|
<receiver
|
||||||
android:name=".DeviceAdminRecv"
|
android:name="net.osmand.plus.DeviceAdminRecv"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:permission="android.permission.BIND_DEVICE_ADMIN">
|
android:permission="android.permission.BIND_DEVICE_ADMIN" >
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.app.device_admin"
|
android:name="android.app.device_admin"
|
||||||
android:resource="@xml/device_admin"/>
|
android:resource="@xml/device_admin" />
|
||||||
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
|
|
||||||
<action android:name="android.app.action.DEVICE_ADMIN_DISABLED"/>
|
|
||||||
</intent-filter>
|
|
||||||
</receiver>
|
|
||||||
|
|
||||||
<activity android:name=".liveupdates.LiveUpdatesActivity">
|
|
||||||
</activity>
|
|
||||||
</application>
|
|
||||||
|
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
|
||||||
|
<action android:name="android.app.action.DEVICE_ADMIN_DISABLED" />
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
|
</application>
|
||||||
</manifest>
|
</manifest>
|
BIN
OsmAnd/libs/icu4j-49_1_patched.jar
Normal file
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
OsmAnd/res/drawable-large-hdpi/map_bicycle_bearing_night.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.2 KiB |
BIN
OsmAnd/res/drawable-large-hdpi/map_bicycle_location_night.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
OsmAnd/res/drawable-large-hdpi/map_car_bearing_night.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 4.5 KiB |
BIN
OsmAnd/res/drawable-large-hdpi/map_car_location_night.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
OsmAnd/res/drawable-large-hdpi/map_default_location_night.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
OsmAnd/res/drawable-large-hdpi/map_pedestrian_bearing_night.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
OsmAnd/res/drawable-large-hdpi/map_pedestrian_location_night.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
OsmAnd/res/drawable-large-xhdpi/map_bicycle_bearing_night.png
Normal file
After Width: | Height: | Size: 7 KiB |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.7 KiB |
BIN
OsmAnd/res/drawable-large-xhdpi/map_bicycle_location_night.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
OsmAnd/res/drawable-large-xhdpi/map_car_bearing_night.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 6.5 KiB |
BIN
OsmAnd/res/drawable-large-xhdpi/map_car_location_night.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.3 KiB |
BIN
OsmAnd/res/drawable-large-xhdpi/map_default_location_night.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
OsmAnd/res/drawable-large-xhdpi/map_pedestrian_bearing_night.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.8 KiB |
BIN
OsmAnd/res/drawable-large/map_bicycle_bearing_night.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.8 KiB |
BIN
OsmAnd/res/drawable-large/map_bicycle_location_night.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
OsmAnd/res/drawable-large/map_car_bearing_night.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.3 KiB |
BIN
OsmAnd/res/drawable-large/map_car_location_night.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
OsmAnd/res/drawable-large/map_default_location_night.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
OsmAnd/res/drawable-large/map_pedestrian_bearing_night.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
OsmAnd/res/drawable-large/map_pedestrian_location_night.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.1 KiB |
|
@ -1,242 +1,306 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout android:id="@+id/plan_route_info"
|
||||||
android:id="@+id/plan_route_info"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="fill_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/left_menu_view_bg"
|
android:clickable="true"
|
||||||
android:orientation="vertical" >
|
android:background="@color/color_transparent">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ModesLayout"
|
android:id="@+id/main_view"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="@dimen/map_route_planning_land_width"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:background="?attr/left_menu_view_bg"
|
||||||
|
android:clickable="true"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<FrameLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/ModesLayout"
|
||||||
android:layout_height="wrap_content">
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
<View
|
<FrameLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="wrap_content">
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:background="?attr/dashboard_divider"
|
<View
|
||||||
android:focusable="false"/>
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:background="?attr/dashboard_divider"
|
||||||
|
android:focusable="false"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/app_modes"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:gravity="left"
|
||||||
|
android:orientation="horizontal"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/waypoints"
|
||||||
|
android:layout_width="@dimen/list_item_height"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:background="?attr/dashboard_button"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/map_action_waypoints"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</FrameLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:fillViewport="true">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/app_modes"
|
android:id="@+id/FromLayout"
|
||||||
android:layout_width="0dp"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="@dimen/list_item_height"
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:gravity="left"
|
|
||||||
android:orientation="horizontal"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:visibility="gone"
|
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/waypoints"
|
android:id="@+id/fromIcon"
|
||||||
android:layout_width="@dimen/list_item_height"
|
android:layout_width="24dp"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/dashboard_button"
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
android:scaleType="center"
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
android:src="@drawable/map_action_waypoints"/>
|
android:src="@drawable/map_default_location"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="3dp"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:text="@string/route_from"
|
||||||
|
android:textSize="@dimen/default_sub_text_size"/>
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:id="@+id/FromSpinner"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="-8dp"
|
||||||
|
android:background="@null"
|
||||||
|
android:textSize="@dimen/default_list_text_size"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/fromDropDownIcon"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginRight="@dimen/list_header_text_left_margin"
|
||||||
|
android:src="@drawable/ic_action_arrow_drop_down"/>
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
|
||||||
</FrameLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<ScrollView
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:fillViewport="true">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/FromLayout"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="@dimen/list_item_height"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:text="@string/route_from"
|
|
||||||
android:textSize="@dimen/default_sub_text_size" />
|
|
||||||
|
|
||||||
<Spinner
|
|
||||||
android:id="@+id/FromSpinner"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:textSize="@dimen/default_list_text_size" />
|
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
android:background="?attr/dashboard_divider"
|
android:background="?attr/dashboard_divider"
|
||||||
android:focusable="false" />
|
android:focusable="false"/>
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ViaLayout"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/ViaSubView"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="3dp"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:gravity="left"
|
|
||||||
android:text="@string/route_via"
|
|
||||||
android:textSize="@dimen/default_sub_text_size" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/ViaView"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="3dp"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:gravity="left"
|
|
||||||
android:textSize="@dimen/default_desc_text_size" />
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1dp"
|
|
||||||
android:background="?attr/dashboard_divider"
|
|
||||||
android:focusable="false" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ToLayout"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="@dimen/list_item_height"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:text="@string/route_to"
|
|
||||||
android:textSize="@dimen/default_sub_text_size" >
|
|
||||||
</TextView>
|
|
||||||
|
|
||||||
<Spinner
|
|
||||||
android:id="@+id/ToSpinner"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:textSize="@dimen/default_list_text_size" />
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1dp"
|
|
||||||
android:background="?attr/dashboard_divider"
|
|
||||||
android:focusable="false" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/RouteInfoControls"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/Info"
|
android:id="@+id/ViaLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/viaIcon"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:src="@drawable/map_default_location"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ViaSubView"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="3dp"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:gravity="left"
|
||||||
|
android:text="@string/route_via"
|
||||||
|
android:textSize="@dimen/default_sub_text_size"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ViaView"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:gravity="left"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:textSize="@dimen/default_list_text_size"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/viaLayoutDivider"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:background="?attr/dashboard_divider"
|
||||||
|
android:focusable="false"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ToLayout"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="@dimen/list_item_height"
|
||||||
android:background="?attr/dashboard_button"
|
android:orientation="horizontal">
|
||||||
android:orientation="horizontal" >
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/Prev"
|
android:id="@+id/toIcon"
|
||||||
android:layout_width="@dimen/list_item_height"
|
android:layout_width="24dp"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/dashboard_button"
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
android:contentDescription="@string/shared_string_previous"
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
android:scaleType="center"
|
android:src="@drawable/map_default_location"/>
|
||||||
android:src="@drawable/ic_prev" />
|
|
||||||
|
|
||||||
<ImageView
|
<LinearLayout
|
||||||
android:id="@+id/InfoIcon"
|
|
||||||
android:layout_width="@dimen/list_item_height"
|
|
||||||
android:layout_height="@dimen/list_item_height"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:contentDescription="@string/info_button"
|
|
||||||
android:scaleType="center"
|
|
||||||
android:src="@drawable/ic_action_info_dark" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/InfoTextView"
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="center_vertical|left"
|
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:textSize="@dimen/default_desc_text_size" />
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="3dp"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:text="@string/route_to"
|
||||||
|
android:textSize="@dimen/default_sub_text_size">
|
||||||
|
</TextView>
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:id="@+id/ToSpinner"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="-8dp"
|
||||||
|
android:background="@null"
|
||||||
|
android:textSize="@dimen/default_list_text_size"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/Next"
|
android:id="@+id/toDropDownIcon"
|
||||||
android:layout_width="@dimen/list_item_height"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="5dp"
|
android:layout_marginRight="@dimen/list_header_text_left_margin"
|
||||||
android:background="?attr/dashboard_button"
|
android:src="@drawable/ic_action_arrow_drop_down"/>
|
||||||
android:contentDescription="@string/shared_string_next"
|
|
||||||
android:scaleType="center"
|
|
||||||
android:src="@drawable/ic_next" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
android:background="?attr/dashboard_divider"
|
android:background="?attr/dashboard_divider"
|
||||||
android:focusable="false" />
|
android:focusable="false"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/RouteInfoControls"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/Info"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:background="?attr/dashboard_button"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/Prev"
|
||||||
|
android:layout_width="@dimen/list_item_height"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:background="?attr/dashboard_button"
|
||||||
|
android:contentDescription="@string/shared_string_previous"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_prev"/>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/InfoIcon"
|
||||||
|
android:layout_width="@dimen/list_item_height"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:contentDescription="@string/info_button"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_action_info_dark"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/InfoTextView"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical|left"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:textSize="@dimen/default_desc_text_size"/>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/Next"
|
||||||
|
android:layout_width="@dimen/list_item_height"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:layout_marginLeft="5dp"
|
||||||
|
android:background="?attr/dashboard_button"
|
||||||
|
android:contentDescription="@string/shared_string_next"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_next"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
android:background="?attr/dashboard_divider"
|
android:background="?attr/dashboard_divider"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<include layout="@layout/map_route_prepare_bottom" />
|
<include layout="@layout/map_route_prepare_bottom"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
</FrameLayout>
|
|
@ -48,15 +48,23 @@
|
||||||
|
|
||||||
<include layout="@layout/map_hud_bottom"/>
|
<include layout="@layout/map_hud_bottom"/>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="bottom">
|
android:layout_gravity="bottom">
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1px"/>
|
android:layout_height="1px"/>
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/routeMenuContainer"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
<include
|
<include
|
||||||
layout="@layout/dashboard_over_map"
|
layout="@layout/dashboard_over_map"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -66,9 +74,11 @@
|
||||||
android:id="@+id/fragmentContainer"
|
android:id="@+id/fragmentContainer"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"/>
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"/>
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
<ListView
|
<ListView
|
||||||
|
|
|
@ -1,236 +1,306 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout android:id="@+id/plan_route_info"
|
||||||
android:id="@+id/plan_route_info"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="fill_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/bottom_menu_view_bg"
|
android:clickable="true"
|
||||||
android:orientation="vertical" >
|
android:background="@color/color_transparent">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/ModesLayout"
|
android:id="@+id/main_view"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:background="?attr/bottom_menu_view_bg"
|
||||||
|
android:clickable="true"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<FrameLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/ModesLayout"
|
||||||
android:layout_height="wrap_content">
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
<View
|
<FrameLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="wrap_content">
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:background="?attr/dashboard_divider"
|
<View
|
||||||
android:focusable="false"/>
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:layout_gravity="bottom"
|
||||||
|
android:background="?attr/dashboard_divider"
|
||||||
|
android:focusable="false"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/app_modes"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:gravity="left"
|
||||||
|
android:orientation="horizontal"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/waypoints"
|
||||||
|
android:layout_width="@dimen/list_item_height"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:background="?attr/dashboard_button"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/map_action_waypoints"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</FrameLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:fillViewport="true">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/app_modes"
|
android:id="@+id/FromLayout"
|
||||||
android:layout_width="0dp"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="@dimen/list_item_height"
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:gravity="left"
|
|
||||||
android:orientation="horizontal"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:visibility="gone"
|
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/waypoints"
|
android:id="@+id/fromIcon"
|
||||||
android:layout_width="@dimen/list_item_height"
|
android:layout_width="24dp"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/dashboard_button"
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
android:scaleType="center"
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
android:src="@drawable/map_action_waypoints"/>
|
android:src="@drawable/map_default_location"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="3dp"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:text="@string/route_from"
|
||||||
|
android:textSize="@dimen/default_sub_text_size"/>
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:id="@+id/FromSpinner"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="-8dp"
|
||||||
|
android:background="@null"
|
||||||
|
android:textSize="@dimen/default_list_text_size"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/fromDropDownIcon"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginRight="@dimen/list_header_text_left_margin"
|
||||||
|
android:src="@drawable/ic_action_arrow_drop_down"/>
|
||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
|
||||||
</FrameLayout>
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<ScrollView
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:fillViewport="true">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/FromLayout"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="@dimen/list_item_height"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:text="@string/route_from"
|
|
||||||
android:textSize="@dimen/default_sub_text_size" />
|
|
||||||
|
|
||||||
<Spinner
|
|
||||||
android:id="@+id/FromSpinner"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:textSize="@dimen/default_list_text_size" />
|
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
android:background="?attr/dashboard_divider"
|
android:background="?attr/dashboard_divider"
|
||||||
android:focusable="false" />
|
android:focusable="false"/>
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ViaLayout"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/ViaSubView"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="3dp"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:gravity="left"
|
|
||||||
android:text="@string/route_via"
|
|
||||||
android:textSize="@dimen/default_sub_text_size" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/ViaView"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="3dp"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:gravity="left"
|
|
||||||
android:textSize="@dimen/default_desc_text_size" />
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1dp"
|
|
||||||
android:background="?attr/dashboard_divider"
|
|
||||||
android:focusable="false" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/ToLayout"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="@dimen/list_item_height"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:text="@string/route_to"
|
|
||||||
android:textSize="@dimen/default_sub_text_size" >
|
|
||||||
</TextView>
|
|
||||||
|
|
||||||
<Spinner
|
|
||||||
android:id="@+id/ToSpinner"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginLeft="@dimen/list_content_padding"
|
|
||||||
android:layout_marginRight="@dimen/list_content_padding"
|
|
||||||
android:layout_marginTop="3dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:textSize="@dimen/default_list_text_size" />
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="1dp"
|
|
||||||
android:background="?attr/dashboard_divider"
|
|
||||||
android:focusable="false" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/RouteInfoControls"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical" >
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/Info"
|
android:id="@+id/ViaLayout"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="@dimen/list_item_height"
|
||||||
android:background="?attr/dashboard_button"
|
android:orientation="horizontal">
|
||||||
android:orientation="horizontal" >
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/Prev"
|
android:id="@+id/viaIcon"
|
||||||
android:layout_width="@dimen/list_item_height"
|
android:layout_width="24dp"
|
||||||
android:layout_height="@dimen/list_item_height"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/dashboard_button"
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
android:contentDescription="@string/shared_string_previous"
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
android:scaleType="center"
|
android:src="@drawable/map_default_location"/>
|
||||||
android:src="@drawable/ic_prev" />
|
|
||||||
|
|
||||||
<ImageView
|
<LinearLayout
|
||||||
android:id="@+id/InfoIcon"
|
|
||||||
android:layout_width="@dimen/list_item_height"
|
|
||||||
android:layout_height="@dimen/list_item_height"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:contentDescription="@string/info_button"
|
|
||||||
android:scaleType="center"
|
|
||||||
android:src="@drawable/ic_action_info_dark" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/InfoTextView"
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="center_vertical|left"
|
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:textSize="@dimen/default_desc_text_size" />
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ViaSubView"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="3dp"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:gravity="left"
|
||||||
|
android:text="@string/route_via"
|
||||||
|
android:textSize="@dimen/default_sub_text_size"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ViaView"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:gravity="left"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:textSize="@dimen/default_list_text_size"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/Next"
|
|
||||||
android:layout_width="@dimen/list_item_height"
|
|
||||||
android:layout_height="@dimen/list_item_height"
|
|
||||||
android:layout_marginLeft="5dp"
|
|
||||||
android:background="?attr/dashboard_button"
|
|
||||||
android:contentDescription="@string/shared_string_next"
|
|
||||||
android:scaleType="center"
|
|
||||||
android:src="@drawable/ic_next" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/viaLayoutDivider"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:background="?attr/dashboard_divider"
|
||||||
|
android:focusable="false"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ToLayout"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/toIcon"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginLeft="@dimen/list_content_padding"
|
||||||
|
android:layout_marginRight="@dimen/list_content_padding"
|
||||||
|
android:src="@drawable/map_default_location"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="3dp"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:text="@string/route_to"
|
||||||
|
android:textSize="@dimen/default_sub_text_size">
|
||||||
|
</TextView>
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:id="@+id/ToSpinner"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="-8dp"
|
||||||
|
android:background="@null"
|
||||||
|
android:textSize="@dimen/default_list_text_size"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/toDropDownIcon"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginRight="@dimen/list_header_text_left_margin"
|
||||||
|
android:src="@drawable/ic_action_arrow_drop_down"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:background="?attr/dashboard_divider"
|
||||||
|
android:focusable="false"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/RouteInfoControls"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/Info"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:background="?attr/dashboard_button"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/Prev"
|
||||||
|
android:layout_width="@dimen/list_item_height"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:background="?attr/dashboard_button"
|
||||||
|
android:contentDescription="@string/shared_string_previous"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_prev"/>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/InfoIcon"
|
||||||
|
android:layout_width="@dimen/list_item_height"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:contentDescription="@string/info_button"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_action_info_dark"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/InfoTextView"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical|left"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:textSize="@dimen/default_desc_text_size"/>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/Next"
|
||||||
|
android:layout_width="@dimen/list_item_height"
|
||||||
|
android:layout_height="@dimen/list_item_height"
|
||||||
|
android:layout_marginLeft="5dp"
|
||||||
|
android:background="?attr/dashboard_button"
|
||||||
|
android:contentDescription="@string/shared_string_next"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_next"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="1dp"
|
android:layout_height="1dp"
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
android:background="?attr/dashboard_divider"
|
android:background="?attr/dashboard_divider"
|
||||||
android:focusable="false"/>
|
android:focusable="false"/>
|
||||||
|
|
||||||
<include layout="@layout/map_route_prepare_bottom" />
|
<include layout="@layout/map_route_prepare_bottom"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
</FrameLayout>
|
|
@ -2183,4 +2183,7 @@
|
||||||
<string name="no_address_found">Kan ikke bestemme adresse</string>
|
<string name="no_address_found">Kan ikke bestemme adresse</string>
|
||||||
<string name="looking_up_address">Søger efter adressen</string>
|
<string name="looking_up_address">Søger efter adressen</string>
|
||||||
<string name="rendering_attr_horseRoutes_name">Hesteruter</string>
|
<string name="rendering_attr_horseRoutes_name">Hesteruter</string>
|
||||||
</resources>
|
<string name="update_every">Opdater hver</string>
|
||||||
|
<string name="only_download_over_wifi">Hent kun over WiFi</string>
|
||||||
|
<string name="live_update">Realtids opdatering</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -2518,4 +2518,7 @@
|
||||||
|
|
||||||
<string name="poi_building_type_pyramid">Gebäudetyp: Pyramide</string>
|
<string name="poi_building_type_pyramid">Gebäudetyp: Pyramide</string>
|
||||||
|
|
||||||
|
<string name="poi_fitness_centre">Fitnesscenter</string>
|
||||||
|
<string name="poi_fitness">Fitness</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -2070,4 +2070,7 @@
|
||||||
<string name="av_audio_bitrate">Audio Bitrate</string>
|
<string name="av_audio_bitrate">Audio Bitrate</string>
|
||||||
<string name="av_audio_bitrate_descr">Wähle Audio Bitrate</string>
|
<string name="av_audio_bitrate_descr">Wähle Audio Bitrate</string>
|
||||||
<string name="rendering_attr_horseRoutes_name">Pferdewege</string>
|
<string name="rendering_attr_horseRoutes_name">Pferdewege</string>
|
||||||
</resources>
|
<string name="update_every">Aktualisierungsintervall</string>
|
||||||
|
<string name="only_download_over_wifi">Nur über WLAN herunterladen</string>
|
||||||
|
<string name="live_update">Live Aktualisierung</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -2568,4 +2568,7 @@
|
||||||
<string name="poi_health_specialty_herbalism_yes">Especialidad médica: herbolaria</string>
|
<string name="poi_health_specialty_herbalism_yes">Especialidad médica: herbolaria</string>
|
||||||
<string name="poi_building_type_pyramid">Tipo de edificio: pirámide</string>
|
<string name="poi_building_type_pyramid">Tipo de edificio: pirámide</string>
|
||||||
|
|
||||||
|
<string name="poi_fitness_centre">Gimnasio</string>
|
||||||
|
<string name="poi_fitness">Gimnasio (deporte)</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -2002,4 +2002,7 @@
|
||||||
<string name="no_address_found">Dirección indeterminada</string>
|
<string name="no_address_found">Dirección indeterminada</string>
|
||||||
<string name="looking_up_address">Buscando dirección</string>
|
<string name="looking_up_address">Buscando dirección</string>
|
||||||
<string name="rendering_attr_horseRoutes_name">Rutas a caballo</string>
|
<string name="rendering_attr_horseRoutes_name">Rutas a caballo</string>
|
||||||
</resources>
|
<string name="update_every">Actualizar todos</string>
|
||||||
|
<string name="only_download_over_wifi">Descargar sólo por WiFi</string>
|
||||||
|
<string name="live_update">Actualización en vivo</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -2069,4 +2069,8 @@
|
||||||
<string name="av_audio_bitrate_descr">Sélectionnez le bitrate audio</string>
|
<string name="av_audio_bitrate_descr">Sélectionnez le bitrate audio</string>
|
||||||
<string name="no_address_found">Impossible de déterminer l\'adresse</string>
|
<string name="no_address_found">Impossible de déterminer l\'adresse</string>
|
||||||
<string name="looking_up_address">Recherche de l\'adresse</string>
|
<string name="looking_up_address">Recherche de l\'adresse</string>
|
||||||
|
<string name="update_every">Mettre à jour tout les</string>
|
||||||
|
<string name="only_download_over_wifi">Télécharger uniquement en WIFI</string>
|
||||||
|
<string name="live_update">Mise à jour en temps réel</string>
|
||||||
|
<string name="rendering_attr_horseRoutes_name">Randonnée à cheval</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<dimen name="map_route_buttons_width">90dp</dimen>
|
<dimen name="map_route_buttons_width">90dp</dimen>
|
||||||
<dimen name="map_route_buttons_height">81dp</dimen>
|
<dimen name="map_route_buttons_height">81dp</dimen>
|
||||||
<dimen name="map_route_buttons_height_land">72dp</dimen>
|
<dimen name="map_route_buttons_height_land">72dp</dimen>
|
||||||
<dimen name="map_route_planning_max_height">400dp</dimen>
|
<dimen name="map_route_planning_max_height">450dp</dimen>
|
||||||
<dimen name="map_minwidth_widget">160dp</dimen>
|
<dimen name="map_minwidth_widget">160dp</dimen>
|
||||||
<dimen name="map_route_planning_land_width">510dp</dimen>
|
<dimen name="map_route_planning_land_width">510dp</dimen>
|
||||||
|
|
||||||
|
|
|
@ -747,8 +747,8 @@
|
||||||
<string name="poi_tomb">Graf</string>
|
<string name="poi_tomb">Graf</string>
|
||||||
<string name="poi_hanami">Hanami</string>
|
<string name="poi_hanami">Hanami</string>
|
||||||
<string name="poi_wine_cellar">Wijnkelder</string>
|
<string name="poi_wine_cellar">Wijnkelder</string>
|
||||||
<string name="poi_piste_downhill">Alpijns skiën</string>
|
<string name="poi_piste_downhill">Skipiste</string>
|
||||||
<string name="poi_piste_hike">Wandelen</string>
|
<string name="poi_piste_hike">Winterwandelweg</string>
|
||||||
<string name="poi_piste_sleigh"/>
|
<string name="poi_piste_sleigh"/>
|
||||||
<string name="poi_piste_ice_skate">Schaatsen</string>
|
<string name="poi_piste_ice_skate">Schaatsen</string>
|
||||||
<string name="poi_ski_rental">Skiverhuur</string>
|
<string name="poi_ski_rental">Skiverhuur</string>
|
||||||
|
@ -835,7 +835,7 @@
|
||||||
<string name="poi_recycling_paper_packaging">Papieren verpakkingen</string>
|
<string name="poi_recycling_paper_packaging">Papieren verpakkingen</string>
|
||||||
<string name="poi_recycling_small_appliances">Kleine apparaten</string>
|
<string name="poi_recycling_small_appliances">Kleine apparaten</string>
|
||||||
<string name="poi_recycling_wood">Hout</string>
|
<string name="poi_recycling_wood">Hout</string>
|
||||||
<string name="poi_recycling_books"/>
|
<string name="poi_recycling_books">Boeken</string>
|
||||||
<string name="poi_recycling_shoes">Schoenen</string>
|
<string name="poi_recycling_shoes">Schoenen</string>
|
||||||
<string name="poi_recycling_aluminium">Aluminium</string>
|
<string name="poi_recycling_aluminium">Aluminium</string>
|
||||||
<string name="poi_recycling_organic">Organische materialen</string>
|
<string name="poi_recycling_organic">Organische materialen</string>
|
||||||
|
@ -880,7 +880,7 @@
|
||||||
<string name="poi_recycling_diapers">Luiers</string>
|
<string name="poi_recycling_diapers">Luiers</string>
|
||||||
<string name="poi_recycling_car_batteries">Accu\'s</string>
|
<string name="poi_recycling_car_batteries">Accu\'s</string>
|
||||||
<string name="poi_recycling_cars">Auto \'s</string>
|
<string name="poi_recycling_cars">Auto \'s</string>
|
||||||
<string name="poi_recycling_bicycles"/>
|
<string name="poi_recycling_bicycles">Fietsen</string>
|
||||||
|
|
||||||
<string name="poi_landfill_waste_nuclear">Nucleair afval</string>
|
<string name="poi_landfill_waste_nuclear">Nucleair afval</string>
|
||||||
<string name="poi_basin">Waterbekken</string>
|
<string name="poi_basin">Waterbekken</string>
|
||||||
|
@ -971,4 +971,15 @@
|
||||||
<string name="poi_denomination_georgian_orthodox">Georgisch Orthodox</string>
|
<string name="poi_denomination_georgian_orthodox">Georgisch Orthodox</string>
|
||||||
<string name="poi_denomination_scientist">Scientisme</string>
|
<string name="poi_denomination_scientist">Scientisme</string>
|
||||||
<string name="poi_denomination_romanian_orthodox">Roemeens Orthodox</string>
|
<string name="poi_denomination_romanian_orthodox">Roemeens Orthodox</string>
|
||||||
|
<string name="poi_denomination_ethiopian_orthodox_tewahedo">Ethiopisch Orthodox</string>
|
||||||
|
<string name="poi_denomination_unitarian">Unitarisch</string>
|
||||||
|
<string name="poi_denomination_coptic_orthodox">Koptisch-orthodox</string>
|
||||||
|
<string name="poi_denomination_wesleyan">Wesleyan</string>
|
||||||
|
<string name="poi_denomination_shaktism">Shaktisme</string>
|
||||||
|
<string name="poi_internet_access_yes">Internettoegang: ja</string>
|
||||||
|
<string name="poi_internet_access_no">Internettoegang: nee</string>
|
||||||
|
|
||||||
|
<string name="poi_piste">Piste</string>
|
||||||
|
<string name="poi_piste_nordic">Langlaufpiste</string>
|
||||||
|
<string name="poi_piste_skitour">Tourski piste</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -155,7 +155,7 @@
|
||||||
<string name="user_name_descr">Nodig voor openstreetmap.org aanmelding</string>
|
<string name="user_name_descr">Nodig voor openstreetmap.org aanmelding</string>
|
||||||
<string name="user_password">OSM wachtwoord</string>
|
<string name="user_password">OSM wachtwoord</string>
|
||||||
<string name="user_password_descr">Nodig voor openstreetmap.org aanmelding</string>
|
<string name="user_password_descr">Nodig voor openstreetmap.org aanmelding</string>
|
||||||
<string name="osmand_service">Achtergrondstand</string>
|
<string name="osmand_service">Achtergrondmodus</string>
|
||||||
<string name="osmand_service_descr">OsmAnd werkt op de achtergrond als het scherm uit is</string>
|
<string name="osmand_service_descr">OsmAnd werkt op de achtergrond als het scherm uit is</string>
|
||||||
|
|
||||||
|
|
||||||
|
@ -252,7 +252,7 @@
|
||||||
<string name="local_indexes_cat_tts">Gesproken aanwijzingen (TTS)</string>
|
<string name="local_indexes_cat_tts">Gesproken aanwijzingen (TTS)</string>
|
||||||
<string name="local_indexes_cat_voice">Gesproken aanwijzingen (opgenomen)</string>
|
<string name="local_indexes_cat_voice">Gesproken aanwijzingen (opgenomen)</string>
|
||||||
|
|
||||||
<string name="local_indexes_cat_tile">Online en bewaarde tegelkaarten</string>
|
<string name="local_indexes_cat_tile">Online en opgeslagen tegelkaarten</string>
|
||||||
<string name="local_indexes_cat_map">Normale kaarten (vector)</string>
|
<string name="local_indexes_cat_map">Normale kaarten (vector)</string>
|
||||||
<string name="local_indexes_cat_poi">Interessepunt-gegevens</string>
|
<string name="local_indexes_cat_poi">Interessepunt-gegevens</string>
|
||||||
<string name="ttsvoice">Stemmen van spraaksynthese</string>
|
<string name="ttsvoice">Stemmen van spraaksynthese</string>
|
||||||
|
@ -1513,7 +1513,7 @@
|
||||||
<string name="stop_navigation_service">Onderbreek</string>
|
<string name="stop_navigation_service">Onderbreek</string>
|
||||||
<string name="enable_sleep_mode">GPS slaapstand inschakelen</string>
|
<string name="enable_sleep_mode">GPS slaapstand inschakelen</string>
|
||||||
<string name="gps_wake_up_timer">GPS ontwaak-interval</string>
|
<string name="gps_wake_up_timer">GPS ontwaak-interval</string>
|
||||||
<string name="sleep_mode_stop_dialog">Onderbreek GPS achtergond-stand?</string>
|
<string name="sleep_mode_stop_dialog">Onderbreek GPS op achtergrond?</string>
|
||||||
<string name="lang_fa">Perzisch</string>
|
<string name="lang_fa">Perzisch</string>
|
||||||
<string name="lang_al">Albanees</string>
|
<string name="lang_al">Albanees</string>
|
||||||
<string name="lang_ar">Arabisch</string>
|
<string name="lang_ar">Arabisch</string>
|
||||||
|
@ -1818,7 +1818,7 @@
|
||||||
<string name="filter_poi_hint">Filter op naam</string>
|
<string name="filter_poi_hint">Filter op naam</string>
|
||||||
<string name="search_poi_category_hint">Tik om alles te doorzoeken</string>
|
<string name="search_poi_category_hint">Tik om alles te doorzoeken</string>
|
||||||
<string name="shared_string_open">Open</string>
|
<string name="shared_string_open">Open</string>
|
||||||
<string name="rendering_attr_OSMMapperAssistant_name">OSM cartografie-assistent</string>
|
<string name="rendering_attr_OSMMapperAssistant_name">OSM kaart-assistent</string>
|
||||||
<string name="shared_string_manage">Beheer</string>
|
<string name="shared_string_manage">Beheer</string>
|
||||||
<string name="shared_string_edit">Bewerk</string>
|
<string name="shared_string_edit">Bewerk</string>
|
||||||
<string name="shared_string_places">Plaatsen</string>
|
<string name="shared_string_places">Plaatsen</string>
|
||||||
|
@ -1832,7 +1832,7 @@
|
||||||
<string name="specified_directiory_not_writeable">In de opgegeven directory kunnen geen kaarten opgeslagen worden</string>
|
<string name="specified_directiory_not_writeable">In de opgegeven directory kunnen geen kaarten opgeslagen worden</string>
|
||||||
<string name="copying_osmand_file_failed">Het kopiëren van bestanden is niet gelukt</string>
|
<string name="copying_osmand_file_failed">Het kopiëren van bestanden is niet gelukt</string>
|
||||||
<string name="storage_directory_external">Externe opslag</string>
|
<string name="storage_directory_external">Externe opslag</string>
|
||||||
<string name="storage_directory_multiuser">Opslag voor meer gebruikers</string>
|
<string name="storage_directory_multiuser">Opslag voor meerdere gebruikers</string>
|
||||||
<string name="storage_directory_internal_app">Intern applicatie-geheugen</string>
|
<string name="storage_directory_internal_app">Intern applicatie-geheugen</string>
|
||||||
<string name="storage_directory_manual">Handmatig opgegeven</string>
|
<string name="storage_directory_manual">Handmatig opgegeven</string>
|
||||||
<string name="storage_directory_default">Interne opslag</string>
|
<string name="storage_directory_default">Interne opslag</string>
|
||||||
|
@ -1909,7 +1909,7 @@
|
||||||
<string name="traffic_warning_hazard">Gevaar</string>
|
<string name="traffic_warning_hazard">Gevaar</string>
|
||||||
<string name="rendering_value_boldOutline_name">Dik omlijnd</string>
|
<string name="rendering_value_boldOutline_name">Dik omlijnd</string>
|
||||||
<string name="no_updates_available">Geen updates beschikbaar</string>
|
<string name="no_updates_available">Geen updates beschikbaar</string>
|
||||||
<string name="download_live_updates">Automatische updates</string>
|
<string name="download_live_updates">Live Updates</string>
|
||||||
<string name="lang_os">Ossetisch</string>
|
<string name="lang_os">Ossetisch</string>
|
||||||
<string name="lang_nb">Noors (Bokmål)</string>
|
<string name="lang_nb">Noors (Bokmål)</string>
|
||||||
<string name="lang_vo">Volapük</string>
|
<string name="lang_vo">Volapük</string>
|
||||||
|
@ -1928,7 +1928,7 @@
|
||||||
<string name="user_hates_app_get_feedback_long">Vertel ons wat u veranderd wilt hebben in deze app.</string>
|
<string name="user_hates_app_get_feedback_long">Vertel ons wat u veranderd wilt hebben in deze app.</string>
|
||||||
<string name="failed_to_upload">Uploaden mislukt</string>
|
<string name="failed_to_upload">Uploaden mislukt</string>
|
||||||
<string name="delete_change">Verwijder wijziging</string>
|
<string name="delete_change">Verwijder wijziging</string>
|
||||||
<string name="successfully_uploaded_pattern">Succesvol geupload {0}/{1}</string>
|
<string name="successfully_uploaded_pattern">Succesvol geüpload {0}/{1}</string>
|
||||||
<string name="try_again">Probeer het opnieuw</string>
|
<string name="try_again">Probeer het opnieuw</string>
|
||||||
<string name="error_message_pattern">Fout: {0}</string>
|
<string name="error_message_pattern">Fout: {0}</string>
|
||||||
<string name="rate_this_app_long">Wilt u OsmAnd beoordelen op Google Play? Alvast heel erg bedankt.</string>
|
<string name="rate_this_app_long">Wilt u OsmAnd beoordelen op Google Play? Alvast heel erg bedankt.</string>
|
||||||
|
@ -1957,10 +1957,10 @@
|
||||||
<string name="min_km">min/km</string>
|
<string name="min_km">min/km</string>
|
||||||
<string name="m_s">m/s</string>
|
<string name="m_s">m/s</string>
|
||||||
|
|
||||||
<string name="shared_string_trip_recording">Spoor registreren</string>
|
<string name="shared_string_trip_recording">GPX-Track opnemen</string>
|
||||||
<string name="shared_string_navigation">Navigatie</string>
|
<string name="shared_string_navigation">Navigatie</string>
|
||||||
<string name="favourites_edit_dialog_title">Eigenschappen van favoriet</string>
|
<string name="favourites_edit_dialog_title">Informatie over favoriet</string>
|
||||||
<string name="simulate_your_location_stop_descr">Stop simuleren van positie</string>
|
<string name="simulate_your_location_stop_descr">Stop simulatie</string>
|
||||||
<string name="simulate_your_location_descr">Simuleer met een GPX-spoor of een berekende route</string>
|
<string name="simulate_your_location_descr">Simuleer met een GPX-spoor of een berekende route</string>
|
||||||
<string name="av_locations_descr">GPX-bestand met aantekeningen</string>
|
<string name="av_locations_descr">GPX-bestand met aantekeningen</string>
|
||||||
<string name="av_locations">Locaties</string>
|
<string name="av_locations">Locaties</string>
|
||||||
|
@ -2022,7 +2022,7 @@
|
||||||
<string name="roads">Wegen</string>
|
<string name="roads">Wegen</string>
|
||||||
<string name="downloading_number_of_files">Downloaden - %1$d bestand</string>
|
<string name="downloading_number_of_files">Downloaden - %1$d bestand</string>
|
||||||
<string name="show_free_version_banner">Toon de balk \"Gratis Versie\"</string>
|
<string name="show_free_version_banner">Toon de balk \"Gratis Versie\"</string>
|
||||||
<string name="show_free_version_banner_description">Ook als u betaald heeft kunt u nog steeds de balk \"Gratis Versie\" tonen</string>
|
<string name="show_free_version_banner_description">In de betaalde versie toch de balk \"Gratis Versie\" tonen</string>
|
||||||
<string name="buy">Kopen</string>
|
<string name="buy">Kopen</string>
|
||||||
<string name="later">Later</string>
|
<string name="later">Later</string>
|
||||||
<string name="downloads">Downloads</string>
|
<string name="downloads">Downloads</string>
|
||||||
|
@ -2042,7 +2042,7 @@
|
||||||
<string name="help_us_to_improve_menu_group">Help met het verbeteren van OsmAnd</string>
|
<string name="help_us_to_improve_menu_group">Help met het verbeteren van OsmAnd</string>
|
||||||
<string name="other_menu_group">Overige</string>
|
<string name="other_menu_group">Overige</string>
|
||||||
<string name="plugins_menu_group">Plugins</string>
|
<string name="plugins_menu_group">Plugins</string>
|
||||||
<string name="first_usage_item">Eerste keer gebruiken</string>
|
<string name="first_usage_item">Eerste gebruik</string>
|
||||||
<string name="first_usage_item_description">Hoe kaarten te downloaden en basisinstellingen</string>
|
<string name="first_usage_item_description">Hoe kaarten te downloaden en basisinstellingen</string>
|
||||||
<string name="navigation_item_description">Navigatie instellen</string>
|
<string name="navigation_item_description">Navigatie instellen</string>
|
||||||
<string name="planning_trip_item">Een reis plannen</string>
|
<string name="planning_trip_item">Een reis plannen</string>
|
||||||
|
@ -2057,7 +2057,7 @@
|
||||||
<string name="contact_us">Neem contact op</string>
|
<string name="contact_us">Neem contact op</string>
|
||||||
<string name="map_legend">Legenda</string>
|
<string name="map_legend">Legenda</string>
|
||||||
<string name="read_more">Meer lezen</string>
|
<string name="read_more">Meer lezen</string>
|
||||||
<string name="whats_new">Wat is nieuw in</string>
|
<string name="whats_new">Wat is er nieuw in</string>
|
||||||
<string name="rendering_attr_hideProposed_name">Verberg voorgestelde objecten</string>
|
<string name="rendering_attr_hideProposed_name">Verberg voorgestelde objecten</string>
|
||||||
<string name="share_osm_edits_subject">Via OsmAnd gedeelde OSM-bewerkingen</string>
|
<string name="share_osm_edits_subject">Via OsmAnd gedeelde OSM-bewerkingen</string>
|
||||||
<string name="lang_nds">Nederduits</string>
|
<string name="lang_nds">Nederduits</string>
|
||||||
|
@ -2086,7 +2086,7 @@
|
||||||
<string name="dashboard_or_drawer_description">Kies tussen het flexibele dashboard of een vast menu. Dit is altijd te wijzigen via de dashboard-instellingen.</string>
|
<string name="dashboard_or_drawer_description">Kies tussen het flexibele dashboard of een vast menu. Dit is altijd te wijzigen via de dashboard-instellingen.</string>
|
||||||
<string name="copied_to_clipboard">Gekopieerd naar klembord</string>
|
<string name="copied_to_clipboard">Gekopieerd naar klembord</string>
|
||||||
<string name="release_2_2">" • Nieuw contextmenu bij het aantikken van plekken op de kaart en op andere schermen\n\n • De kaart wordt direct getoond, tenzij \'Toon dashboard bij starten van de app\' is gekozen\n\n • Kies welke kaarten worden getoond op het dashboard\n\n • Mogelijkheid menu te gebruiken in plaats van het dashboard\n\n • Kaarten downloaden door op de wereldkaart te tikken\n\n • Fijnmaziger zoeken van POI\n\n • Betere bewerkingsmogelijkheden van POI en OSM\n\n • Kaarten downloaden is makkelijker en overzichtelijker\n\n en meer… "</string>
|
<string name="release_2_2">" • Nieuw contextmenu bij het aantikken van plekken op de kaart en op andere schermen\n\n • De kaart wordt direct getoond, tenzij \'Toon dashboard bij starten van de app\' is gekozen\n\n • Kies welke kaarten worden getoond op het dashboard\n\n • Mogelijkheid menu te gebruiken in plaats van het dashboard\n\n • Kaarten downloaden door op de wereldkaart te tikken\n\n • Fijnmaziger zoeken van POI\n\n • Betere bewerkingsmogelijkheden van POI en OSM\n\n • Kaarten downloaden is makkelijker en overzichtelijker\n\n en meer… "</string>
|
||||||
<string name="shared_string_commit">Verstuur</string>
|
<string name="shared_string_commit">Bijdrage versturen</string>
|
||||||
|
|
||||||
<string name="context_menu_item_delete_waypoint">GPX routepunt wissen?</string>
|
<string name="context_menu_item_delete_waypoint">GPX routepunt wissen?</string>
|
||||||
<string name="context_menu_item_edit_waypoint">GPX routepunt bewerken</string>
|
<string name="context_menu_item_edit_waypoint">GPX routepunt bewerken</string>
|
||||||
|
@ -2122,4 +2122,7 @@
|
||||||
<string name="av_audio_bitrate_descr">Kies audio bitrate</string>
|
<string name="av_audio_bitrate_descr">Kies audio bitrate</string>
|
||||||
<string name="looking_up_address">Adres wordt gezocht</string>
|
<string name="looking_up_address">Adres wordt gezocht</string>
|
||||||
<string name="rendering_attr_horseRoutes_name">Ruiterroutes</string>
|
<string name="rendering_attr_horseRoutes_name">Ruiterroutes</string>
|
||||||
</resources>
|
<string name="update_every">Update elke</string>
|
||||||
|
<string name="only_download_over_wifi">"Alleen downloaden via WiFi"</string>
|
||||||
|
<string name="live_update">Live Update</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -1936,7 +1936,7 @@
|
||||||
<string name="poi_context_menu_modify_osm_change">Modificar alteração no OSM</string>
|
<string name="poi_context_menu_modify_osm_change">Modificar alteração no OSM</string>
|
||||||
<string name="use_dashboard_btn">Usar painel de controle</string>
|
<string name="use_dashboard_btn">Usar painel de controle</string>
|
||||||
<string name="use_drawer_btn">Usar menu</string>
|
<string name="use_drawer_btn">Usar menu</string>
|
||||||
<string name="dashboard_or_drawer_title">Painel de controle ou controle por menu</string>
|
<string name="dashboard_or_drawer_title">Controle pelo painel ou menu</string>
|
||||||
<string name="dashboard_or_drawer_description">Há uma nova opção para controlar principalmente o app via painel de controle flexível ou um menu estático. Sua escolha sempre pode ser alterada nas configurações do painel de controle.</string>
|
<string name="dashboard_or_drawer_description">Há uma nova opção para controlar principalmente o app via painel de controle flexível ou um menu estático. Sua escolha sempre pode ser alterada nas configurações do painel de controle.</string>
|
||||||
<string name="shared_string_hide">Ocultar</string>
|
<string name="shared_string_hide">Ocultar</string>
|
||||||
<string name="av_video_quality_low">Menor qualidade</string>
|
<string name="av_video_quality_low">Menor qualidade</string>
|
||||||
|
@ -1951,4 +1951,7 @@
|
||||||
<string name="no_address_found">Sem endereço determinado</string>
|
<string name="no_address_found">Sem endereço determinado</string>
|
||||||
<string name="looking_up_address">Endereço procurado</string>
|
<string name="looking_up_address">Endereço procurado</string>
|
||||||
<string name="rendering_attr_horseRoutes_name">Rotas a cavalo</string>
|
<string name="rendering_attr_horseRoutes_name">Rotas a cavalo</string>
|
||||||
</resources>
|
<string name="update_every">Atualizar tudo</string>
|
||||||
|
<string name="only_download_over_wifi">Somente baixar via Wi-Fi</string>
|
||||||
|
<string name="live_update">Atualização ao vivo</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -2030,4 +2030,7 @@
|
||||||
<string name="no_address_found">Ingen adress angiven</string>
|
<string name="no_address_found">Ingen adress angiven</string>
|
||||||
<string name="looking_up_address">Slår upp adressen</string>
|
<string name="looking_up_address">Slår upp adressen</string>
|
||||||
<string name="rendering_attr_horseRoutes_name">Hästleder</string>
|
<string name="rendering_attr_horseRoutes_name">Hästleder</string>
|
||||||
</resources>
|
<string name="update_every">Uppdatera varje</string>
|
||||||
|
<string name="only_download_over_wifi">Hämta endast via WiFi</string>
|
||||||
|
<string name="live_update">Direktuppdatering</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -1989,4 +1989,7 @@
|
||||||
<string name="osmo_auth_error_short">Yetkilendirme başarısız oldu</string>
|
<string name="osmo_auth_error_short">Yetkilendirme başarısız oldu</string>
|
||||||
<string name="osmo_auth_error">OsMo yetkilendirme hata oluştu: %1$s.\nAşağı bir geçici olarak hizmet olabilir veya kayıt süresi.\nYeni kayıt devam etmek istiyor musunuz?</string>
|
<string name="osmo_auth_error">OsMo yetkilendirme hata oluştu: %1$s.\nAşağı bir geçici olarak hizmet olabilir veya kayıt süresi.\nYeni kayıt devam etmek istiyor musunuz?</string>
|
||||||
<string name="osmo_group_information_desc">" -Tüm oluşturulan grupları genel! Anonim olmak istiyorsan, izci kimlikleri üzerinden doğrudan aygıtlarını bağlayın.\n-Özel gruplar için 8 kişi sınırlıdır\nHareketsizlik ya da 2 hafta için sadece 1 kişi faaliyet-grup-ecek var olmak silmek.\n-Sadece davet, ama kontrol grubuna yönetici konsolu için gitmek gerekir gibi grup giriş, sınırlayabilirsiniz.\n-Bir grup oluşturun, ancak diğer koşulları ile lütfen http://osmo.mobi başvurun gerekiyorsa"</string>
|
<string name="osmo_group_information_desc">" -Tüm oluşturulan grupları genel! Anonim olmak istiyorsan, izci kimlikleri üzerinden doğrudan aygıtlarını bağlayın.\n-Özel gruplar için 8 kişi sınırlıdır\nHareketsizlik ya da 2 hafta için sadece 1 kişi faaliyet-grup-ecek var olmak silmek.\n-Sadece davet, ama kontrol grubuna yönetici konsolu için gitmek gerekir gibi grup giriş, sınırlayabilirsiniz.\n-Bir grup oluşturun, ancak diğer koşulları ile lütfen http://osmo.mobi başvurun gerekiyorsa"</string>
|
||||||
</resources>
|
<string name="update_every">Bütün Güncellemler</string>
|
||||||
|
<string name="only_download_over_wifi">Sadece WiFi üzerinden İndir</string>
|
||||||
|
<string name="live_update">Canlı güncelleştirme</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -2029,4 +2029,7 @@
|
||||||
<string name="no_address_found">沒有確定地址</string>
|
<string name="no_address_found">沒有確定地址</string>
|
||||||
<string name="looking_up_address">查尋地址</string>
|
<string name="looking_up_address">查尋地址</string>
|
||||||
<string name="rendering_attr_horseRoutes_name">馬道</string>
|
<string name="rendering_attr_horseRoutes_name">馬道</string>
|
||||||
</resources>
|
<string name="update_every">更新全部</string>
|
||||||
|
<string name="only_download_over_wifi">只在 WiFi 連線下載</string>
|
||||||
|
<string name="live_update">即時更新</string>
|
||||||
|
</resources>
|
||||||
|
|
|
@ -86,7 +86,7 @@
|
||||||
<dimen name="map_button_stroke">1dp</dimen>
|
<dimen name="map_button_stroke">1dp</dimen>
|
||||||
<dimen name="map_button_stroke_dark">1dp</dimen>
|
<dimen name="map_button_stroke_dark">1dp</dimen>
|
||||||
<dimen name="map_route_planning_land_width">320dp</dimen>
|
<dimen name="map_route_planning_land_width">320dp</dimen>
|
||||||
<dimen name="map_route_planning_max_height">280dp</dimen>
|
<dimen name="map_route_planning_max_height">330dp</dimen>
|
||||||
<dimen name="map_minwidth_widget">100dp</dimen>
|
<dimen name="map_minwidth_widget">100dp</dimen>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -289,7 +289,7 @@ public class AppInitializer implements IProgress {
|
||||||
return app.getString(in);
|
return app.getString(in);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.err.println(e.getMessage());
|
System.err.println("No translation for "+ type.getIconKeyName() + " " + e.getMessage());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,7 +126,7 @@ public class TargetPointsHelper {
|
||||||
public List<TargetPoint> getIntermediatePointsNavigation() {
|
public List<TargetPoint> getIntermediatePointsNavigation() {
|
||||||
List<TargetPoint> intermediatePoints = new ArrayList<>();
|
List<TargetPoint> intermediatePoints = new ArrayList<>();
|
||||||
if (settings.USE_INTERMEDIATE_POINTS_NAVIGATION.get()) {
|
if (settings.USE_INTERMEDIATE_POINTS_NAVIGATION.get()) {
|
||||||
for (TargetPoint t : intermediatePoints) {
|
for (TargetPoint t : this.intermediatePoints) {
|
||||||
intermediatePoints.add(t);
|
intermediatePoints.add(t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@ public class TargetPointsHelper {
|
||||||
|
|
||||||
public List<LatLon> getIntermediatePointsLatLon() {
|
public List<LatLon> getIntermediatePointsLatLon() {
|
||||||
List<LatLon> intermediatePointsLatLon = new ArrayList<LatLon>();
|
List<LatLon> intermediatePointsLatLon = new ArrayList<LatLon>();
|
||||||
for (TargetPoint t : intermediatePoints) {
|
for (TargetPoint t : this.intermediatePoints) {
|
||||||
intermediatePointsLatLon.add(t.point);
|
intermediatePointsLatLon.add(t.point);
|
||||||
}
|
}
|
||||||
return intermediatePointsLatLon;
|
return intermediatePointsLatLon;
|
||||||
|
@ -144,7 +144,7 @@ public class TargetPointsHelper {
|
||||||
public List<LatLon> getIntermediatePointsLatLonNavigation() {
|
public List<LatLon> getIntermediatePointsLatLonNavigation() {
|
||||||
List<LatLon> intermediatePointsLatLon = new ArrayList<LatLon>();
|
List<LatLon> intermediatePointsLatLon = new ArrayList<LatLon>();
|
||||||
if (settings.USE_INTERMEDIATE_POINTS_NAVIGATION.get()) {
|
if (settings.USE_INTERMEDIATE_POINTS_NAVIGATION.get()) {
|
||||||
for (TargetPoint t : intermediatePoints) {
|
for (TargetPoint t : this.intermediatePoints) {
|
||||||
intermediatePointsLatLon.add(t.point);
|
intermediatePointsLatLon.add(t.point);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -153,7 +153,7 @@ public class TargetPointsHelper {
|
||||||
|
|
||||||
public List<TargetPoint> getIntermediatePointsWithTarget() {
|
public List<TargetPoint> getIntermediatePointsWithTarget() {
|
||||||
List<TargetPoint> res = new ArrayList<TargetPoint>();
|
List<TargetPoint> res = new ArrayList<TargetPoint>();
|
||||||
res.addAll(intermediatePoints);
|
res.addAll(this.intermediatePoints);
|
||||||
if(pointToNavigate != null) {
|
if(pointToNavigate != null) {
|
||||||
res.add(pointToNavigate);
|
res.add(pointToNavigate);
|
||||||
}
|
}
|
||||||
|
|
|
@ -646,15 +646,7 @@ public class MapActivityActions implements DialogProvider {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
optionsMenuHelper.item(R.string.download_live_updates).iconColor(R.drawable.ic_configure_screen_dark)
|
|
||||||
.listen(new OnContextMenuClick() {
|
|
||||||
@Override
|
|
||||||
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
|
|
||||||
Intent intent = new Intent(mapActivity, LiveUpdatesActivity.class);
|
|
||||||
mapActivity.startActivity(intent);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}).reg();
|
|
||||||
String d = getString(R.string.index_settings);
|
String d = getString(R.string.index_settings);
|
||||||
if (app.getDownloadThread().getIndexes().isDownloadedFromInternet) {
|
if (app.getDownloadThread().getIndexes().isDownloadedFromInternet) {
|
||||||
List<IndexItem> updt = app.getDownloadThread().getIndexes().getItemsToUpdate();
|
List<IndexItem> updt = app.getDownloadThread().getIndexes().getItemsToUpdate();
|
||||||
|
@ -674,6 +666,15 @@ public class MapActivityActions implements DialogProvider {
|
||||||
}
|
}
|
||||||
}).reg();
|
}).reg();
|
||||||
|
|
||||||
|
optionsMenuHelper.item(R.string.download_live_updates).iconColor(R.drawable.ic_configure_screen_dark)
|
||||||
|
.listen(new OnContextMenuClick() {
|
||||||
|
@Override
|
||||||
|
public boolean onContextMenuClick(ArrayAdapter<?> adapter, int itemId, int pos, boolean isChecked) {
|
||||||
|
Intent intent = new Intent(mapActivity, LiveUpdatesActivity.class);
|
||||||
|
mapActivity.startActivity(intent);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}).reg();
|
||||||
|
|
||||||
optionsMenuHelper.item(R.string.prefs_plugins).iconColor(R.drawable.ic_extension_dark)
|
optionsMenuHelper.item(R.string.prefs_plugins).iconColor(R.drawable.ic_extension_dark)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
|
|
|
@ -22,7 +22,7 @@ import net.osmand.plus.R;
|
||||||
import net.osmand.plus.routing.RouteDirectionInfo;
|
import net.osmand.plus.routing.RouteDirectionInfo;
|
||||||
import net.osmand.plus.routing.RoutingHelper;
|
import net.osmand.plus.routing.RoutingHelper;
|
||||||
import net.osmand.plus.views.TurnPathHelper;
|
import net.osmand.plus.views.TurnPathHelper;
|
||||||
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl;
|
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
|
||||||
import net.osmand.util.Algorithms;
|
import net.osmand.util.Algorithms;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
@ -144,7 +144,7 @@ public class ShowRouteInfoActivity extends OsmandListActivity {
|
||||||
RouteDirectionInfo item = ((RouteInfoAdapter)getListAdapter()).getItem(position - 1);
|
RouteDirectionInfo item = ((RouteInfoAdapter)getListAdapter()).getItem(position - 1);
|
||||||
Location loc = helper.getLocationFromRouteDirection(item);
|
Location loc = helper.getLocationFromRouteDirection(item);
|
||||||
if(loc != null){
|
if(loc != null){
|
||||||
MapRouteInfoControl.directionInfo = position - 1;
|
MapRouteInfoMenu.directionInfo = position - 1;
|
||||||
OsmandSettings settings = ((OsmandApplication) getApplication()).getSettings();
|
OsmandSettings settings = ((OsmandApplication) getApplication()).getSettings();
|
||||||
settings.setMapLocationToShow(loc.getLatitude(),loc.getLongitude(),
|
settings.setMapLocationToShow(loc.getLatitude(),loc.getLongitude(),
|
||||||
Math.max(13, settings.getLastKnownMapZoom()),
|
Math.max(13, settings.getLastKnownMapZoom()),
|
||||||
|
|
|
@ -362,7 +362,6 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
|
||||||
if (loc != null && loc.hasAltitude()) {
|
if (loc != null && loc.hasAltitude()) {
|
||||||
double alt = loc.getAltitude();
|
double alt = loc.getAltitude();
|
||||||
String altString = (int) (Math.abs(alt) * 100.0) + "/100";
|
String altString = (int) (Math.abs(alt) * 100.0) + "/100";
|
||||||
System.err.println(altString);
|
|
||||||
setAttribute.invoke(exInstance, "GPSAltitude", altString);
|
setAttribute.invoke(exInstance, "GPSAltitude", altString);
|
||||||
setAttribute.invoke(exInstance, "GPSAltitudeRef", alt < 0 ? "1" : "0");
|
setAttribute.invoke(exInstance, "GPSAltitudeRef", alt < 0 ? "1" : "0");
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,6 @@ import android.graphics.PorterDuff;
|
||||||
import android.graphics.PorterDuffColorFilter;
|
import android.graphics.PorterDuffColorFilter;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.util.DisplayMetrics;
|
|
||||||
|
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
|
||||||
|
@ -36,30 +35,22 @@ public class FavoriteImageDrawable extends Drawable {
|
||||||
this.withShadow = withShadow;
|
this.withShadow = withShadow;
|
||||||
this.resources = ctx.getResources();
|
this.resources = ctx.getResources();
|
||||||
this.color = color;
|
this.color = color;
|
||||||
paintIcon = new Paint();
|
|
||||||
int col = color == 0 || color == Color.BLACK ? getResources().getColor(R.color.color_favorite) : color;
|
|
||||||
paintIcon.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.SRC_IN));
|
|
||||||
paintBackground = new Paint();
|
paintBackground = new Paint();
|
||||||
|
int col = color == 0 || color == Color.BLACK ? getResources().getColor(R.color.color_favorite) : color;
|
||||||
|
paintBackground.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.MULTIPLY));
|
||||||
|
paintIcon = new Paint();
|
||||||
favIcon = BitmapFactory.decodeResource(ctx.getResources(), R.drawable.map_favorite);
|
favIcon = BitmapFactory.decodeResource(ctx.getResources(), R.drawable.map_favorite);
|
||||||
favBackground = BitmapFactory.decodeResource(ctx.getResources(), R.drawable.map_white_favorite_shield);
|
favBackground = BitmapFactory.decodeResource(ctx.getResources(), R.drawable.map_white_favorite_shield);
|
||||||
|
|
||||||
|
|
||||||
listDrawable = getResources().getDrawable(R.drawable.ic_action_fav_dark).mutate();
|
listDrawable = getResources().getDrawable(R.drawable.ic_action_fav_dark).mutate();
|
||||||
listDrawable.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.SRC_IN));
|
|
||||||
DisplayMetrics metrics = getResources().getDisplayMetrics();
|
|
||||||
paintOuter = new Paint();
|
paintOuter = new Paint();
|
||||||
paintOuter.setAntiAlias(true);
|
paintOuter.setAntiAlias(true);
|
||||||
paintOuter.setStyle(Style.FILL_AND_STROKE);
|
paintOuter.setStyle(Style.FILL_AND_STROKE);
|
||||||
paintInnerCircle = new Paint();
|
paintInnerCircle = new Paint();
|
||||||
paintInnerCircle.setStyle(Style.FILL_AND_STROKE);
|
paintInnerCircle.setStyle(Style.FILL_AND_STROKE);
|
||||||
if(metrics != null && metrics.density > 0) {
|
paintOuter.setColor(color == 0 || color == Color.BLACK ? 0x88555555 : color);
|
||||||
paintOuter.setStrokeWidth(metrics.density * 1);
|
paintInnerCircle.setColor(color == 0 || color == Color.BLACK ? getResources().getColor(R.color.color_favorite)
|
||||||
} else {
|
: color);
|
||||||
paintOuter.setStrokeWidth(1);
|
|
||||||
}
|
|
||||||
// paintOuter.setColor(color == 0 || color == Color.BLACK ? 0x88555555 : color);
|
|
||||||
paintOuter.setColor(0xffbbbbbb);
|
|
||||||
paintInnerCircle.setColor(Color.WHITE);
|
|
||||||
paintInnerCircle.setAntiAlias(true);
|
paintInnerCircle.setAntiAlias(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -433,7 +433,7 @@ public class SearchHistoryHelper {
|
||||||
st.put(p, e);
|
st.put(p, e);
|
||||||
} while (query.moveToNext());
|
} while (query.moveToNext());
|
||||||
if(reinsert) {
|
if(reinsert) {
|
||||||
System.err.println("Reinsert all values");
|
System.err.println("Reinsert all values for search history");
|
||||||
db.execSQL("DELETE FROM " + HISTORY_TABLE_NAME); //$NON-NLS-1$
|
db.execSQL("DELETE FROM " + HISTORY_TABLE_NAME); //$NON-NLS-1$
|
||||||
entries.clear();
|
entries.clear();
|
||||||
entries.addAll(st.values());
|
entries.addAll(st.values());
|
||||||
|
|
|
@ -5,12 +5,13 @@ import android.content.DialogInterface;
|
||||||
import android.content.DialogInterface.OnDismissListener;
|
import android.content.DialogInterface.OnDismissListener;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.support.v4.app.Fragment;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
import android.widget.AdapterView.OnItemClickListener;
|
import android.widget.AdapterView.OnItemClickListener;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
@ -21,10 +22,9 @@ import net.osmand.data.LatLon;
|
||||||
import net.osmand.data.PointDescription;
|
import net.osmand.data.PointDescription;
|
||||||
import net.osmand.data.RotatedTileBox;
|
import net.osmand.data.RotatedTileBox;
|
||||||
import net.osmand.plus.ApplicationMode;
|
import net.osmand.plus.ApplicationMode;
|
||||||
|
import net.osmand.plus.IconsCache;
|
||||||
import net.osmand.plus.OsmAndFormatter;
|
import net.osmand.plus.OsmAndFormatter;
|
||||||
import net.osmand.plus.OsmAndLocationProvider;
|
|
||||||
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.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.TargetPointsHelper;
|
import net.osmand.plus.TargetPointsHelper;
|
||||||
|
@ -34,7 +34,6 @@ import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.activities.ShowRouteInfoActivity;
|
import net.osmand.plus.activities.ShowRouteInfoActivity;
|
||||||
import net.osmand.plus.activities.actions.AppModeDialog;
|
import net.osmand.plus.activities.actions.AppModeDialog;
|
||||||
import net.osmand.plus.activities.search.SearchAddressActivity;
|
import net.osmand.plus.activities.search.SearchAddressActivity;
|
||||||
import net.osmand.plus.development.OsmandDevelopmentPlugin;
|
|
||||||
import net.osmand.plus.dialogs.FavoriteDialogs;
|
import net.osmand.plus.dialogs.FavoriteDialogs;
|
||||||
import net.osmand.plus.mapcontextmenu.MapContextMenu;
|
import net.osmand.plus.mapcontextmenu.MapContextMenu;
|
||||||
import net.osmand.plus.routing.RouteDirectionInfo;
|
import net.osmand.plus.routing.RouteDirectionInfo;
|
||||||
|
@ -43,27 +42,27 @@ import net.osmand.plus.routing.RoutingHelper.IRouteInformationListener;
|
||||||
import net.osmand.plus.views.MapControlsLayer;
|
import net.osmand.plus.views.MapControlsLayer;
|
||||||
import net.osmand.plus.views.OsmandMapTileView;
|
import net.osmand.plus.views.OsmandMapTileView;
|
||||||
|
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class MapRouteInfoControl implements IRouteInformationListener {
|
public class MapRouteInfoMenu implements IRouteInformationListener {
|
||||||
public static int directionInfo = -1;
|
public static int directionInfo = -1;
|
||||||
public static boolean controlVisible = false;
|
public static boolean controlVisible = false;
|
||||||
private final MapContextMenu contextMenu;
|
private final MapContextMenu contextMenu;
|
||||||
private final RoutingHelper routingHelper;
|
private final RoutingHelper routingHelper;
|
||||||
private OsmandMapTileView mapView;
|
private OsmandMapTileView mapView;
|
||||||
private Dialog dialog;
|
|
||||||
private boolean selectFromMapTouch;
|
private boolean selectFromMapTouch;
|
||||||
private boolean selectFromMapForTarget;
|
private boolean selectFromMapForTarget;
|
||||||
|
|
||||||
private boolean showDialog = false;
|
private boolean showMenu = false;
|
||||||
private MapActivity mapActivity;
|
private MapActivity mapActivity;
|
||||||
private MapControlsLayer mapControlsLayer;
|
private MapControlsLayer mapControlsLayer;
|
||||||
public static final String TARGET_SELECT = "TARGET_SELECT";
|
public static final String TARGET_SELECT = "TARGET_SELECT";
|
||||||
|
|
||||||
public MapRouteInfoControl(MapActivity mapActivity, MapControlsLayer mapControlsLayer) {
|
public MapRouteInfoMenu(MapActivity mapActivity, MapControlsLayer mapControlsLayer) {
|
||||||
this.mapActivity = mapActivity;
|
this.mapActivity = mapActivity;
|
||||||
this.mapControlsLayer = mapControlsLayer;
|
this.mapControlsLayer = mapControlsLayer;
|
||||||
contextMenu = mapActivity.getContextMenu();
|
contextMenu = mapActivity.getContextMenu();
|
||||||
|
@ -73,59 +72,57 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
|
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
|
||||||
if(selectFromMapTouch) {
|
if (selectFromMapTouch) {
|
||||||
LatLon latlon = tileBox.getLatLonFromPixel(point.x, point.y);
|
LatLon latlon = tileBox.getLatLonFromPixel(point.x, point.y);
|
||||||
selectFromMapTouch = false;
|
selectFromMapTouch = false;
|
||||||
if(selectFromMapForTarget) {
|
if (selectFromMapForTarget) {
|
||||||
getTargets().navigateToPoint(latlon, true, -1);
|
getTargets().navigateToPoint(latlon, true, -1);
|
||||||
} else {
|
} else {
|
||||||
getTargets().setStartPoint(latlon, true, null);
|
getTargets().setStartPoint(latlon, true, null);
|
||||||
}
|
}
|
||||||
contextMenu.showMinimized(latlon, null, null);
|
contextMenu.showMinimized(latlon, null, null);
|
||||||
showDialog();
|
show();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVisible(boolean visible) {
|
public void setVisible(boolean visible) {
|
||||||
if(visible) {
|
if (visible) {
|
||||||
if (showDialog){
|
if (showMenu) {
|
||||||
//if (getTargets().getPointToNavigate() == null){
|
show();
|
||||||
showDialog();
|
showMenu = false;
|
||||||
//}
|
|
||||||
showDialog = false;
|
|
||||||
}
|
}
|
||||||
controlVisible = true;
|
controlVisible = true;
|
||||||
} else {
|
} else {
|
||||||
hideDialog();
|
hide();
|
||||||
controlVisible = false;
|
controlVisible = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void showHideDialog() {
|
public void showHideMenu() {
|
||||||
if(dialog != null) {
|
if (isVisible()) {
|
||||||
hideDialog();
|
hide();
|
||||||
} else {
|
} else {
|
||||||
showDialog();
|
show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateDialog() {
|
public void updateMenu() {
|
||||||
if(dialog != null) {
|
WeakReference<MapRouteInfoMenuFragment> fragmentRef = findMenuFragment();
|
||||||
updateInfo(dialog.findViewById(R.id.plan_route_info));
|
if (fragmentRef != null)
|
||||||
}
|
fragmentRef.get().updateInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateInfo(final View main) {
|
public void updateInfo(final View main) {
|
||||||
updateViaView(main);
|
updateViaView(main);
|
||||||
updateFromSpinner(main);
|
updateFromSpinner(main);
|
||||||
updateToSpinner(main);
|
updateToSpinner(main);
|
||||||
updateApplicationModes(main);
|
updateApplicationModes(main);
|
||||||
mapControlsLayer.updateRouteButtons(main, true);
|
mapControlsLayer.updateRouteButtons(main, true);
|
||||||
boolean addButtons = routingHelper.isRouteCalculated();
|
boolean addButtons = routingHelper.isRouteCalculated();
|
||||||
if(addButtons) {
|
if (addButtons) {
|
||||||
updateRouteButtons(main);
|
updateRouteButtons(main);
|
||||||
} else {
|
} else {
|
||||||
updateRouteCalcProgress(main);
|
updateRouteCalcProgress(main);
|
||||||
|
@ -134,7 +131,7 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
|
|
||||||
private void updateRouteCalcProgress(final View main) {
|
private void updateRouteCalcProgress(final View main) {
|
||||||
TargetPointsHelper targets = getTargets();
|
TargetPointsHelper targets = getTargets();
|
||||||
if(targets.hasTooLongDistanceToNavigate()) {
|
if (targets.hasTooLongDistanceToNavigate()) {
|
||||||
main.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE);
|
main.findViewById(R.id.RouteInfoControls).setVisibility(View.VISIBLE);
|
||||||
TextView textView = (TextView) main.findViewById(R.id.InfoTextView);
|
TextView textView = (TextView) main.findViewById(R.id.InfoTextView);
|
||||||
ImageView iconView = (ImageView) main.findViewById(R.id.InfoIcon);
|
ImageView iconView = (ImageView) main.findViewById(R.id.InfoIcon);
|
||||||
|
@ -143,7 +140,7 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
textView.setText(R.string.route_is_too_long);
|
textView.setText(R.string.route_is_too_long);
|
||||||
textView.setVisibility(View.VISIBLE);
|
textView.setVisibility(View.VISIBLE);
|
||||||
iconView.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_warning));
|
iconView.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_warning));
|
||||||
} else{
|
} else {
|
||||||
main.findViewById(R.id.RouteInfoControls).setVisibility(View.GONE);
|
main.findViewById(R.id.RouteInfoControls).setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -151,7 +148,7 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
private void updateApplicationModes(final View parentView) {
|
private void updateApplicationModes(final View parentView) {
|
||||||
final OsmandSettings settings = mapActivity.getMyApplication().getSettings();
|
final OsmandSettings settings = mapActivity.getMyApplication().getSettings();
|
||||||
ApplicationMode am = settings.APPLICATION_MODE.get();
|
ApplicationMode am = settings.APPLICATION_MODE.get();
|
||||||
final Set<ApplicationMode> selected = new HashSet<ApplicationMode>();
|
final Set<ApplicationMode> selected = new HashSet<>();
|
||||||
selected.add(am);
|
selected.add(am);
|
||||||
ViewGroup vg = (ViewGroup) parentView.findViewById(R.id.app_modes);
|
ViewGroup vg = (ViewGroup) parentView.findViewById(R.id.app_modes);
|
||||||
vg.removeAllViews();
|
vg.removeAllViews();
|
||||||
|
@ -165,17 +162,26 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
mapActivity.getRoutingHelper().recalculateRouteDueToSettingsChange();
|
mapActivity.getRoutingHelper().recalculateRouteDueToSettingsChange();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateViaView(final View parentView) {
|
private void updateViaView(final View parentView) {
|
||||||
String via = generateViaDescription();
|
String via = generateViaDescription();
|
||||||
if(via.length() == 0){
|
if (via.length() == 0) {
|
||||||
parentView.findViewById(R.id.ViaLayout).setVisibility(View.GONE);
|
parentView.findViewById(R.id.ViaLayout).setVisibility(View.GONE);
|
||||||
|
parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
parentView.findViewById(R.id.ViaLayout).setVisibility(View.VISIBLE);
|
parentView.findViewById(R.id.ViaLayout).setVisibility(View.VISIBLE);
|
||||||
|
parentView.findViewById(R.id.viaLayoutDivider).setVisibility(View.VISIBLE);
|
||||||
((TextView) parentView.findViewById(R.id.ViaView)).setText(via);
|
((TextView) parentView.findViewById(R.id.ViaView)).setText(via);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImageView viaIcon = (ImageView) parentView.findViewById(R.id.viaIcon);
|
||||||
|
if (isLight()) {
|
||||||
|
viaIcon.setImageDrawable(getIconOrig(R.drawable.widget_intermediate_day));
|
||||||
|
} else {
|
||||||
|
viaIcon.setImageDrawable(getIconOrig(R.drawable.widget_intermediate_night));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateToSpinner(final View parentView) {
|
private void updateToSpinner(final View parentView) {
|
||||||
|
@ -183,11 +189,11 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
toSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
toSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||||
if(position == 1) {
|
if (position == 1) {
|
||||||
selectFavorite(parentView, true);
|
selectFavorite(parentView, true);
|
||||||
} else if(position == 2) {
|
} else if (position == 2) {
|
||||||
selectOnScreen(parentView, true);
|
selectOnScreen(true);
|
||||||
} else if(position == 3) {
|
} else if (position == 3) {
|
||||||
Intent intent = new Intent(mapActivity, SearchAddressActivity.class);
|
Intent intent = new Intent(mapActivity, SearchAddressActivity.class);
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||||
intent.putExtra(TARGET_SELECT, true);
|
intent.putExtra(TARGET_SELECT, true);
|
||||||
|
@ -199,8 +205,25 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
public void onNothingSelected(AdapterView<?> parent) {
|
public void onNothingSelected(AdapterView<?> parent) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ImageView toIcon = (ImageView) parentView.findViewById(R.id.toIcon);
|
||||||
|
if (isLight()) {
|
||||||
|
toIcon.setImageDrawable(getIconOrig(R.drawable.widget_target_day));
|
||||||
|
} else {
|
||||||
|
toIcon.setImageDrawable(getIconOrig(R.drawable.widget_target_night));
|
||||||
|
}
|
||||||
|
|
||||||
|
ImageView toDropDownIcon = (ImageView) parentView.findViewById(R.id.toDropDownIcon);
|
||||||
|
toDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down));
|
||||||
|
toDropDownIcon.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
toSpinner.performClick();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
private void updateFromSpinner(final View parentView) {
|
private void updateFromSpinner(final View parentView) {
|
||||||
final TargetPointsHelper targets = getTargets();
|
final TargetPointsHelper targets = getTargets();
|
||||||
final Spinner fromSpinner = setupFromSpinner(parentView);
|
final Spinner fromSpinner = setupFromSpinner(parentView);
|
||||||
|
@ -208,15 +231,15 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||||
if(position == 0) {
|
if (position == 0) {
|
||||||
if(targets.getPointToStart() != null) {
|
if (targets.getPointToStart() != null) {
|
||||||
targets.clearStartPoint(true);
|
targets.clearStartPoint(true);
|
||||||
}
|
}
|
||||||
} else if(position == 1) {
|
} else if (position == 1) {
|
||||||
selectFavorite(parentView, false);
|
selectFavorite(parentView, false);
|
||||||
} else if(position == 2) {
|
} else if (position == 2) {
|
||||||
selectOnScreen(parentView, false);
|
selectOnScreen(false);
|
||||||
} else if(position == 3) {
|
} else if (position == 3) {
|
||||||
Intent intent = new Intent(mapActivity, SearchAddressActivity.class);
|
Intent intent = new Intent(mapActivity, SearchAddressActivity.class);
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||||
intent.putExtra(TARGET_SELECT, false);
|
intent.putExtra(TARGET_SELECT, false);
|
||||||
|
@ -228,23 +251,36 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
public void onNothingSelected(AdapterView<?> parent) {
|
public void onNothingSelected(AdapterView<?> parent) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ImageView fromIcon = (ImageView) parentView.findViewById(R.id.fromIcon);
|
||||||
|
ApplicationMode appMode = mapActivity.getMyApplication().getSettings().getApplicationMode();
|
||||||
|
fromIcon.setImageDrawable(mapActivity.getResources().getDrawable(appMode.getResourceLocationDay()));
|
||||||
|
|
||||||
|
ImageView fromDropDownIcon = (ImageView) parentView.findViewById(R.id.fromDropDownIcon);
|
||||||
|
fromDropDownIcon.setImageDrawable(mapActivity.getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_arrow_drop_down));
|
||||||
|
fromDropDownIcon.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
fromSpinner.performClick();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void selectOnScreen(View parentView, boolean target) {
|
protected void selectOnScreen(boolean target) {
|
||||||
selectFromMapTouch = true;
|
selectFromMapTouch = true;
|
||||||
selectFromMapForTarget = target;
|
selectFromMapForTarget = target;
|
||||||
hideDialog();
|
hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void selectAddress(String name, LatLon l, final boolean target) {
|
public void selectAddress(String name, LatLon l, final boolean target) {
|
||||||
PointDescription pd = new PointDescription(PointDescription.POINT_TYPE_ADDRESS, name);
|
PointDescription pd = new PointDescription(PointDescription.POINT_TYPE_ADDRESS, name);
|
||||||
if(target) {
|
if (target) {
|
||||||
getTargets().navigateToPoint(l, true, -1, pd);
|
getTargets().navigateToPoint(l, true, -1, pd);
|
||||||
} else {
|
} else {
|
||||||
getTargets().setStartPoint(l, true, pd);
|
getTargets().setStartPoint(l, true, pd);
|
||||||
}
|
}
|
||||||
hideDialog();
|
hide();
|
||||||
showDialog();
|
show();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void selectFavorite(final View parentView, final boolean target) {
|
protected void selectFavorite(final View parentView, final boolean target) {
|
||||||
|
@ -267,26 +303,34 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
FavoriteDialogs.showFavoritesDialog(mapActivity, favouritesAdapter, click, dismissListener, dlgHolder, true);
|
FavoriteDialogs.showFavoritesDialog(mapActivity, favouritesAdapter, click, dismissListener, dlgHolder, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isLight() {
|
||||||
|
return mapActivity.getMyApplication().getSettings().isLightContent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Drawable getIconOrig(int iconId) {
|
||||||
|
IconsCache iconsCache = mapActivity.getMyApplication().getIconsCache();
|
||||||
|
return iconsCache.getIcon(iconId, 0, 0f);
|
||||||
|
}
|
||||||
|
|
||||||
private OnItemClickListener getOnClickListener(final boolean target, final FavouritesAdapter favouritesAdapter,
|
private OnItemClickListener getOnClickListener(final boolean target, final FavouritesAdapter favouritesAdapter,
|
||||||
final Dialog[] dlg) {
|
final Dialog[] dlg) {
|
||||||
return new AdapterView.OnItemClickListener() {
|
return new AdapterView.OnItemClickListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||||
FavouritePoint fp = favouritesAdapter.getItem(position);
|
FavouritePoint fp = favouritesAdapter.getItem(position);
|
||||||
LatLon point = new LatLon(fp.getLatitude(), fp.getLongitude());
|
LatLon point = new LatLon(fp.getLatitude(), fp.getLongitude());
|
||||||
if(target) {
|
if (target) {
|
||||||
getTargets().navigateToPoint(point, true, -1, fp.getPointDescription());
|
getTargets().navigateToPoint(point, true, -1, fp.getPointDescription());
|
||||||
} else {
|
} else {
|
||||||
getTargets().setStartPoint(point, true, fp.getPointDescription());
|
getTargets().setStartPoint(point, true, fp.getPointDescription());
|
||||||
}
|
}
|
||||||
if(dlg != null && dlg.length > 0 && dlg[0] != null) {
|
if (dlg != null && dlg.length > 0 && dlg[0] != null) {
|
||||||
dlg[0].dismiss();
|
dlg[0].dismiss();
|
||||||
}
|
}
|
||||||
//Next 2 lines ensure Dialog is shown in the right correct position after a selection been made
|
//Next 2 lines ensure Dialog is shown in the right correct position after a selection been made
|
||||||
hideDialog();
|
hide();
|
||||||
showDialog();
|
show();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -295,8 +339,17 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
return directionInfo;
|
return directionInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isDialogVisible() {
|
public boolean isVisible() {
|
||||||
return dialog != null && dialog.isShowing();
|
return findMenuFragment() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WeakReference<MapRouteInfoMenuFragment> findMenuFragment() {
|
||||||
|
Fragment fragment = mapActivity.getSupportFragmentManager().findFragmentByTag(MapRouteInfoMenuFragment.TAG);
|
||||||
|
if (fragment != null && !fragment.isDetached()) {
|
||||||
|
return new WeakReference<>((MapRouteInfoMenuFragment) fragment);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isControlVisible() {
|
public static boolean isControlVisible() {
|
||||||
|
@ -337,10 +390,10 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
ImageView next = (ImageView) mainView.findViewById(R.id.Next);
|
ImageView next = (ImageView) mainView.findViewById(R.id.Next);
|
||||||
next.setVisibility(View.VISIBLE);
|
next.setVisibility(View.VISIBLE);
|
||||||
next.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_next));
|
next.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_next));
|
||||||
next.setOnClickListener(new View.OnClickListener(){
|
next.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if(routingHelper.getRouteDirections() != null && directionInfo < routingHelper.getRouteDirections().size() - 1){
|
if (routingHelper.getRouteDirections() != null && directionInfo < routingHelper.getRouteDirections().size() - 1) {
|
||||||
directionInfo++;
|
directionInfo++;
|
||||||
RouteDirectionInfo info = routingHelper.getRouteDirections().get(directionInfo);
|
RouteDirectionInfo info = routingHelper.getRouteDirections().get(directionInfo);
|
||||||
net.osmand.Location l = routingHelper.getLocationFromRouteDirection(info);
|
net.osmand.Location l = routingHelper.getLocationFromRouteDirection(info);
|
||||||
|
@ -353,7 +406,7 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
|
|
||||||
});
|
});
|
||||||
View info = mainView.findViewById(R.id.Info);
|
View info = mainView.findViewById(R.id.Info);
|
||||||
info.setOnClickListener(new View.OnClickListener(){
|
info.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
Intent intent = new Intent(mapView.getContext(), ShowRouteInfoActivity.class);
|
Intent intent = new Intent(mapView.getContext(), ShowRouteInfoActivity.class);
|
||||||
|
@ -364,7 +417,7 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
|
|
||||||
TextView textView = (TextView) mainView.findViewById(R.id.InfoTextView);
|
TextView textView = (TextView) mainView.findViewById(R.id.InfoTextView);
|
||||||
ImageView iconView = (ImageView) mainView.findViewById(R.id.InfoIcon);
|
ImageView iconView = (ImageView) mainView.findViewById(R.id.InfoIcon);
|
||||||
if(directionInfo >= 0) {
|
if (directionInfo >= 0) {
|
||||||
iconView.setVisibility(View.GONE);
|
iconView.setVisibility(View.GONE);
|
||||||
} else {
|
} else {
|
||||||
iconView.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_action_info_dark));
|
iconView.setImageDrawable(ctx.getIconsCache().getContentIcon(R.drawable.ic_action_info_dark));
|
||||||
|
@ -379,58 +432,29 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Button attachSimulateRoute(final View mainView, final OsmandApplication ctx) {
|
|
||||||
final Button simulateRoute = null;//(Button) mainView.findViewById(R.id.SimulateRoute);
|
|
||||||
final OsmAndLocationProvider loc = ctx.getLocationProvider();
|
|
||||||
if(mapActivity.getRoutingHelper().isFollowingMode()) {
|
|
||||||
simulateRoute.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
if (OsmandPlugin.getEnabledPlugin(OsmandDevelopmentPlugin.class) == null) {
|
|
||||||
simulateRoute.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
simulateRoute.setText(loc.getLocationSimulation().isRouteAnimating() ? R.string.animate_route_off : R.string.animate_route);
|
|
||||||
simulateRoute.setOnClickListener(new View.OnClickListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
mainView.findViewById(R.id.RouteInfoControls).setVisibility(View.GONE);
|
|
||||||
if(loc.getLocationSimulation().isRouteAnimating()) {
|
|
||||||
loc.getLocationSimulation().startStopRouteAnimation(mapActivity);
|
|
||||||
hideDialog();
|
|
||||||
} else {
|
|
||||||
simulateRoute.setText(R.string.animate_route_off);
|
|
||||||
loc.getLocationSimulation().startStopRouteAnimation(mapActivity);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return simulateRoute;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void newRouteIsCalculated(boolean newRoute, ValueHolder<Boolean> showToast) {
|
public void newRouteIsCalculated(boolean newRoute, ValueHolder<Boolean> showToast) {
|
||||||
directionInfo = -1;
|
directionInfo = -1;
|
||||||
updateDialog();
|
updateMenu();
|
||||||
if(isDialogVisible()) {
|
if (isVisible()) {
|
||||||
showToast.value = false;
|
showToast.value = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String generateViaDescription() {
|
public String generateViaDescription() {
|
||||||
TargetPointsHelper targets = getTargets();
|
TargetPointsHelper targets = getTargets();
|
||||||
String via = "";
|
|
||||||
List<TargetPoint> points = targets.getIntermediatePointsNavigation();
|
List<TargetPoint> points = targets.getIntermediatePointsNavigation();
|
||||||
if (points.size() == 0) {
|
if (points.size() == 0) {
|
||||||
return via;
|
return "";
|
||||||
}
|
}
|
||||||
|
StringBuilder via = new StringBuilder();
|
||||||
for (int i = 0; i < points.size(); i++) {
|
for (int i = 0; i < points.size(); i++) {
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
via += "\n";
|
via.append(" ");
|
||||||
}
|
}
|
||||||
via += " " + getRoutePointDescription(points.get(i).point, points.get(i).getOnlyName());
|
via.append(getRoutePointDescription(points.get(i).point, points.get(i).getOnlyName()));
|
||||||
}
|
}
|
||||||
return via;
|
return via.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRoutePointDescription(double lat, double lon) {
|
public String getRoutePointDescription(double lat, double lon) {
|
||||||
|
@ -438,17 +462,17 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRoutePointDescription(LatLon l, String d) {
|
public String getRoutePointDescription(LatLon l, String d) {
|
||||||
if(d != null && d.length() > 0) {
|
if (d != null && d.length() > 0) {
|
||||||
return d.replace(':', ' ');
|
return d.replace(':', ' ');
|
||||||
}
|
}
|
||||||
if(l != null) {
|
if (l != null) {
|
||||||
return mapActivity.getString(R.string.route_descr_lat_lon, l.getLatitude(), l.getLongitude());
|
return mapActivity.getString(R.string.route_descr_lat_lon, l.getLatitude(), l.getLongitude());
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
private Spinner setupFromSpinner( View view) {
|
private Spinner setupFromSpinner(View view) {
|
||||||
ArrayList<String> fromActions = new ArrayList<String>();
|
ArrayList<String> fromActions = new ArrayList<>();
|
||||||
fromActions.add(mapActivity.getString(R.string.route_descr_current_location));
|
fromActions.add(mapActivity.getString(R.string.route_descr_current_location));
|
||||||
fromActions.add(mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis));
|
fromActions.add(mapActivity.getString(R.string.shared_string_favorite) + mapActivity.getString(R.string.shared_string_ellipsis));
|
||||||
fromActions.add(mapActivity.getString(R.string.shared_string_select_on_map));
|
fromActions.add(mapActivity.getString(R.string.shared_string_select_on_map));
|
||||||
|
@ -461,16 +485,16 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
fromActions.add(oname);
|
fromActions.add(oname);
|
||||||
}
|
}
|
||||||
final Spinner fromSpinner = ((Spinner) view.findViewById(R.id.FromSpinner));
|
final Spinner fromSpinner = ((Spinner) view.findViewById(R.id.FromSpinner));
|
||||||
ArrayAdapter<String> fromAdapter = new ArrayAdapter<String>(view.getContext(),
|
ArrayAdapter<String> fromAdapter = new ArrayAdapter<>(view.getContext(),
|
||||||
android.R.layout.simple_spinner_item,
|
android.R.layout.simple_spinner_item,
|
||||||
fromActions
|
fromActions
|
||||||
);
|
);
|
||||||
fromAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
fromAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||||
fromSpinner.setAdapter(fromAdapter);
|
fromSpinner.setAdapter(fromAdapter);
|
||||||
if(start != null) {
|
if (start != null) {
|
||||||
fromSpinner.setSelection(fromActions.size() - 1);
|
fromSpinner.setSelection(fromActions.size() - 1);
|
||||||
} else {
|
} else {
|
||||||
if(mapActivity.getMyApplication().getLocationProvider().getLastKnownLocation() == null) {
|
if (mapActivity.getMyApplication().getLocationProvider().getLastKnownLocation() == null) {
|
||||||
fromSpinner.setPromptId(R.string.search_poi_location);
|
fromSpinner.setPromptId(R.string.search_poi_location);
|
||||||
}
|
}
|
||||||
//fromSpinner.setSelection(0);
|
//fromSpinner.setSelection(0);
|
||||||
|
@ -481,11 +505,11 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
private Spinner setupToSpinner(View view) {
|
private Spinner setupToSpinner(View view) {
|
||||||
final Spinner toSpinner = ((Spinner) view.findViewById(R.id.ToSpinner));
|
final Spinner toSpinner = ((Spinner) view.findViewById(R.id.ToSpinner));
|
||||||
final TargetPointsHelper targets = getTargets();
|
final TargetPointsHelper targets = getTargets();
|
||||||
ArrayList<String> toActions = new ArrayList<String>();
|
ArrayList<String> toActions = new ArrayList<>();
|
||||||
if (targets.getPointToNavigate() != null) {
|
if (targets.getPointToNavigate() != null) {
|
||||||
toActions.add(mapActivity.getString(R.string.route_descr_destination) + " "
|
toActions.add(mapActivity.getString(R.string.route_descr_destination) + " "
|
||||||
+ getRoutePointDescription(targets.getPointToNavigate().point,
|
+ getRoutePointDescription(targets.getPointToNavigate().point,
|
||||||
targets.getPointToNavigate().getOnlyName()));
|
targets.getPointToNavigate().getOnlyName()));
|
||||||
} else {
|
} else {
|
||||||
toSpinner.setPromptId(R.string.route_descr_select_destination);
|
toSpinner.setPromptId(R.string.route_descr_select_destination);
|
||||||
toActions.add(mapActivity.getString(R.string.route_descr_select_destination));
|
toActions.add(mapActivity.getString(R.string.route_descr_select_destination));
|
||||||
|
@ -494,10 +518,10 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
toActions.add(mapActivity.getString(R.string.shared_string_select_on_map));
|
toActions.add(mapActivity.getString(R.string.shared_string_select_on_map));
|
||||||
toActions.add(mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis));
|
toActions.add(mapActivity.getString(R.string.shared_string_address) + mapActivity.getString(R.string.shared_string_ellipsis));
|
||||||
|
|
||||||
ArrayAdapter<String> toAdapter = new ArrayAdapter<String>(view.getContext(),
|
ArrayAdapter<String> toAdapter = new ArrayAdapter<>(view.getContext(),
|
||||||
android.R.layout.simple_spinner_item,
|
android.R.layout.simple_spinner_item,
|
||||||
toActions
|
toActions
|
||||||
);
|
);
|
||||||
toAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
toAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||||
toSpinner.setAdapter(toAdapter);
|
toSpinner.setAdapter(toAdapter);
|
||||||
return toSpinner;
|
return toSpinner;
|
||||||
|
@ -510,36 +534,22 @@ public class MapRouteInfoControl implements IRouteInformationListener {
|
||||||
@Override
|
@Override
|
||||||
public void routeWasCancelled() {
|
public void routeWasCancelled() {
|
||||||
directionInfo = -1;
|
directionInfo = -1;
|
||||||
// do not hide dialog (needed for use case entering Planning mode without destination)
|
// do not hide fragment (needed for use case entering Planning mode without destination)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void showDialog() {
|
public void show() {
|
||||||
final View ll = mapActivity.getLayoutInflater().inflate(R.layout.plan_route_info, null);
|
MapRouteInfoMenuFragment.showInstance(mapActivity);
|
||||||
updateInfo(ll);
|
|
||||||
dialog = MapRoutePreferencesControl.showDialog(mapControlsLayer, mapActivity, ll, new OnDismissListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDismiss(DialogInterface d) {
|
|
||||||
dialog = null;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void hideDialog() {
|
public void hide() {
|
||||||
Dialog dialog = this.dialog;
|
WeakReference<MapRouteInfoMenuFragment> fragmentRef = findMenuFragment();
|
||||||
if (dialog != null) {
|
if (fragmentRef != null) {
|
||||||
if(dialog instanceof MapRoutePreferencesControl.RoutePrepareDialog &&
|
fragmentRef.get().dismiss();
|
||||||
((MapRoutePreferencesControl.RoutePrepareDialog) dialog).getListener() != null) {
|
|
||||||
((MapRoutePreferencesControl.RoutePrepareDialog) dialog).getListener().onDismiss(dialog);
|
|
||||||
((MapRoutePreferencesControl.RoutePrepareDialog) dialog).cancelDismissListener();
|
|
||||||
}
|
|
||||||
dialog.dismiss();
|
|
||||||
this.dialog = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setShowDialog() {
|
public void setShowMenu() {
|
||||||
showDialog = true;
|
showMenu = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,109 @@
|
||||||
|
package net.osmand.plus.mapcontextmenu.other;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.support.v4.app.FragmentActivity;
|
||||||
|
import android.support.v4.app.FragmentManager;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.activities.MapActivity;
|
||||||
|
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||||
|
|
||||||
|
public class MapRouteInfoMenuFragment extends Fragment {
|
||||||
|
public static final String TAG = "MapRouteInfoMenuFragment";
|
||||||
|
|
||||||
|
private MapRouteInfoMenu menu;
|
||||||
|
private View mainView;
|
||||||
|
|
||||||
|
private MapActivity getMapActivity() {
|
||||||
|
return (MapActivity) getActivity();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
MapActivity mapActivity = getMapActivity();
|
||||||
|
|
||||||
|
menu = mapActivity.getMapLayers().getMapControlsLayer().getMapRouteInfoMenu();
|
||||||
|
View view = inflater.inflate(R.layout.plan_route_info, container, false);
|
||||||
|
if (menu == null) {
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
view.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
dismiss();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mainView = view.findViewById(R.id.main_view);
|
||||||
|
updateInfo();
|
||||||
|
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
if (menu == null) {
|
||||||
|
dismiss();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateInfo() {
|
||||||
|
menu.updateInfo(mainView);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void show(MapActivity mapActivity) {
|
||||||
|
int slideInAnim = R.anim.slide_in_bottom;
|
||||||
|
int slideOutAnim = R.anim.slide_out_bottom;
|
||||||
|
|
||||||
|
mapActivity.getSupportFragmentManager().beginTransaction()
|
||||||
|
.setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim)
|
||||||
|
.add(R.id.routeMenuContainer, this, TAG)
|
||||||
|
.addToBackStack(TAG)
|
||||||
|
.commitAllowingStateLoss();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dismiss() {
|
||||||
|
FragmentActivity activity = getActivity();
|
||||||
|
if (activity != null) {
|
||||||
|
try {
|
||||||
|
activity.getSupportFragmentManager().popBackStack(TAG,
|
||||||
|
FragmentManager.POP_BACK_STACK_INCLUSIVE);
|
||||||
|
} catch (Exception e) {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean showInstance(final MapActivity mapActivity) {
|
||||||
|
try {
|
||||||
|
boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
|
||||||
|
int slideInAnim;
|
||||||
|
int slideOutAnim;
|
||||||
|
if (portrait) {
|
||||||
|
slideInAnim = R.anim.slide_in_bottom;
|
||||||
|
slideOutAnim = R.anim.slide_out_bottom;
|
||||||
|
} else {
|
||||||
|
slideInAnim = R.anim.slide_in_left;
|
||||||
|
slideOutAnim = R.anim.slide_out_left;
|
||||||
|
}
|
||||||
|
|
||||||
|
MapRouteInfoMenuFragment fragment = new MapRouteInfoMenuFragment();
|
||||||
|
mapActivity.getSupportFragmentManager().beginTransaction()
|
||||||
|
.setCustomAnimations(slideInAnim, slideOutAnim, slideInAnim, slideOutAnim)
|
||||||
|
.add(R.id.routeMenuContainer, fragment, TAG)
|
||||||
|
.addToBackStack(TAG).commitAllowingStateLoss();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,8 +3,11 @@ package net.osmand.plus.views;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
|
import android.graphics.Color;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
||||||
|
import android.graphics.PorterDuff;
|
||||||
|
import android.graphics.PorterDuffColorFilter;
|
||||||
|
|
||||||
import net.osmand.data.FavouritePoint;
|
import net.osmand.data.FavouritePoint;
|
||||||
import net.osmand.data.LatLon;
|
import net.osmand.data.LatLon;
|
||||||
|
@ -33,6 +36,7 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer.
|
||||||
private MapTextLayer textLayer;
|
private MapTextLayer textLayer;
|
||||||
private Paint paintIcon;
|
private Paint paintIcon;
|
||||||
private Bitmap pointSmall;
|
private Bitmap pointSmall;
|
||||||
|
private int defaultColor;
|
||||||
|
|
||||||
private OsmandSettings settings;
|
private OsmandSettings settings;
|
||||||
|
|
||||||
|
@ -60,6 +64,7 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer.
|
||||||
textLayer = view.getLayerByClass(MapTextLayer.class);
|
textLayer = view.getLayerByClass(MapTextLayer.class);
|
||||||
paintIcon = new Paint();
|
paintIcon = new Paint();
|
||||||
pointSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_white_shield_small);
|
pointSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_white_shield_small);
|
||||||
|
defaultColor = view.getResources().getColor(R.color.color_favorite);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean calculateBelongs(int ex, int ey, int objx, int objy, int radius) {
|
private boolean calculateBelongs(int ex, int ey, int objx, int objy, int radius) {
|
||||||
|
@ -101,6 +106,8 @@ public class FavoritesLayer extends OsmandMapLayer implements ContextMenuLayer.
|
||||||
float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude());
|
float y = tileBox.getPixYFromLatLon(o.getLatitude(), o.getLongitude());
|
||||||
|
|
||||||
if (intersects(boundIntersections, x, y, iconSize, iconSize)) {
|
if (intersects(boundIntersections, x, y, iconSize, iconSize)) {
|
||||||
|
int col = o.getColor() == 0 || o.getColor() == Color.BLACK ? defaultColor : o.getColor();
|
||||||
|
paintIcon.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.MULTIPLY));
|
||||||
canvas.drawBitmap(pointSmall, x - pointSmall.getWidth() / 2, y - pointSmall.getHeight() / 2, paintIcon);
|
canvas.drawBitmap(pointSmall, x - pointSmall.getWidth() / 2, y - pointSmall.getHeight() / 2, paintIcon);
|
||||||
} else {
|
} else {
|
||||||
fullObjects.add(o);
|
fullObjects.add(o);
|
||||||
|
|
|
@ -10,6 +10,7 @@ import android.graphics.Paint.Align;
|
||||||
import android.graphics.Paint.Style;
|
import android.graphics.Paint.Style;
|
||||||
import android.graphics.Path;
|
import android.graphics.Path;
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
||||||
|
import android.graphics.PorterDuff;
|
||||||
import android.graphics.PorterDuff.Mode;
|
import android.graphics.PorterDuff.Mode;
|
||||||
import android.graphics.PorterDuffColorFilter;
|
import android.graphics.PorterDuffColorFilter;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
@ -294,6 +295,9 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex
|
||||||
float y = tileBox.getPixYFromLatLon(o.lat, o.lon);
|
float y = tileBox.getPixYFromLatLon(o.lat, o.lon);
|
||||||
|
|
||||||
if (intersects(boundIntersections, x, y, iconSize, iconSize)) {
|
if (intersects(boundIntersections, x, y, iconSize, iconSize)) {
|
||||||
|
boolean visit = isPointVisited(o);
|
||||||
|
int col = visit ? visitedColor : o.getColor(fcolor);
|
||||||
|
paintIcon.setColorFilter(new PorterDuffColorFilter(col, PorterDuff.Mode.MULTIPLY));
|
||||||
canvas.drawBitmap(pointSmall, x - pointSmall.getWidth() / 2, y - pointSmall.getHeight() / 2, paintIcon);
|
canvas.drawBitmap(pointSmall, x - pointSmall.getWidth() / 2, y - pointSmall.getHeight() / 2, paintIcon);
|
||||||
} else {
|
} else {
|
||||||
fullObjects.add(o);
|
fullObjects.add(o);
|
||||||
|
|
|
@ -41,7 +41,7 @@ import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.activities.search.SearchAddressFragment;
|
import net.osmand.plus.activities.search.SearchAddressFragment;
|
||||||
import net.osmand.plus.dashboard.DashboardOnMap.DashboardType;
|
import net.osmand.plus.dashboard.DashboardOnMap.DashboardType;
|
||||||
import net.osmand.plus.helpers.AndroidUiHelper;
|
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||||
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl;
|
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
|
||||||
import net.osmand.plus.mapcontextmenu.other.MapRoutePreferencesControl;
|
import net.osmand.plus.mapcontextmenu.other.MapRoutePreferencesControl;
|
||||||
import net.osmand.plus.routing.RoutingHelper;
|
import net.osmand.plus.routing.RoutingHelper;
|
||||||
import net.osmand.plus.views.corenative.NativeCoreContext;
|
import net.osmand.plus.views.corenative.NativeCoreContext;
|
||||||
|
@ -76,7 +76,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
private OsmandSettings settings;
|
private OsmandSettings settings;
|
||||||
|
|
||||||
private MapRoutePreferencesControl optionsRouteControlDialog;
|
private MapRoutePreferencesControl optionsRouteControlDialog;
|
||||||
private MapRouteInfoControl mapRouteInfoControlDialog;
|
private MapRouteInfoMenu mapRouteInfoMenu;
|
||||||
private MapHudButton backToLocationControl;
|
private MapHudButton backToLocationControl;
|
||||||
private MapHudButton menuControl;
|
private MapHudButton menuControl;
|
||||||
private MapHudButton compassHud;
|
private MapHudButton compassHud;
|
||||||
|
@ -103,6 +103,10 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
mapView = mapActivity.getMapView();
|
mapView = mapActivity.getMapView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MapRouteInfoMenu getMapRouteInfoMenu() {
|
||||||
|
return mapRouteInfoMenu;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean drawInScreenPixels() {
|
public boolean drawInScreenPixels() {
|
||||||
return true;
|
return true;
|
||||||
|
@ -217,7 +221,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initRouteControls() {
|
private void initRouteControls() {
|
||||||
mapRouteInfoControlDialog = new MapRouteInfoControl(mapActivity, this);
|
mapRouteInfoMenu = new MapRouteInfoMenu(mapActivity, this);
|
||||||
optionsRouteControlDialog = new MapRoutePreferencesControl(mapActivity, this);
|
optionsRouteControlDialog = new MapRoutePreferencesControl(mapActivity, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,8 +256,8 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
|
|
||||||
TextView routeGoButton = (TextView) main.findViewById(R.id.map_go_route_button);
|
TextView routeGoButton = (TextView) main.findViewById(R.id.map_go_route_button);
|
||||||
routeGoButton.setCompoundDrawablesWithIntrinsicBounds(app.getIconsCache().getIcon(R.drawable.map_start_navigation, R.color.color_myloc_distance), null, null, null);
|
routeGoButton.setCompoundDrawablesWithIntrinsicBounds(app.getIconsCache().getIcon(R.drawable.map_start_navigation, R.color.color_myloc_distance), null, null, null);
|
||||||
routeGoButton.setText(AndroidUiHelper.isOrientationPortrait(mapActivity) ?
|
routeGoButton.setText(/*AndroidUiHelper.isOrientationPortrait(mapActivity) ?*/
|
||||||
mapActivity.getString(R.string.shared_string_go) : "");
|
mapActivity.getString(R.string.shared_string_go) /*: ""*/);
|
||||||
routeGoButton.setOnClickListener(new View.OnClickListener() {
|
routeGoButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
@ -274,25 +278,25 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
|
|
||||||
protected void clickRouteParams() {
|
protected void clickRouteParams() {
|
||||||
notifyClicked();
|
notifyClicked();
|
||||||
mapRouteInfoControlDialog.hideDialog();
|
if (optionsRouteControlDialog.isDialogVisible()) {
|
||||||
optionsRouteControlDialog.showAndHideDialog();
|
optionsRouteControlDialog.hideDialog();
|
||||||
|
mapRouteInfoMenu.showHideMenu();
|
||||||
|
} else {
|
||||||
|
mapRouteInfoMenu.hide();
|
||||||
|
optionsRouteControlDialog.showAndHideDialog();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void clickRouteWaypoints() {
|
protected void clickRouteWaypoints() {
|
||||||
if (getTargets().checkPointToNavigateShort()) {
|
if (getTargets().checkPointToNavigateShort()) {
|
||||||
notifyClicked();
|
notifyClicked();
|
||||||
if (optionsRouteControlDialog.isDialogVisible()) {
|
|
||||||
optionsRouteControlDialog.hideDialog();
|
|
||||||
} else if (mapRouteInfoControlDialog.isDialogVisible()) {
|
|
||||||
mapRouteInfoControlDialog.hideDialog();
|
|
||||||
}
|
|
||||||
mapActivity.getMapActions().openIntermediatePointsDialog();
|
mapActivity.getMapActions().openIntermediatePointsDialog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void clickRouteCancel() {
|
protected void clickRouteCancel() {
|
||||||
notifyClicked();
|
notifyClicked();
|
||||||
mapRouteInfoControlDialog.hideDialog();
|
mapRouteInfoMenu.hide();
|
||||||
optionsRouteControlDialog.hideDialog();
|
optionsRouteControlDialog.hideDialog();
|
||||||
if (mapActivity.getRoutingHelper().isFollowingMode()) {
|
if (mapActivity.getRoutingHelper().isFollowingMode()) {
|
||||||
mapActivity.getMapActions().stopNavigationActionConfirm();
|
mapActivity.getMapActions().stopNavigationActionConfirm();
|
||||||
|
@ -303,7 +307,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
|
|
||||||
protected void clickRouteGo() {
|
protected void clickRouteGo() {
|
||||||
notifyClicked();
|
notifyClicked();
|
||||||
mapRouteInfoControlDialog.hideDialog();
|
mapRouteInfoMenu.hide();
|
||||||
optionsRouteControlDialog.hideDialog();
|
optionsRouteControlDialog.hideDialog();
|
||||||
// RoutingHelper routingHelper = mapActivity.getMyApplication().getRoutingHelper();
|
// RoutingHelper routingHelper = mapActivity.getMyApplication().getRoutingHelper();
|
||||||
// if (!routingHelper.isFollowingMode() && !routingHelper.isRoutePlanningMode()) {
|
// if (!routingHelper.isFollowingMode() && !routingHelper.isRoutePlanningMode()) {
|
||||||
|
@ -315,11 +319,11 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showRouteInfoControlDialog() {
|
public void showRouteInfoControlDialog() {
|
||||||
mapRouteInfoControlDialog.showHideDialog();
|
mapRouteInfoMenu.showHideMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showDialog() {
|
public void showDialog() {
|
||||||
mapRouteInfoControlDialog.setShowDialog();
|
mapRouteInfoMenu.setShowMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initControls() {
|
private void initControls() {
|
||||||
|
@ -462,7 +466,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
switchToRouteFollowingLayout();
|
switchToRouteFollowingLayout();
|
||||||
} else {
|
} else {
|
||||||
if (!app.getTargetPointsHelper().checkPointToNavigateShort()) {
|
if (!app.getTargetPointsHelper().checkPointToNavigateShort()) {
|
||||||
mapRouteInfoControlDialog.showDialog();
|
mapRouteInfoMenu.show();
|
||||||
} else {
|
} else {
|
||||||
touchEvent = 0;
|
touchEvent = 0;
|
||||||
mapActivity.getMapViewTrackingUtilities().backToLocationImpl();
|
mapActivity.getMapViewTrackingUtilities().backToLocationImpl();
|
||||||
|
@ -531,7 +535,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
int textColor = isNight ? mapActivity.getResources().getColor(R.color.widgettext_night) : Color.BLACK;
|
int textColor = isNight ? mapActivity.getResources().getColor(R.color.widgettext_night) : Color.BLACK;
|
||||||
if (shadowColor != shadw) {
|
if (shadowColor != shadw) {
|
||||||
shadowColor = shadw;
|
shadowColor = shadw;
|
||||||
// TODO
|
// TODOnightMode
|
||||||
// updatextColor(textColor, shadw, rulerControl, zoomControls, mapMenuControls);
|
// updatextColor(textColor, shadw, rulerControl, zoomControls, mapMenuControls);
|
||||||
}
|
}
|
||||||
boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
|
boolean portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
|
||||||
|
@ -544,7 +548,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
routePlanningMode = true;
|
routePlanningMode = true;
|
||||||
}
|
}
|
||||||
boolean routeFollowingMode = !routePlanningMode && rh.isFollowingMode();
|
boolean routeFollowingMode = !routePlanningMode && rh.isFollowingMode();
|
||||||
boolean dialogOpened = optionsRouteControlDialog.isDialogVisible() || mapRouteInfoControlDialog.isDialogVisible();
|
boolean dialogOpened = optionsRouteControlDialog.isDialogVisible() || mapRouteInfoMenu.isVisible();
|
||||||
boolean showRouteCalculationControls = routePlanningMode ||
|
boolean showRouteCalculationControls = routePlanningMode ||
|
||||||
((System.currentTimeMillis() - touchEvent < TIMEOUT_TO_SHOW_BUTTONS) && routeFollowingMode);
|
((System.currentTimeMillis() - touchEvent < TIMEOUT_TO_SHOW_BUTTONS) && routeFollowingMode);
|
||||||
updateMyLocation(rh, dialogOpened);
|
updateMyLocation(rh, dialogOpened);
|
||||||
|
@ -581,7 +585,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mapRouteInfoControlDialog.setVisible(showRouteCalculationControls);
|
mapRouteInfoMenu.setVisible(showRouteCalculationControls);
|
||||||
if (showRouteCalculationControls) {
|
if (showRouteCalculationControls) {
|
||||||
if (!mapActivity.getRoutingHelper().isFollowingMode()
|
if (!mapActivity.getRoutingHelper().isFollowingMode()
|
||||||
&& !mapActivity.getRoutingHelper().isPauseNavigation()) {
|
&& !mapActivity.getRoutingHelper().isPauseNavigation()) {
|
||||||
|
@ -634,7 +638,7 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
|
|
||||||
|
|
||||||
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
|
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
|
||||||
if (mapRouteInfoControlDialog.onSingleTap(point, tileBox)) {
|
if (mapRouteInfoMenu.onSingleTap(point, tileBox)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
stopCounter();
|
stopCounter();
|
||||||
|
@ -933,14 +937,14 @@ public class MapControlsLayer extends OsmandMapLayer {
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
if (requestCode == REQUEST_ADDRESS_SELECT && resultCode == SearchAddressFragment.SELECT_ADDRESS_POINT_RESULT_OK) {
|
if (requestCode == REQUEST_ADDRESS_SELECT && resultCode == SearchAddressFragment.SELECT_ADDRESS_POINT_RESULT_OK) {
|
||||||
String name = data.getStringExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_INTENT_KEY);
|
String name = data.getStringExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_INTENT_KEY);
|
||||||
boolean target = data.getBooleanExtra(MapRouteInfoControl.TARGET_SELECT, true);
|
boolean target = data.getBooleanExtra(MapRouteInfoMenu.TARGET_SELECT, true);
|
||||||
LatLon latLon = new LatLon(
|
LatLon latLon = new LatLon(
|
||||||
data.getDoubleExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_LAT, 0),
|
data.getDoubleExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_LAT, 0),
|
||||||
data.getDoubleExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_LON, 0));
|
data.getDoubleExtra(SearchAddressFragment.SELECT_ADDRESS_POINT_LON, 0));
|
||||||
if (name != null) {
|
if (name != null) {
|
||||||
mapRouteInfoControlDialog.selectAddress(name, latLon, target);
|
mapRouteInfoMenu.selectAddress(name, latLon, target);
|
||||||
} else {
|
} else {
|
||||||
mapRouteInfoControlDialog.selectAddress("", latLon, target);
|
mapRouteInfoMenu.selectAddress("", latLon, target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ import net.osmand.plus.monitoring.OsmandMonitoringPlugin;
|
||||||
import net.osmand.plus.routing.RouteDirectionInfo;
|
import net.osmand.plus.routing.RouteDirectionInfo;
|
||||||
import net.osmand.plus.routing.RoutingHelper;
|
import net.osmand.plus.routing.RoutingHelper;
|
||||||
import net.osmand.plus.views.OsmandMapLayer.DrawSettings;
|
import net.osmand.plus.views.OsmandMapLayer.DrawSettings;
|
||||||
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl;
|
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
|
||||||
import net.osmand.plus.views.mapwidgets.NextTurnInfoWidget.TurnDrawable;
|
import net.osmand.plus.views.mapwidgets.NextTurnInfoWidget.TurnDrawable;
|
||||||
import net.osmand.router.TurnType;
|
import net.osmand.router.TurnType;
|
||||||
|
|
||||||
|
@ -237,8 +237,8 @@ public class MapInfoWidgetsFactory {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
int di = MapRouteInfoControl.getDirectionInfo();
|
int di = MapRouteInfoMenu.getDirectionInfo();
|
||||||
if (di >= 0 && MapRouteInfoControl.isControlVisible() &&
|
if (di >= 0 && MapRouteInfoMenu.isControlVisible() &&
|
||||||
di < routingHelper.getRouteDirections().size()) {
|
di < routingHelper.getRouteDirections().size()) {
|
||||||
showNextTurn = true;
|
showNextTurn = true;
|
||||||
RouteDirectionInfo next = routingHelper.getRouteDirections().get(di);
|
RouteDirectionInfo next = routingHelper.getRouteDirections().get(di);
|
||||||
|
|
|
@ -30,7 +30,7 @@ import net.osmand.plus.views.AnimateDraggingMapThread;
|
||||||
import net.osmand.plus.views.OsmandMapLayer.DrawSettings;
|
import net.osmand.plus.views.OsmandMapLayer.DrawSettings;
|
||||||
import net.osmand.plus.views.OsmandMapTileView;
|
import net.osmand.plus.views.OsmandMapTileView;
|
||||||
import net.osmand.plus.views.TurnPathHelper;
|
import net.osmand.plus.views.TurnPathHelper;
|
||||||
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoControl;
|
import net.osmand.plus.mapcontextmenu.other.MapRouteInfoMenu;
|
||||||
import net.osmand.router.RouteResultPreparation;
|
import net.osmand.router.RouteResultPreparation;
|
||||||
import net.osmand.router.TurnType;
|
import net.osmand.router.TurnType;
|
||||||
import net.osmand.util.Algorithms;
|
import net.osmand.util.Algorithms;
|
||||||
|
@ -583,8 +583,8 @@ public class RouteInfoWidgetsFactory {
|
||||||
dist = r.distanceTo;
|
dist = r.distanceTo;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
int di = MapRouteInfoControl.getDirectionInfo();
|
int di = MapRouteInfoMenu.getDirectionInfo();
|
||||||
if (di >= 0 && MapRouteInfoControl.isControlVisible()
|
if (di >= 0 && MapRouteInfoMenu.isControlVisible()
|
||||||
&& di < rh.getRouteDirections().size()) {
|
&& di < rh.getRouteDirections().size()) {
|
||||||
RouteDirectionInfo next = rh.getRouteDirections().get(di);
|
RouteDirectionInfo next = rh.getRouteDirections().get(di);
|
||||||
if (next != null) {
|
if (next != null) {
|
||||||
|
|