Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
2c524bfdce
9 changed files with 46 additions and 24 deletions
|
@ -41,6 +41,7 @@ public class OsmandRegions {
|
|||
private BinaryMapIndexReader reader;
|
||||
Map<String, LinkedList<BinaryMapDataObject>> countriesByDownloadName = new HashMap<String, LinkedList<BinaryMapDataObject>>();
|
||||
Map<String, String> fullNamesToLocaleNames = new HashMap<String, String>();
|
||||
Map<String, String> fullNamesNoParentToLocaleNames = new HashMap<String, String>();
|
||||
Map<String, String> fullMapNamesToDownloadNames = new HashMap<String, String>();
|
||||
Map<String, String> downloadNamesToFullNames = new HashMap<String, String>();
|
||||
Map<String, String> fullNamesToLowercaseIndex = new HashMap<String, String>();
|
||||
|
@ -81,22 +82,36 @@ public class OsmandRegions {
|
|||
return nameEnType;
|
||||
}
|
||||
|
||||
public String getLocaleName(String downloadName) {
|
||||
public String getLocaleName(String downloadName, boolean includingParent) {
|
||||
final String lc = downloadName.toLowerCase();
|
||||
if (downloadNamesToFullNames.containsKey(lc)) {
|
||||
String fullName = downloadNamesToFullNames.get(lc);
|
||||
if (fullNamesToLocaleNames.containsKey(fullName)) {
|
||||
return fullNamesToLocaleNames.get(fullName);
|
||||
if (includingParent) {
|
||||
if (fullNamesToLocaleNames.containsKey(fullName)) {
|
||||
return fullNamesToLocaleNames.get(fullName);
|
||||
}
|
||||
} else {
|
||||
if (fullNamesNoParentToLocaleNames.containsKey(fullName)) {
|
||||
return fullNamesNoParentToLocaleNames.get(fullName);
|
||||
}
|
||||
}
|
||||
}
|
||||
return downloadName.replace('_', ' ');
|
||||
}
|
||||
|
||||
public String getLocaleNameByFullName(String fullName) {
|
||||
if (fullNamesToLocaleNames.containsKey(fullName)) {
|
||||
return fullNamesToLocaleNames.get(fullName);
|
||||
public String getLocaleNameByFullName(String fullName, boolean includingParent) {
|
||||
if (includingParent) {
|
||||
if (fullNamesToLocaleNames.containsKey(fullName)) {
|
||||
return fullNamesToLocaleNames.get(fullName);
|
||||
} else {
|
||||
return fullName.replace('_', ' ');
|
||||
}
|
||||
} else {
|
||||
return fullName.replace('_', ' ');
|
||||
if (fullNamesNoParentToLocaleNames.containsKey(fullName)) {
|
||||
return fullNamesNoParentToLocaleNames.get(fullName);
|
||||
} else {
|
||||
return fullName.replace('_', ' ');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -350,6 +365,7 @@ public class OsmandRegions {
|
|||
String locName = getLocaleName(object);
|
||||
if(!Algorithms.isEmpty(locName)){
|
||||
fullNamesToLocaleNames.put(fullName, locName);
|
||||
fullNamesNoParentToLocaleNames.put(fullName, locName);
|
||||
}
|
||||
MapIndex mi = object.getMapIndex();
|
||||
TIntObjectIterator<String> it = object.getObjectNames().iterator();
|
||||
|
@ -358,8 +374,9 @@ public class OsmandRegions {
|
|||
it.advance();
|
||||
TagValuePair tp = mi.decodeType(it.key());
|
||||
if (tp.tag.equals("key_name") && Algorithms.isEmpty(locName)) {
|
||||
fullNamesToLocaleNames.put(fullName,
|
||||
Algorithms.capitalizeFirstLetterAndLowercase(it.value().replace('_', '-')));
|
||||
String str = Algorithms.capitalizeFirstLetterAndLowercase(it.value().replace('_', '-'));
|
||||
fullNamesToLocaleNames.put(fullName, str);
|
||||
fullNamesNoParentToLocaleNames.put(fullName, str);
|
||||
}
|
||||
if(tp.tag.startsWith("name") || tp.tag.equals("key_name")) {
|
||||
final String vl = it.value().toLowerCase();
|
||||
|
@ -403,7 +420,8 @@ public class OsmandRegions {
|
|||
if(locPrefix == null || locName == null) {
|
||||
throw new IllegalStateException("There is no prefix registered for " + fullName + " (" + parentFullName + ") ");
|
||||
}
|
||||
fullNamesToLocaleNames.put(fullName, /*locPrefix + " " +*/ locName);
|
||||
fullNamesToLocaleNames.put(fullName, locPrefix + " " + locName);
|
||||
fullNamesNoParentToLocaleNames.put(fullName, locName);
|
||||
String index = fullNamesToLowercaseIndex.get(fullName);
|
||||
String prindex = fullNamesToLowercaseIndex.get(parentFullName);
|
||||
fullNamesToLowercaseIndex.put(fullName, index + " " + prindex);
|
||||
|
|
|
@ -141,7 +141,7 @@ public class WorldRegion {
|
|||
if (name != null) {
|
||||
this.name = name;
|
||||
} else {
|
||||
this.name = osmandRegions.getLocaleNameByFullName(regionId);
|
||||
this.name = osmandRegions.getLocaleNameByFullName(regionId, false);
|
||||
if (this.name == null) {
|
||||
this.name = capitalize(regionId.replace('_', ' '));
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ public class WorldRegion {
|
|||
} else {
|
||||
this.downloadsIdPrefix = regionId.toLowerCase() + ".";
|
||||
}
|
||||
this.name = osmandRegions.getLocaleNameByFullName(regionId);
|
||||
this.name = osmandRegions.getLocaleNameByFullName(regionId, false);
|
||||
if (this.name == null) {
|
||||
this.name = capitalize(regionId.replace('_', ' '));
|
||||
}
|
||||
|
|
|
@ -259,7 +259,7 @@ public class DownloadActivityType implements Parcelable {
|
|||
return "";
|
||||
}
|
||||
|
||||
public String getVisibleName(IndexItem indexItem, Context ctx, OsmandRegions osmandRegions) {
|
||||
public String getVisibleName(IndexItem indexItem, Context ctx, OsmandRegions osmandRegions, boolean includingParent) {
|
||||
if (this == VOICE_FILE) {
|
||||
String fileName = indexItem.fileName;
|
||||
if (fileName.endsWith(IndexConstants.VOICE_INDEX_EXT_ZIP)) {
|
||||
|
@ -284,11 +284,11 @@ public class DownloadActivityType implements Parcelable {
|
|||
if (bn.contains("addresses-nationwide")) {
|
||||
final int ind = bn.indexOf("addresses-nationwide");
|
||||
String downloadName = bn.substring(0, ind - 1) + bn.substring(ind + "addresses-nationwide".length());
|
||||
return osmandRegions.getLocaleName(downloadName) +
|
||||
return osmandRegions.getLocaleName(downloadName, includingParent) +
|
||||
" "+ ctx.getString(R.string.index_item_nation_addresses);
|
||||
}
|
||||
|
||||
return osmandRegions.getLocaleName(bn);
|
||||
return osmandRegions.getLocaleName(bn, includingParent);
|
||||
}
|
||||
|
||||
public String getTargetFileName(IndexItem item) {
|
||||
|
|
|
@ -137,7 +137,11 @@ public class IndexItem implements Comparable<IndexItem>, HasName, Parcelable {
|
|||
}
|
||||
|
||||
public String getVisibleName(Context ctx, OsmandRegions osmandRegions) {
|
||||
return type.getVisibleName(this, ctx, osmandRegions);
|
||||
return type.getVisibleName(this, ctx, osmandRegions, true);
|
||||
}
|
||||
|
||||
public String getVisibleName(Context ctx, OsmandRegions osmandRegions, boolean includingParent) {
|
||||
return type.getVisibleName(this, ctx, osmandRegions, includingParent);
|
||||
}
|
||||
|
||||
public String getVisibleDescription(OsmandApplication clctx) {
|
||||
|
|
|
@ -96,7 +96,7 @@ public class ItemViewHolder {
|
|||
|
||||
if (indexItem.getType() == DownloadActivityType.VOICE_FILE) {
|
||||
nameTextView.setText(indexItem.getVisibleName(context,
|
||||
context.getMyApplication().getRegions()));
|
||||
context.getMyApplication().getRegions(), false));
|
||||
} else {
|
||||
if (indexItem.getSimplifiedFileName().equals(ItemsListBuilder.WORLD_SEAMARKS_KEY) && nauticalPluginDisabled) {
|
||||
rightButtonAction = RightButtonAction.ASK_FOR_SEAMARKS_PLUGIN;
|
||||
|
@ -119,7 +119,7 @@ public class ItemViewHolder {
|
|||
if (showTypeInTitle) {
|
||||
nameTextView.setText(indexItem.getType().getString(context));
|
||||
} else {
|
||||
nameTextView.setText(indexItem.getVisibleName(context, context.getMyApplication().getRegions()));
|
||||
nameTextView.setText(indexItem.getVisibleName(context, context.getMyApplication().getRegions(), false));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -231,7 +231,7 @@ public class ItemsListBuilder {
|
|||
|
||||
for (IndexItem indexItem : regionResources.values()) {
|
||||
|
||||
String name = indexItem.getVisibleName(context, osmandRegions);
|
||||
String name = indexItem.getVisibleName(context, osmandRegions, false);
|
||||
if (Algorithms.isEmpty(name)) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -322,13 +322,13 @@ public class SearchItemsFragment extends Fragment {
|
|||
if (obj1 instanceof WorldRegion) {
|
||||
str1 = ((WorldRegion) obj1).getName();
|
||||
} else {
|
||||
str1 = ((IndexItem) obj1).getVisibleName(getMyApplication(), osmandRegions);
|
||||
str1 = ((IndexItem) obj1).getVisibleName(getMyApplication(), osmandRegions, false);
|
||||
}
|
||||
|
||||
if (obj2 instanceof WorldRegion) {
|
||||
str2 = ((WorldRegion) obj2).getName();
|
||||
} else {
|
||||
str2 = ((IndexItem) obj2).getVisibleName(getMyApplication(), osmandRegions);
|
||||
str2 = ((IndexItem) obj2).getVisibleName(getMyApplication(), osmandRegions, false);
|
||||
}
|
||||
|
||||
return collator.compare(str1, str2);
|
||||
|
|
|
@ -48,7 +48,7 @@ public class FileNameTranslationHelper {
|
|||
}
|
||||
|
||||
if (regions != null) {
|
||||
return regions.getLocaleName(basename);
|
||||
return regions.getLocaleName(basename, true);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
@ -56,7 +56,7 @@ public class FileNameTranslationHelper {
|
|||
|
||||
public static String getHillShadeName(Context ctx, OsmandRegions regions, String basename) {
|
||||
String hillsh = ctx.getString(R.string.download_hillshade_item) + " ";
|
||||
String locName = regions.getLocaleName(basename.trim());
|
||||
String locName = regions.getLocaleName(basename.trim(), true);
|
||||
return hillsh + locName;
|
||||
}
|
||||
|
||||
|
|
|
@ -250,7 +250,7 @@ public class DownloadedRegionsLayer extends OsmandMapLayer {
|
|||
String fullName = osmandRegions.getFullName(o);
|
||||
String downloadName = osmandRegions.getMapDownloadType(fullName);
|
||||
if (!Algorithms.isEmpty(downloadName)) {
|
||||
String name = osmandRegions.getLocaleName(downloadName); // Algorithms.capitalizeFirstLetterAndLowercase(o.getName());
|
||||
String name = osmandRegions.getLocaleName(downloadName, true); // Algorithms.capitalizeFirstLetterAndLowercase(o.getName());
|
||||
if (checkIfObjectDownloaded(downloadName)) {
|
||||
return null;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue