diff --git a/OsmAnd-java/src/net/osmand/map/OsmandRegions.java b/OsmAnd-java/src/net/osmand/map/OsmandRegions.java index 5ed5f4e17b..cb5db953c6 100644 --- a/OsmAnd-java/src/net/osmand/map/OsmandRegions.java +++ b/OsmAnd-java/src/net/osmand/map/OsmandRegions.java @@ -47,6 +47,11 @@ public class OsmandRegions { Map fullNamesToLowercaseIndex = new HashMap(); Map fullNamesToParentFullNames = new HashMap(); Map fullNamesToDownloadNames = new HashMap(); + Map fullNamesToLangs = new HashMap(); + Map fullNamesToMetrics = new HashMap(); + Map fullNamesToLeftHandDrivings = new HashMap(); + Map fullNamesToRoadSigns = new HashMap(); + QuadTree quadTree = null ; public Map getFullNamesToLowercaseCopy() { @@ -60,6 +65,10 @@ public class OsmandRegions { Integer nameType = null; Integer nameLocaleType = null; String locale = "en"; + Integer langType = null; + Integer metricType = null; + Integer leftHandDrivingType = null; + Integer roadSignsType = null; public void prepareFile(String fileName) throws IOException { @@ -71,6 +80,38 @@ public class OsmandRegions { return countriesByDownloadName.containsKey(name); } + public String getLang(String fullName) { + return fullNamesToLangs.get(fullName); + } + + public String getMetric(String fullName) { + return fullNamesToMetrics.get(fullName); + } + + public String getLeftHandDriving(String fullName) { + return fullNamesToLeftHandDrivings.get(fullName); + } + + public String getRoadSigns(String fullName) { + return fullNamesToRoadSigns.get(fullName); + } + + private String getLang(BinaryMapDataObject o) { + return o.getNameByType(langType); + } + + private String getMetric(BinaryMapDataObject o) { + return o.getNameByType(metricType); + } + + private String getLeftHandDriving(BinaryMapDataObject o) { + return o.getNameByType(leftHandDrivingType); + } + + private String getRoadSigns(BinaryMapDataObject o) { + return o.getNameByType(roadSignsType); + } + public String getDownloadName(BinaryMapDataObject o) { if(downloadNameType == null) { return null; @@ -367,6 +408,24 @@ public class OsmandRegions { fullNamesToLocaleNames.put(fullName, locName); fullNamesNoParentToLocaleNames.put(fullName, locName); } + + String lang = getLang(object); + if(!Algorithms.isEmpty(lang)){ + fullNamesToLangs.put(fullName, lang); + } + String metric = getMetric(object); + if(!Algorithms.isEmpty(metric)){ + fullNamesToMetrics.put(fullName, metric); + } + String leftHandDriving = getLeftHandDriving(object); + if(!Algorithms.isEmpty(leftHandDriving)){ + fullNamesToLeftHandDrivings.put(fullName, leftHandDriving); + } + String roadSigns = getRoadSigns(object); + if(!Algorithms.isEmpty(roadSigns)){ + fullNamesToRoadSigns.put(fullName, roadSigns); + } + MapIndex mi = object.getMapIndex(); TIntObjectIterator it = object.getObjectNames().iterator(); StringBuilder ind = new StringBuilder(); @@ -517,7 +576,12 @@ public class OsmandRegions { nameLocaleType = object.getMapIndex().getRule("name:" + locale, null); parentFullName = object.getMapIndex().getRule("region_parent_name", null); fullNameType = object.getMapIndex().getRule("region_full_name", null); - + + langType = object.getMapIndex().getRule("lang", null); + metricType = object.getMapIndex().getRule("metric", null); + leftHandDrivingType = object.getMapIndex().getRule("left_hand_driving", null); + roadSignsType = object.getMapIndex().getRule("road_signs", null); + if (downloadNameType == null || nameType == null) { throw new IllegalStateException(); } diff --git a/OsmAnd/res/layout/point_editor_fragment.xml b/OsmAnd/res/layout/point_editor_fragment.xml index 129003f099..519fa141da 100644 --- a/OsmAnd/res/layout/point_editor_fragment.xml +++ b/OsmAnd/res/layout/point_editor_fragment.xml @@ -68,10 +68,10 @@ android:id="@+id/button_replace" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="@color/color_transparent" - android:textColor="@color/color_dialog_buttons" + android:background="?android:selectableItemBackground" + android:textColor="?attr/contextMenuButtonColor" android:text="@string/update_existing" - android:visibility="gone"/> + android:visibility="visible"/> diff --git a/OsmAnd/res/values-ja/strings.xml b/OsmAnd/res/values-ja/strings.xml index 15f7373450..35fdc1449a 100644 --- a/OsmAnd/res/values-ja/strings.xml +++ b/OsmAnd/res/values-ja/strings.xml @@ -448,8 +448,7 @@ POIの更新は利用できません 閉じる データをロード中… 索引を読み込み中… - 前回のアプリケーション実行はクラッシュしました。 -ログファイルは{0}にあります。ログファイルを添付して問題を報告してください。 + 前回アプリケーション実行中にクラッシュしました。 詳細は{0}に記録されています。報告する場合はログファイルの添付をお願いします。 GPX経路をSDに保存中… 終了 @@ -1161,10 +1160,10 @@ POIの更新は利用できません ヨーロッパ ヨーロッパ - フランス ヨーロッパ - ドイツ - ヨーロッパ/アジア - ロシア + ロシア アフリカ アジア - オセアニア + オーストラリアとオセアニア ワールドワイドとトピックマップ ワールドワイドウィキペディアPOI 音声指示(記録音声、機能限定) @@ -1816,7 +1815,7 @@ POIの更新は利用できません 一時停止標識 速度抑制 スピードカメラ - 交通警告 + 通行に関する警告 選択解除または削除するには長押し、詳細を見るにはタップして下さい。現在のデバイス上のデータ(空き容量 %1$s): 制限速度の許容範囲 制限速度超過による警告音声の許容値を選択します @@ -2112,7 +2111,7 @@ POIの更新は利用できません 太線 更新はありません ライブ更新 - 私達は常にユーザーを気に掛け、個々の意見を参考にすることを重要視しています。 + 我々はあなた方の意見やフィードバックを大切にし、それらを開発に生かせるよう努めています。 アップロードに失敗しました 変更を削除します 正常にアップロードされました {0}/{1} @@ -2152,7 +2151,7 @@ POIの更新は利用できません 基本 拡張 起動時に表示 - 表示する数の指定 + 表示数の選択 住所はまだ登録されていません 指定したカテゴリ名は既に使用されています。別の名前を付けてください。 カテゴリ名 diff --git a/OsmAnd/res/values/attrs.xml b/OsmAnd/res/values/attrs.xml index c322cb1f17..3f47de8df5 100644 --- a/OsmAnd/res/values/attrs.xml +++ b/OsmAnd/res/values/attrs.xml @@ -42,6 +42,7 @@ + diff --git a/OsmAnd/res/values/styles.xml b/OsmAnd/res/values/styles.xml index df61bdb684..25b96c53f2 100644 --- a/OsmAnd/res/values/styles.xml +++ b/OsmAnd/res/values/styles.xml @@ -113,6 +113,8 @@ @style/OsmandLightTheme.Toolbar @style/OsmandLightTheme.NewAppTheme @color/icon_color + @color/map_widget_blue + diff --git a/OsmAnd/src/net/osmand/plus/WorldRegion.java b/OsmAnd/src/net/osmand/plus/WorldRegion.java index ae12a2e3f8..ade5f74063 100644 --- a/OsmAnd/src/net/osmand/plus/WorldRegion.java +++ b/OsmAnd/src/net/osmand/plus/WorldRegion.java @@ -39,7 +39,21 @@ public class WorldRegion { private List subregions; private List flattenedSubregions; + public String getLang(OsmandRegions osmandRegions) { + return osmandRegions.getLang(regionId); + } + public String getMetric(OsmandRegions osmandRegions) { + return osmandRegions.getMetric(regionId); + } + + public String getLeftHandDriving(OsmandRegions osmandRegions) { + return osmandRegions.getLeftHandDriving(regionId); + } + + public String getRoadSigns(OsmandRegions osmandRegions) { + return osmandRegions.getRoadSigns(regionId); + } public String getRegionId() { return regionId; @@ -96,8 +110,8 @@ public class WorldRegion { private WorldRegion init(String regionId, OsmandRegions osmandRegions, String name) { this.regionId = regionId; String downloadName = osmandRegions.getDownloadName(regionId); - this.searchText = osmandRegions.getDownloadNameIndexLowercase(downloadName); if (downloadName != null) { + this.searchText = osmandRegions.getDownloadNameIndexLowercase(downloadName); downloadsId = downloadName.toLowerCase(); } else { downloadsId = regionId.toLowerCase();