Merge branch 'master' of https://github.com/osmandapp/Osmand
This commit is contained in:
commit
8e7ca6feb5
30 changed files with 1321 additions and 1081 deletions
|
@ -1,20 +1,5 @@
|
|||
package net.osmand.osm;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.text.Collator;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import net.osmand.PlatformUtil;
|
||||
import net.osmand.StringMatcher;
|
||||
import net.osmand.data.Amenity;
|
||||
|
@ -24,6 +9,22 @@ import org.apache.commons.logging.Log;
|
|||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.text.Collator;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.TreeMap;
|
||||
|
||||
|
||||
public class MapPoiTypes {
|
||||
private static MapPoiTypes DEFAULT_INSTANCE = null;
|
||||
|
@ -138,7 +139,7 @@ public class MapPoiTypes {
|
|||
}
|
||||
|
||||
public Map<String, PoiType> getAllTranslatedNames() {
|
||||
Map<String, PoiType> translation = new TreeMap<String, PoiType>();
|
||||
Map<String, PoiType> translation = new HashMap<>();
|
||||
for(PoiCategory pc : categories) {
|
||||
for(PoiType pt : pc.getPoiTypes()) {
|
||||
if(pt.isReference()) {
|
||||
|
@ -152,7 +153,7 @@ public class MapPoiTypes {
|
|||
}
|
||||
|
||||
public Map<String, AbstractPoiType> getAllTypesTranslatedNames(StringMatcher matcher) {
|
||||
TreeMap<String, AbstractPoiType> tm = new TreeMap<String, AbstractPoiType>(Collator.getInstance());
|
||||
Map<String, AbstractPoiType> tm = new TreeMap<String, AbstractPoiType>(Collator.getInstance());
|
||||
for (PoiCategory pc : categories) {
|
||||
if(pc == otherMapCategory) {
|
||||
continue;
|
||||
|
|
|
@ -488,18 +488,55 @@ public class OpeningHoursParser {
|
|||
|
||||
}
|
||||
|
||||
public static class UnparseableRule implements OpeningHoursParser.OpeningHoursRule {
|
||||
private String ruleString;
|
||||
|
||||
public UnparseableRule(String ruleString) {
|
||||
this.ruleString = ruleString;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpenedForTime(Calendar cal, boolean checkPrevious) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsPreviousDay(Calendar cal) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsDay(Calendar cal) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsMonth(Calendar cal) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toRuleString(boolean avoidMonths) {
|
||||
return ruleString;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Parse an opening_hours string from OSM to an OpeningHours object which can be used to check
|
||||
* @param r the string to parse
|
||||
* @param rs the resulting object representing the opening hours of the feature
|
||||
* @return true if the String is successfully parsed
|
||||
* @return BasicRule if the String is successfully parsed and UnparseableRule otherwise
|
||||
*/
|
||||
public static boolean parseRule(String r, OpeningHours rs){
|
||||
public static OpeningHoursParser.OpeningHoursRule parseRule(final String r){
|
||||
// replace words "sunrise" and "sunset" by real hours
|
||||
r = r.replaceAll("sunset", sunset);
|
||||
r = r.replaceAll("sunrise", sunrise);
|
||||
// replace the '+' by an arbitrary value
|
||||
r = r.replaceAll("\\+", "-" + endOfDay);
|
||||
final String[] daysStr = new String[] {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"};
|
||||
final String[] monthsStr = new String[] {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
|
||||
String sunrise = "07:00";
|
||||
String sunset = "21:00";
|
||||
String endOfDay = "24:00";
|
||||
|
||||
String localRuleString = r.replaceAll("sunset", sunset).replaceAll("sunrise", sunrise)
|
||||
.replaceAll("\\+", "-" + endOfDay);
|
||||
int startDay = -1;
|
||||
int previousDay = -1;
|
||||
int startMonth = -1;
|
||||
|
@ -510,21 +547,21 @@ public class OpeningHoursParser {
|
|||
boolean[] days = basic.getDays();
|
||||
boolean[] months = basic.getMonths();
|
||||
// check 24/7
|
||||
if("24/7".equals(r)){
|
||||
if("24/7".equals(localRuleString)){
|
||||
Arrays.fill(days, true);
|
||||
Arrays.fill(months, true);
|
||||
basic.addTimeRange(0, 24 * 60);
|
||||
rs.addRule(basic);
|
||||
return true;
|
||||
return basic;
|
||||
}
|
||||
|
||||
for (; k < r.length(); k++) {
|
||||
char ch = r.charAt(k);
|
||||
for (; k < localRuleString.length(); k++) {
|
||||
char ch = localRuleString.charAt(k);
|
||||
if (Character.isDigit(ch)) {
|
||||
// time starts
|
||||
break;
|
||||
}
|
||||
if ((k + 2 < r.length()) && r.substring(k, k + 3).equals("off")) {
|
||||
if ((k + 2 < localRuleString.length())
|
||||
&& localRuleString.substring(k, k + 3).equals("off")) {
|
||||
// value "off" is found
|
||||
break;
|
||||
}
|
||||
|
@ -535,7 +572,7 @@ public class OpeningHoursParser {
|
|||
} else if (previousMonth != -1) {
|
||||
startMonth = previousMonth;
|
||||
} else {
|
||||
return false;
|
||||
return new UnparseableRule(r);
|
||||
}
|
||||
} else if (k < r.length() - 1) {
|
||||
int i = 0;
|
||||
|
@ -594,7 +631,7 @@ public class OpeningHoursParser {
|
|||
}
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
return new UnparseableRule(r);
|
||||
}
|
||||
}
|
||||
if(previousDay == -1){
|
||||
|
@ -609,7 +646,7 @@ public class OpeningHoursParser {
|
|||
months[i] = true;
|
||||
}
|
||||
}
|
||||
String timeSubstr = r.substring(k);
|
||||
String timeSubstr = localRuleString.substring(k);
|
||||
String[] times = timeSubstr.split(",");
|
||||
boolean timesExist = true;
|
||||
for (int i = 0; i < times.length; i++) {
|
||||
|
@ -629,7 +666,7 @@ public class OpeningHoursParser {
|
|||
String[] stEnd = time.split("-"); //$NON-NLS-1$
|
||||
if (stEnd.length != 2) {
|
||||
if (i == times.length - 1 && basic.getStartTime() == 0 && basic.getEndTime() == 0) {
|
||||
return false;
|
||||
return new UnparseableRule(r);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
@ -659,15 +696,14 @@ public class OpeningHoursParser {
|
|||
st = startHour * 60 + startMin;
|
||||
end = endHour * 60 + endMin;
|
||||
} catch (NumberFormatException e) {
|
||||
return false;
|
||||
return new UnparseableRule(r);
|
||||
}
|
||||
basic.addTimeRange(st, end);
|
||||
}
|
||||
rs.addRule(basic);
|
||||
if(!timesExist){
|
||||
return false;
|
||||
return new UnparseableRule(r);
|
||||
}
|
||||
return true;
|
||||
return basic;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -690,14 +726,39 @@ public class OpeningHoursParser {
|
|||
continue;
|
||||
}
|
||||
// check if valid
|
||||
boolean rule = parseRule(r, rs);
|
||||
final OpeningHoursRule r1 = parseRule(r);
|
||||
boolean rule = r1 instanceof UnparseableRule;
|
||||
if (!rule) {
|
||||
return null;
|
||||
}
|
||||
rs.addRule(r1);
|
||||
}
|
||||
return rs;
|
||||
}
|
||||
|
||||
/**
|
||||
* parse OSM opening_hours string to an OpeningHours object.
|
||||
* Does not return null when parsing unsuccessful. When parsing rule is unsuccessful,
|
||||
* such rule is stored as UnparseableRule.
|
||||
* @param format the string to parse
|
||||
* @return the OpeningHours object
|
||||
*/
|
||||
private static OpeningHoursParser.OpeningHours parseOpenedHoursHandleErrors(String format){
|
||||
if(format == null) {
|
||||
return null;
|
||||
}
|
||||
String[] rules = format.split(";"); //$NON-NLS-1$
|
||||
OpeningHoursParser.OpeningHours rs = new OpeningHoursParser.OpeningHours();
|
||||
for(String r : rules){
|
||||
r = r.trim();
|
||||
if (r.length() == 0) {
|
||||
continue;
|
||||
}
|
||||
// check if valid
|
||||
rs.addRule(OpeningHoursParser.parseRule(r));
|
||||
}
|
||||
return rs;
|
||||
}
|
||||
|
||||
private static void formatTime(int h, int t, StringBuilder b){
|
||||
if (h < 10) {
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
android:orientation="vertical">
|
||||
|
||||
<View
|
||||
android:id="@+id/divider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="?attr/dashboard_divider"/>
|
||||
|
@ -28,18 +29,18 @@
|
|||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/map_name"
|
||||
android:id="@+id/name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:textSize="@dimen/default_list_text_size"
|
||||
tools:text="@string/lorem_ipsum"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/map_descr"
|
||||
android:id="@+id/description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="?android:textColorSecondary"
|
||||
|
|
|
@ -78,7 +78,8 @@
|
|||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
android:layout_weight="1"
|
||||
tools:progress="50"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/Cancel"
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1">
|
||||
|
||||
<EditText
|
||||
<AutoCompleteTextView
|
||||
android:id="@+id/valueEditText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -43,5 +43,5 @@
|
|||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:src="@drawable/ic_action_close_dark"/>
|
||||
tools:src="@drawable/ic_action_close_dark"/>
|
||||
</LinearLayout>
|
|
@ -48,6 +48,12 @@
|
|||
android:textSize="@dimen/default_sub_text_size"
|
||||
tools:text="Map, Contour Lines, Wikipedia"/>
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progressBar"
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -60,7 +66,9 @@
|
|||
android:background="?attr/dashboard_button"
|
||||
android:focusable="false"
|
||||
android:focusableInTouchMode="false"
|
||||
tools:src="@drawable/ic_action_import"/>
|
||||
tools:src="@drawable/ic_action_import"
|
||||
tools:visibility="visible"
|
||||
android:visibility="gone"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
|
@ -967,8 +967,8 @@
|
|||
<string name="poi_animal_shelter_bird">Прытулак для птушак</string>
|
||||
|
||||
<string name="poi_shower">Душ</string>
|
||||
<string name="poi_recycling_centre">Пункт прыёму</string>
|
||||
<string name="poi_recycling_container">Кантэйнэр</string>
|
||||
<string name="poi_recycling_centre">Тып: пункт прыёму</string>
|
||||
<string name="poi_recycling_container">Тып: кантэйнэр</string>
|
||||
<string name="poi_recycling_glass">Шкло</string>
|
||||
<string name="poi_recycling_paper">Папера</string>
|
||||
<string name="poi_recycling_clothes">Вопратка</string>
|
||||
|
@ -1227,4 +1227,10 @@
|
|||
<string name="poi_information_history">Гістарычная інфармацыя</string>
|
||||
<string name="poi_information_sign">Знак</string>
|
||||
<string name="poi_information_audioguide">Аўдыягід</string>
|
||||
<string name="poi_cooling_tower">Градзірня</string>
|
||||
<string name="poi_denomination_adventist">Адвентысты</string>
|
||||
<string name="poi_trees_apple">Яблык</string>
|
||||
<string name="poi_trees_oil">Пальмавы алей</string>
|
||||
<string name="poi_trees_orange">Апельсін</string>
|
||||
<string name="poi_trees_banana">Банан</string>
|
||||
</resources>
|
||||
|
|
|
@ -2106,4 +2106,21 @@
|
|||
<string name="shared_string_trip_recording">Запіс падарожжа</string>
|
||||
<string name="shared_string_navigation">Навігацыя</string>
|
||||
<string name="osmand_running_in_background">Працуе ў фоне</string>
|
||||
<string name="favorite_category_add_new">Дадаць новую</string>
|
||||
<string name="favorite_category_select">Абраць катэгорыю</string>
|
||||
<string name="default_speed_system_descr">Вызначыць сыстэму вымярэньня хуткасьці</string>
|
||||
<string name="default_speed_system">Вымярэньне хуткасьці</string>
|
||||
<string name="nm">м.мілі</string>
|
||||
<string name="si_nm">Марскія мілі</string>
|
||||
<string name="si_kmh">Кілямэтраў за гадзіну</string>
|
||||
<string name="si_mph">Міляў за гадзіну</string>
|
||||
<string name="si_m_s">Мэтраў за сэкунду</string>
|
||||
<string name="si_min_km">Хвілін на кілямэтар</string>
|
||||
<string name="si_min_m">Хвілін на мілю</string>
|
||||
<string name="si_nm_h">Марскіх міль за гадзіну (вузлоў)</string>
|
||||
<string name="nm_h">м.міль/г</string>
|
||||
<string name="min_mile">хв/м</string>
|
||||
<string name="min_km">хв/км</string>
|
||||
<string name="m_s">м/с</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -2134,4 +2134,21 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
|
|||
<string name="shared_string_trip_recording">Enregistrament de trajectes</string>
|
||||
<string name="shared_string_navigation">Navegació</string>
|
||||
<string name="osmand_running_in_background">Execució en procés de fons</string>
|
||||
<string name="favorite_category_add_new">Afegeix nova categoria</string>
|
||||
<string name="favorite_category_select">Selecciona categoria</string>
|
||||
<string name="default_speed_system_descr">Defineix el sistema de mesura de velocitat</string>
|
||||
<string name="default_speed_system">Mesura de velocitat</string>
|
||||
<string name="nm">mm</string>
|
||||
<string name="si_nm">Milles marines</string>
|
||||
<string name="si_kmh">Quilòmetres per hora</string>
|
||||
<string name="si_mph">Milles per hora</string>
|
||||
<string name="si_m_s">Metres per segon</string>
|
||||
<string name="si_min_km">Minuts per quilòmetre</string>
|
||||
<string name="si_min_m">Minuts per milla</string>
|
||||
<string name="si_nm_h">Millesmarines per hora (nusos)</string>
|
||||
<string name="nm_h">mmh</string>
|
||||
<string name="min_mile">min/m</string>
|
||||
<string name="min_km">min/km</string>
|
||||
<string name="m_s">m/s</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -1443,148 +1443,154 @@
|
|||
|
||||
<string name="poi_love_hotel">Kærlighedshotel</string>
|
||||
|
||||
<string name="poi_payment_coins_yes">Acceptere mønter</string>
|
||||
<string name="poi_payment_coins_no">Acceptere ikke mønter</string>
|
||||
<string name="poi_payment_coins_0.5">Acceptere $0,5 mønter</string>
|
||||
<string name="poi_payment_coins_50c12">Acceptere 50c, 1€ og 2€ mønter</string>
|
||||
<string name="poi_payment_telephone_cards_yes">Acceptere telefonkort</string>
|
||||
<string name="poi_payment_telephone_cards_no">Acceptere ikke telefonkort</string>
|
||||
<string name="poi_payment_credit_cards_yes">Acceptere kreditkort</string>
|
||||
<string name="poi_payment_credit_cards_no">Acceptere ikke kreditkort</string>
|
||||
<string name="poi_payment_notes_yes">Acceptere papirpenge</string>
|
||||
<string name="poi_payment_notes_no">Acceptere ikke papirpenge</string>
|
||||
<string name="poi_payment_electronic_purses_yes">Accepter elektroniske punge</string>
|
||||
<string name="poi_payment_electronic_purses_no">Accepter ikke elektroniske punge</string>
|
||||
<string name="poi_payment_cash_yes">Acceptere kontanter</string>
|
||||
<string name="poi_payment_cash_no">Accepter ikke kontanter</string>
|
||||
<string name="poi_payment_debit_cards_yes">Accepter betalingskort</string>
|
||||
<string name="poi_payment_debit_cards_no">Accepter ikke betalingskort</string>
|
||||
<string name="poi_payment_bitcoin_yes">Acceptere Bitcoins</string>
|
||||
<string name="poi_payment_bitcoin_no">Acceptere ikke Bitcoins</string>
|
||||
<string name="poi_payment_visa_yes">Acceptere Visakort</string>
|
||||
<string name="poi_payment_visa_no">Acceptere ikke Visakort</string>
|
||||
<string name="poi_payment_mastercard_yes">Accepter MasterCard</string>
|
||||
<string name="poi_payment_mastercard_no">Acceptere ikke MasterCard</string>
|
||||
<string name="poi_payment_none">Gratis</string>
|
||||
<string name="poi_payment_account_cards_yes">Acceptere kontokort</string>
|
||||
<string name="poi_payment_account_cards_no">Acceptere ikke kontokort</string>
|
||||
<string name="poi_payment_maestro_yes">Accepter Maestro-kort</string>
|
||||
<string name="poi_payment_maestro_no">Accepter ikke Maestro-kort</string>
|
||||
<string name="poi_payment_american_express_yes">Accepter American Express (AMEX) kort</string>
|
||||
<string name="poi_payment_american_express_no">Accepter ikke American Express (AMEX) kort</string>
|
||||
<string name="poi_payment_diners_club_yes">Accepter Diners Club-kort</string>
|
||||
<string name="poi_payment_diners_club_no">Accepter ikke Diners Club-kort</string>
|
||||
<string name="poi_payment_dkv_yes">Accepter DKV</string>
|
||||
<string name="poi_payment_dkv_no">"Accepter ikke DKV"</string>
|
||||
<string name="poi_payment_uta_yes">Accepter UTA kort</string>
|
||||
<string name="poi_payment_uta_no">Accepter ikke UTA kort</string>
|
||||
<string name="poi_payment_efectivo_yes">Accepter Efectivo</string>
|
||||
<string name="poi_payment_efectivo_no">Accepter ikke Efectivo</string>
|
||||
<string name="poi_payment_girocard_yes">Accepter girokort</string>
|
||||
<string name="poi_payment_girocard_no">Accepter ikke girokort</string>
|
||||
<string name="poi_payment_discover_card_yes">Acceptere Discover kort</string>
|
||||
<string name="poi_payment_discover_card_no">Acceptere ikke Discover Card</string>
|
||||
<string name="poi_payment_visa_electron_yes">Accepter Visa Electron-kort</string>
|
||||
<string name="poi_payment_visa_electron_no">Accepter ikke Visa Electron-kort</string>
|
||||
<string name="poi_payment_litecoin_yes">Accepter Litecoins</string>
|
||||
<string name="poi_payment_litecoin_no">Accepter ikke Litecoins</string>
|
||||
<string name="poi_payment_cheque_yes">Accepter checks</string>
|
||||
<string name="poi_payment_cheque_no">Accepter ikke checks</string>
|
||||
<string name="poi_payment_pikepass_yes">Accepter PIKEPASS</string>
|
||||
<string name="poi_payment_pikepass_no">Accepter ikke PIKEPASS</string>
|
||||
<string name="poi_payment_pikepass_designated">Acceptere PIKEPASS (udpeget)</string>
|
||||
<string name="poi_payment_visa_debit_yes">Accepter Visa betalingskort</string>
|
||||
<string name="poi_payment_visa_debit_no">Accepter ikke Visa betalingskort</string>
|
||||
<string name="poi_payment_cryptocurrencies_no">Accepter ikke kryptovalutaer</string>
|
||||
<string name="poi_payment_others_yes">Accepter andre betalingsformer</string>
|
||||
<string name="poi_payment_others_no">Accepter ikke andre betalingsformer</string>
|
||||
<string name="poi_payment_routex_yes">Accepter Routex brændstof kort</string>
|
||||
<string name="poi_payment_routex_no">Accepter ikke Routex brændstof kort</string>
|
||||
<string name="poi_payment_bancomat_yes">Accepter Bancomat</string>
|
||||
<string name="poi_payment_bancomat_no">Accepter ikke Bancomat</string>
|
||||
<string name="poi_payment_icsf_yes">Acceptere IC lagret billetpris kort</string>
|
||||
<string name="poi_payment_icsf_no">Acceptere ikke IC lagret billetpris kort</string>
|
||||
<string name="poi_payment_prepaid_ticket_yes">Accepter forudbetalte billetter</string>
|
||||
<string name="poi_payment_jcb_yes">Accepter JCB kort</string>
|
||||
<string name="poi_payment_jcb_no">Accepter ikke JCB kort</string>
|
||||
<string name="poi_payment_laser_yes">Accepter Laser-kort</string>
|
||||
<string name="poi_payment_laser_no">Accepter ikke Laser-kort</string>
|
||||
<string name="poi_payment_ep_quick_yes">Accepter Quick kort</string>
|
||||
<string name="poi_payment_ep_quick_no">Accepter ikke Quick kort</string>
|
||||
<string name="poi_payment_eurowag_yes">Accepter Eurowag kort</string>
|
||||
<string name="poi_payment_eurowag_no">Accepter ikke Eurowag kort</string>
|
||||
<string name="poi_payment_e_zpass_yes">Accepter E‑ZPass</string>
|
||||
<string name="poi_payment_e_zpass_no">Accepter ikke E‑ZPass</string>
|
||||
<string name="poi_payment_euroshell_yes">Acceptere Euroshell brændstof kort</string>
|
||||
<string name="poi_payment_euroshell_no">Accepter ikke Euroshell brændstof kort</string>
|
||||
<string name="poi_payment_kitcard_yes">Accepter KITCard</string>
|
||||
<string name="poi_payment_kitcard_no">Accepter ikke KITCard</string>
|
||||
<string name="poi_payment_westfalen_card_yes">Acceptere Westfalen kort</string>
|
||||
<string name="poi_payment_westfalen_card_no">Accepter ikke Westfalen kort</string>
|
||||
<string name="poi_payment_v_pay_yes">Accepter V PAY kort</string>
|
||||
<string name="poi_payment_v_pay_no">Accepter ikke V PAY kort</string>
|
||||
<string name="poi_payment_dogecoin_yes">Accepter Dogecoin</string>
|
||||
<string name="poi_payment_dogecoin_no">Accepter ikke Dogecoin</string>
|
||||
<string name="poi_payment_cibus_yes">Accepter Cibus kort</string>
|
||||
<string name="poi_payment_cibus_no">Acceptere ikke Cibus kort</string>
|
||||
<string name="poi_payment_wire_transfer_yes">Acceptere bankoverførsler</string>
|
||||
<string name="poi_payment_wire_transfer_no">Accepter ikke bankoverførsler</string>
|
||||
<string name="poi_payment_ep_cash_yes">Acceptere kontanter (Geldkarte)</string>
|
||||
<string name="poi_payment_ep_cash_no">Accepter ikke kontanter (Geldkarte)</string>
|
||||
<string name="poi_payment_ep_proton_yes">Acceptere Proton kort</string>
|
||||
<string name="poi_payment_ep_proton_no">Accepter ikke Proton kort</string>
|
||||
<string name="poi_payment_ep_avant_yes">Accepter AvantCard</string>
|
||||
<string name="poi_payment_ep_avant_no">Accepter ikke AvantCard</string>
|
||||
<string name="poi_payment_ep_mep_yes">Acceptere MEP</string>
|
||||
<string name="poi_payment_ep_mep_no">Accepter ikke MEP</string>
|
||||
<string name="poi_payment_ep_minipay_yes">Accepter Minipay</string>
|
||||
<string name="poi_payment_ep_minipay_no">Accepter ikke Minipay</string>
|
||||
<string name="poi_payment_ep_minicash_yes">Accepter miniCash</string>
|
||||
<string name="poi_payment_ep_minicash_no">Accepter ikke miniCash</string>
|
||||
<string name="poi_payment_ep_moneo_yes">Acceptere Moneo</string>
|
||||
<string name="poi_payment_ep_moneo_no">Accepter ikke Moneo</string>
|
||||
<string name="poi_payment_ep_monedero4b_yes">Acceptere Monedero 4B</string>
|
||||
<string name="poi_payment_ep_monedero4b_no">Áccepter ikke Monedero 4B</string>
|
||||
<string name="poi_payment_ep_monedero_yes">Accepter Monedero</string>
|
||||
<string name="poi_payment_ep_monedero_no">Accepter ikke Monedero</string>
|
||||
<string name="poi_payment_bankaxess_yes">Accepter BankAxess</string>
|
||||
<string name="poi_payment_bankaxess_no">Acceptere ikke BankAxess</string>
|
||||
<string name="poi_payment_coinkite_yes">Accepter Coinkite</string>
|
||||
<string name="poi_payment_coinkite_no">Accepter ikke Coinkite</string>
|
||||
<string name="poi_payment_roadrunner_yes">Acceptere Roadrunner kort</string>
|
||||
<string name="poi_payment_roadrunner_no">Accepter ikke Roadrunner kort</string>
|
||||
<string name="poi_payment_svg_yes">Acceptere SVG</string>
|
||||
<string name="poi_payment_svg_no">Accepter ikke SVG</string>
|
||||
<string name="poi_payment_sms_yes">Accepter SMS betalinger</string>
|
||||
<string name="poi_payment_sms_no">Accepter ikke SMS betalinger</string>
|
||||
<string name="poi_payment_ov_chipkaart_yes">Acceptere OV-Chipkaart</string>
|
||||
<string name="poi_payment_ov_chipkaart_no">Accepter ikke OV-Chipkaart</string>
|
||||
<string name="poi_payment_oyster_yes">Accepter Oyster kort</string>
|
||||
<string name="poi_payment_oyster_no">Accepter ikke Oyster kort</string>
|
||||
<string name="poi_payment_sube_yes">Accepter SUBE kort</string>
|
||||
<string name="poi_payment_sube_no">Accepter ikke SUBE kort</string>
|
||||
<string name="poi_payment_via_verde_yes">Acceptere Via Verde</string>
|
||||
<string name="poi_payment_via_verde_no">Accepter ikke Via Verde</string>
|
||||
<string name="poi_payment_meal_voucher_yes">Acceptere spisebilletter</string>
|
||||
<string name="poi_payment_meal_voucher_no">Accepter ikke spisebilletter</string>
|
||||
<string name="poi_payment_paypal_yes">Acceptere PayPal</string>
|
||||
<string name="poi_payment_paypal_no">Accepter ikke PayPal</string>
|
||||
<string name="poi_payment_u_key_yes">Accepter U-Key</string>
|
||||
<string name="poi_payment_u_key_no">Accepter ikke U-Key</string>
|
||||
<string name="poi_payment_token_yes">Acceptere poletter</string>
|
||||
<string name="poi_payment_token_no">Accepter ikke poletter</string>
|
||||
<string name="poi_payment_gift_card_yes">Accepter gavekort</string>
|
||||
<string name="poi_payment_gift_card_no">Accepter ikke gavekort</string>
|
||||
<string name="poi_payment_golden_crown_yes">Accepter Golden Crown kort</string>
|
||||
<string name="poi_payment_golden_crown_no">Accepter Golden Crown kort</string>
|
||||
<string name="poi_payment_pro100_yes">Acceptere PRO100 kort</string>
|
||||
<string name="poi_payment_pro100_no">Accepter ikke PRO100 kort</string>
|
||||
<string name="poi_payment_union_card_yes">Accepter Union kort</string>
|
||||
<string name="poi_payment_union_card_no">Accepter ikke Union kort</string>
|
||||
<string name="poi_payment_mtsmoney_yes">Acceptere MTS-penge</string>
|
||||
<string name="poi_payment_mtsmoney_no">Accepter ike MTS-penge</string>
|
||||
<string name="poi_payment_yandexmoney_yes">Acceptere Yandex.Money</string>
|
||||
<string name="poi_payment_yandexmoney_no">Accepter ikke Yandex.Money</string>
|
||||
<string name="poi_description_payment">Betalingsbeskrivelse</string>
|
||||
<string name="poi_payment_coins_yes">Mønter accepteres</string>
|
||||
<string name="poi_payment_coins_no">Mønter accepteres ikke</string>
|
||||
<string name="poi_payment_coins_0.5">$0,5 mønter accepteres</string>
|
||||
<string name="poi_payment_coins_50c12">50c, 1€, og 2€ mønter accepteres</string>
|
||||
<string name="poi_payment_telephone_cards_yes">Telefonkort accepteres</string>
|
||||
<string name="poi_payment_telephone_cards_no">Telefonkort accepteres ikke</string>
|
||||
<string name="poi_payment_credit_cards_yes">Kreditkort accepteres</string>
|
||||
<string name="poi_payment_credit_cards_no">Kreditkort accepteres ikke</string>
|
||||
<string name="poi_payment_notes_yes">Pengesedler accepteres</string>
|
||||
<string name="poi_payment_notes_no">Pengesedler accepteres ikke</string>
|
||||
<string name="poi_payment_electronic_purses_yes">Elektroniske pengepunge accepteres</string>
|
||||
<string name="poi_payment_electronic_purses_no">Elektroniske pengepunge accepteres ikke</string>
|
||||
<string name="poi_payment_cash_yes">Kontanter accepteres</string>
|
||||
<string name="poi_payment_cash_no">Kontanter accepteres ikke</string>
|
||||
<string name="poi_payment_debit_cards_yes">Betalingskort accepteres</string>
|
||||
<string name="poi_payment_debit_cards_no">Betalingskort accepteres ikke</string>
|
||||
<string name="poi_payment_bitcoin_yes">Bitcoin accepteres</string>
|
||||
<string name="poi_payment_bitcoin_no">Bitcoin accepteres ikke</string>
|
||||
<string name="poi_payment_visa_yes">Visakort accepteres</string>
|
||||
<string name="poi_payment_visa_no">Visakort accepteres ikke</string>
|
||||
<string name="poi_payment_mastercard_yes">MasterCard accepteres</string>
|
||||
<string name="poi_payment_mastercard_no">MasterCard accepteres ikke</string>
|
||||
<string name="poi_payment_none">Vederlagsfrit</string>
|
||||
<string name="poi_payment_account_cards_yes">Kontokort accepteres</string>
|
||||
<string name="poi_payment_account_cards_no">Kontokort accepteres ikke</string>
|
||||
<string name="poi_payment_maestro_yes">Maestro kort accepteres</string>
|
||||
<string name="poi_payment_maestro_no">Maestro kort accepteres ikke</string>
|
||||
<string name="poi_payment_american_express_yes">American Express (AMEX) kort accepteres</string>
|
||||
<string name="poi_payment_american_express_no">American Express (AMEX) kort accepteres ikke</string>
|
||||
<string name="poi_payment_diners_club_yes">Diners Club kort accepteres</string>
|
||||
<string name="poi_payment_diners_club_no">Diners Club kort accepteres ikke</string>
|
||||
<string name="poi_payment_dkv_yes">DKV accepteres</string>
|
||||
<string name="poi_payment_dkv_no">DKV accepteres ikke</string>
|
||||
<string name="poi_payment_uta_yes">UTA kort accepteres</string>
|
||||
<string name="poi_payment_uta_no">UTA kort accepteres ikke</string>
|
||||
<string name="poi_payment_efectivo_yes">Efectivo accepteres</string>
|
||||
<string name="poi_payment_efectivo_no">Efectivo accepteres ikke</string>
|
||||
<string name="poi_payment_girocard_yes">Girokort accepteres</string>
|
||||
<string name="poi_payment_girocard_no">Girokort accepteres ikke</string>
|
||||
<string name="poi_payment_discover_card_yes">Discover kort accepteres</string>
|
||||
<string name="poi_payment_discover_card_no">Discover kort accepteres ikke</string>
|
||||
<string name="poi_payment_visa_electron_yes">Visa Electron kort accepteres</string>
|
||||
<string name="poi_payment_visa_electron_no">Visa Electron kort accepteres ikke</string>
|
||||
<string name="poi_payment_litecoin_yes">Litecoin accepteres</string>
|
||||
<string name="poi_payment_litecoin_no">Litecoins accepteres ikke</string>
|
||||
<string name="poi_payment_cheque_yes">Checks accepteres</string>
|
||||
<string name="poi_payment_cheque_no">Checks accepteres ikke</string>
|
||||
<string name="poi_payment_pikepass_yes">PIKEPASS accepteres</string>
|
||||
<string name="poi_payment_pikepass_no">PIKEPASS accepteres ikke</string>
|
||||
<string name="poi_payment_pikepass_designated">PIKEPASS (udpeget) accepteres</string>
|
||||
<string name="poi_payment_visa_debit_yes">Visa kreditkort accepteres</string>
|
||||
<string name="poi_payment_visa_debit_no">Visa kreditkort accepteres ikke</string>
|
||||
<string name="poi_payment_cryptocurrencies_no">Kryptovalutaer accepteres ikke</string>
|
||||
<string name="poi_payment_others_yes">Andre betalingsformer accepteres</string>
|
||||
<string name="poi_payment_others_no">Andre betalingsformer accepteres ikke</string>
|
||||
<string name="poi_payment_routex_yes">Routex benzinkort accepteres</string>
|
||||
<string name="poi_payment_routex_no">Routex benzinkort accepteres ikke</string>
|
||||
<string name="poi_payment_bancomat_yes">Bancomat accepteres</string>
|
||||
<string name="poi_payment_bancomat_no">Bancomat accepteres ikke</string>
|
||||
<string name="poi_payment_icsf_yes">IC billetkort accepteres</string>
|
||||
<string name="poi_payment_icsf_no">IC billetkort accepteres ikke</string>
|
||||
<string name="poi_payment_prepaid_ticket_yes">Forudbetalte billetter accepteres</string>
|
||||
<string name="poi_payment_jcb_yes">JCB kort accepteres</string>
|
||||
<string name="poi_payment_jcb_no">JCB kort accepteres ikke</string>
|
||||
<string name="poi_payment_laser_yes">Laser kort accepteres</string>
|
||||
<string name="poi_payment_laser_no">Laser kort accepteres ikke</string>
|
||||
<string name="poi_payment_ep_quick_yes">Quick kort accepteres</string>
|
||||
<string name="poi_payment_ep_quick_no">Quick kort accepteres ikke</string>
|
||||
<string name="poi_payment_eurowag_yes">Eurowag kort accepteres</string>
|
||||
<string name="poi_payment_eurowag_no">Eurowag kort accepteres accepteres</string>
|
||||
<string name="poi_payment_e_zpass_yes">E‑ZPass accepteres</string>
|
||||
<string name="poi_payment_e_zpass_no">E‑ZPass accepteres ikke</string>
|
||||
<string name="poi_payment_euroshell_yes">Euroshell benzinkort accepteres</string>
|
||||
<string name="poi_payment_euroshell_no">Euroshell benzinkort accepteres ikke</string>
|
||||
<string name="poi_payment_kitcard_yes">KITCard accepteres</string>
|
||||
<string name="poi_payment_kitcard_no">KITCard accepteres ikke</string>
|
||||
<string name="poi_payment_westfalen_card_yes">Westfalen kort accepteres</string>
|
||||
<string name="poi_payment_westfalen_card_no">Westfalen kort accepteres ikke</string>
|
||||
<string name="poi_payment_v_pay_yes">V PAY kort accepteres</string>
|
||||
<string name="poi_payment_v_pay_no">V PAY kort accepteres ikke</string>
|
||||
<string name="poi_payment_dogecoin_yes">Dogecoin accepteres</string>
|
||||
<string name="poi_payment_dogecoin_no">Dogecoin accepteres ikke</string>
|
||||
<string name="poi_payment_cibus_yes">Cibus kort accepteres</string>
|
||||
<string name="poi_payment_cibus_no">Cibus kort accepteres ikke</string>
|
||||
<string name="poi_payment_wire_transfer_yes">Bankoverførsler accepteres</string>
|
||||
<string name="poi_payment_wire_transfer_no">Bankoverførsler accepteres ikke</string>
|
||||
<string name="poi_payment_ep_cash_yes">Hævekort (Geldkarte) accepteres</string>
|
||||
<string name="poi_payment_ep_cash_no">Hævekort (Geldkarte) accepteres ikke</string>
|
||||
<string name="poi_payment_ep_proton_yes">Proton kort accepteres</string>
|
||||
<string name="poi_payment_ep_proton_no">Proton kort accepteres ikke</string>
|
||||
<string name="poi_payment_ep_avant_yes">AvantCard accepteres</string>
|
||||
<string name="poi_payment_ep_avant_no">AvantCard accepteres ikke</string>
|
||||
<string name="poi_payment_ep_mep_yes">MEP accepteres</string>
|
||||
<string name="poi_payment_ep_mep_no">MEP accepteres ikke</string>
|
||||
<string name="poi_payment_ep_minipay_yes">Minipay accepteres</string>
|
||||
<string name="poi_payment_ep_minipay_no">Minipay accepteres ikke</string>
|
||||
<string name="poi_payment_ep_minicash_yes">MiniCash accepteres</string>
|
||||
<string name="poi_payment_ep_minicash_no">MiniCash accepteres ikke</string>
|
||||
<string name="poi_payment_ep_moneo_yes">Moneo accepteres</string>
|
||||
<string name="poi_payment_ep_moneo_no">Moneo accepteres ikke</string>
|
||||
<string name="poi_payment_ep_monedero4b_yes">Monedero 4B accepteres</string>
|
||||
<string name="poi_payment_ep_monedero4b_no">Monedero 4B accepteres ikke</string>
|
||||
<string name="poi_payment_ep_monedero_yes">Monedero accepteres</string>
|
||||
<string name="poi_payment_ep_monedero_no">Monedero accepteres ikke</string>
|
||||
<string name="poi_payment_bankaxess_yes">BankAxess accepteres</string>
|
||||
<string name="poi_payment_bankaxess_no">BankAxess accepteres ikke</string>
|
||||
<string name="poi_payment_coinkite_yes">Coinkite accepteres</string>
|
||||
<string name="poi_payment_coinkite_no">Coinkite accepteres ikke</string>
|
||||
<string name="poi_payment_roadrunner_yes">Roadrunner kort accepteres</string>
|
||||
<string name="poi_payment_roadrunner_no">Roadrunner kort accepteres ikke</string>
|
||||
<string name="poi_payment_svg_yes">SVG accepteres</string>
|
||||
<string name="poi_payment_svg_no">SVG accepteres ikke</string>
|
||||
<string name="poi_payment_sms_yes">SMS betalinger accepteres</string>
|
||||
<string name="poi_payment_sms_no">SMS betalinger accepteres ikke</string>
|
||||
<string name="poi_payment_ov_chipkaart_yes">OV-Chipkaart accepteres</string>
|
||||
<string name="poi_payment_ov_chipkaart_no">OV-Chipkaart accepteres ikke</string>
|
||||
<string name="poi_payment_oyster_yes">Oyster kort accepteres</string>
|
||||
<string name="poi_payment_oyster_no">Oyster kort accepteres ikke</string>
|
||||
<string name="poi_payment_sube_yes">SUBE kort accepteres</string>
|
||||
<string name="poi_payment_sube_no">SUBE kort accepteres ikke</string>
|
||||
<string name="poi_payment_via_verde_yes">Via Verde accepteres</string>
|
||||
<string name="poi_payment_via_verde_no">Via Verde accepteres ikke</string>
|
||||
<string name="poi_payment_meal_voucher_yes">Spisebilletter accepteres</string>
|
||||
<string name="poi_payment_meal_voucher_no">Spisebilletter accepteres ikke</string>
|
||||
<string name="poi_payment_paypal_yes">PayPal accepteres</string>
|
||||
<string name="poi_payment_paypal_no">PayPal accepteres ikke</string>
|
||||
<string name="poi_payment_u_key_yes">U-Key accepteres</string>
|
||||
<string name="poi_payment_u_key_no">U-Key accepteres ikke</string>
|
||||
<string name="poi_payment_token_yes">Poletter accepteres</string>
|
||||
<string name="poi_payment_token_no">Poletter accepteres ikke</string>
|
||||
<string name="poi_payment_gift_card_yes">Gavekort accepteres</string>
|
||||
<string name="poi_payment_gift_card_no">Gavekort accepteres ikke</string>
|
||||
<string name="poi_payment_golden_crown_yes">Golden Crown kort accepteres</string>
|
||||
<string name="poi_payment_golden_crown_no">Golden Crown kort accepteres ikke</string>
|
||||
<string name="poi_payment_pro100_yes">PRO100 kort accepteres</string>
|
||||
<string name="poi_payment_pro100_no">PRO100 kort accepteres ikke</string>
|
||||
<string name="poi_payment_union_card_yes">Union kort accepteres</string>
|
||||
<string name="poi_payment_union_card_no">Union kort accepteres ikke</string>
|
||||
<string name="poi_payment_mtsmoney_yes">MTS-Money accepteres</string>
|
||||
<string name="poi_payment_mtsmoney_no">MTS-Money accepteres ikke</string>
|
||||
<string name="poi_payment_yandexmoney_yes">Yandex.Money accepteres</string>
|
||||
<string name="poi_payment_yandexmoney_no">Yandex.Money accepteres ikke</string>
|
||||
<string name="poi_description_payment">Beskrivelse af betalingsmetoder</string>
|
||||
|
||||
<string name="poi_internet_access_yes">Internetadgang: Ja</string>
|
||||
<string name="poi_internet_access_no">Internet access: nej</string>
|
||||
|
||||
<string name="poi_internet_access_fee_yes">Internetadgang - gebyr</string>
|
||||
<string name="poi_internet_access_fee_no">Internetadgang - inget gebyr</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -2143,7 +2143,7 @@
|
|||
<string name="shared_string_trip_recording">Optag ture</string>
|
||||
<string name="shared_string_navigation">Navigation</string>
|
||||
<string name="osmand_running_in_background">Kører i baggrunden</string>
|
||||
<string name="default_speed_system">Hastighedsmåling</string>
|
||||
<string name="default_speed_system">Hastighedsenhed</string>
|
||||
<string name="nm">nmi</string>
|
||||
<string name="si_nm">Sømil</string>
|
||||
<string name="si_kmh">Kilometer i timen</string>
|
||||
|
@ -2157,7 +2157,7 @@
|
|||
<string name="min_km">min/km</string>
|
||||
<string name="m_s">m/s</string>
|
||||
|
||||
<string name="default_speed_system_descr">Vælg enheder</string>
|
||||
<string name="default_speed_system_descr">Vælg enhed for hastighed</string>
|
||||
<string name="favorite_category_add_new">Tilføj ny</string>
|
||||
<string name="favorite_category_select">Vælg kategori</string>
|
||||
</resources>
|
||||
|
|
|
@ -1422,4 +1422,135 @@
|
|||
|
||||
<string name="poi_love_hotel">Telo</string>
|
||||
|
||||
<string name="poi_internet_access_yes">Con acceso a Internet</string>
|
||||
<string name="poi_internet_access_no">Sin acceso a Internet</string>
|
||||
|
||||
<string name="poi_payment_coins_yes">Acepta monedas</string>
|
||||
<string name="poi_payment_coins_no">No acepta monedas</string>
|
||||
<string name="poi_payment_coins_0.5">Acepta monedas de $0.5</string>
|
||||
<string name="poi_payment_coins_50c12">Acepta monedas de 50c, 1€ y 2€</string>
|
||||
<string name="poi_payment_telephone_cards_yes">Acepta tarjetas de teléfono</string>
|
||||
<string name="poi_payment_telephone_cards_no">No acepta tarjetas de teléfono</string>
|
||||
<string name="poi_payment_credit_cards_yes">Acepta tarjetas de crédito</string>
|
||||
<string name="poi_payment_credit_cards_no">No acepta tarjetas de crédito</string>
|
||||
<string name="poi_payment_notes_yes">Acepta billetes</string>
|
||||
<string name="poi_payment_notes_no">No acepta billetes</string>
|
||||
<string name="poi_payment_electronic_purses_yes">Acepta monederos electrónicos</string>
|
||||
<string name="poi_payment_electronic_purses_no">No acepta monederos electrónicos</string>
|
||||
<string name="poi_payment_cash_yes">Acepta efectivo</string>
|
||||
<string name="poi_payment_cash_no">No acepta efectivo</string>
|
||||
<string name="poi_payment_debit_cards_yes">Acepta tarjetas de débito</string>
|
||||
<string name="poi_payment_debit_cards_no">No acepta tarjetas de débito</string>
|
||||
<string name="poi_payment_bitcoin_yes">Acepta Bitcoin</string>
|
||||
<string name="poi_payment_bitcoin_no">No acepta Bitcoin</string>
|
||||
<string name="poi_payment_visa_yes">Acepta tarjetas Visa</string>
|
||||
<string name="poi_payment_visa_no">No acepta tarjetas Visa</string>
|
||||
<string name="poi_payment_mastercard_yes">Acepta tarjetas MasterCard</string>
|
||||
<string name="poi_payment_mastercard_no">No acepta tarjetas MasterCard</string>
|
||||
<string name="poi_payment_none">Gratis</string>
|
||||
<string name="poi_payment_account_cards_yes">Acepta tarjetas de cuenta</string>
|
||||
<string name="poi_payment_account_cards_no">No acepta tarjetas de cuenta</string>
|
||||
<string name="poi_payment_maestro_yes">Acepta tarjetas Maestro</string>
|
||||
<string name="poi_payment_maestro_no">No acepta tarjetas Maestro</string>
|
||||
<string name="poi_payment_american_express_yes">Acepta tarjetas American Express (AMEX)</string>
|
||||
<string name="poi_payment_american_express_no">No acepta tarjetas American Express (AMEX)</string>
|
||||
<string name="poi_payment_diners_club_yes">Acepta tarjetas Diners Club</string>
|
||||
<string name="poi_payment_diners_club_no">No acepta tarjetas Diners Club</string>
|
||||
<string name="poi_payment_dkv_yes">Acepta DKV</string>
|
||||
<string name="poi_payment_dkv_no">No acepta DKV</string>
|
||||
<string name="poi_payment_uta_yes">Acepta tarjetas UTA</string>
|
||||
<string name="poi_payment_uta_no">No acepta tarjetas UTA</string>
|
||||
<string name="poi_payment_efectivo_yes">Acepta efectivo</string>
|
||||
<string name="poi_payment_efectivo_no">No acepta efectivo</string>
|
||||
<string name="poi_payment_girocard_yes">Acepta tarjetas Girocard</string>
|
||||
<string name="poi_payment_girocard_no">No acepta tarjetas Girocard</string>
|
||||
<string name="poi_payment_discover_card_yes">Acepta tarjetas Discover Card</string>
|
||||
<string name="poi_payment_discover_card_no">No acepta tarjetas Discover Card</string>
|
||||
<string name="poi_payment_visa_electron_yes">Acepta tarjetas Visa Electron</string>
|
||||
<string name="poi_payment_visa_electron_no">No acepta tarjetas Visa Electron</string>
|
||||
<string name="poi_payment_litecoin_yes">Acepta Litecoin</string>
|
||||
<string name="poi_payment_litecoin_no">No acepta Litecoin</string>
|
||||
<string name="poi_payment_cheque_yes">Acepta cheques</string>
|
||||
<string name="poi_payment_cheque_no">No acepta cheques</string>
|
||||
<string name="poi_payment_pikepass_yes">Acepta PIKEPASS</string>
|
||||
<string name="poi_payment_pikepass_no">No acepta PIKEPASS</string>
|
||||
<string name="poi_payment_visa_debit_yes">Acepta tarjetas Visa Debit</string>
|
||||
<string name="poi_payment_visa_debit_no">No acepta tarjetas Visa Debit</string>
|
||||
<string name="poi_payment_cryptocurrencies_no">No acepta criptomonedas</string>
|
||||
<string name="poi_payment_others_yes">Acepta otro método de pago</string>
|
||||
<string name="poi_payment_others_no">No acepta otro método de pago</string>
|
||||
<string name="poi_payment_bancomat_yes">Acepta tarjetas Bancomat</string>
|
||||
<string name="poi_payment_bancomat_no">No acepta tarjetas Bancomat</string>
|
||||
<string name="poi_payment_icsf_yes">Acepta tarjetas IC Stored Fare</string>
|
||||
<string name="poi_payment_icsf_no">No acepta tarjetas IC Stored Fare</string>
|
||||
<string name="poi_payment_prepaid_ticket_yes">Acepta tickets prepago</string>
|
||||
<string name="poi_payment_jcb_yes">Acepta tarjetas JCB</string>
|
||||
<string name="poi_payment_jcb_no">No acepta tarjetas JCB</string>
|
||||
<string name="poi_payment_laser_yes">Acepta tarjetas láser</string>
|
||||
<string name="poi_payment_laser_no">No acepta tarjetas láser</string>
|
||||
<string name="poi_payment_eurowag_yes">Acepta tarjetas Eurowag</string>
|
||||
<string name="poi_payment_eurowag_no">No acepta tarjetas Eurowag</string>
|
||||
<string name="poi_payment_e_zpass_yes">Acepta E-ZPass</string>
|
||||
<string name="poi_payment_e_zpass_no">No acepta E-ZPass</string>
|
||||
<string name="poi_payment_euroshell_yes">Acepta tarjetas de combustible Euroshell</string>
|
||||
<string name="poi_payment_euroshell_no">No acepta tarjetas de combustible Euroshell</string>
|
||||
<string name="poi_payment_kitcard_yes">Acepta tarjetas KITCard</string>
|
||||
<string name="poi_payment_kitcard_no">No acepta tarjetas KITCard</string>
|
||||
<string name="poi_payment_westfalen_card_yes">Acepta tarjetas Westfalen</string>
|
||||
<string name="poi_payment_westfalen_card_no">No acepta tarjetas Westfalen</string>
|
||||
<string name="poi_payment_v_pay_yes">Acepta tarjetas V PAY</string>
|
||||
<string name="poi_payment_v_pay_no">No acepta tarjetas V PAY</string>
|
||||
<string name="poi_payment_dogecoin_yes">Acepta Dogecoin</string>
|
||||
<string name="poi_payment_dogecoin_no">No acepta Dogecoin</string>
|
||||
<string name="poi_payment_cibus_yes">Acepta tarjetas Cibus</string>
|
||||
<string name="poi_payment_cibus_no">No acepta tarjetas Cibus</string>
|
||||
<string name="poi_payment_wire_transfer_yes">Acepta transferencias electrónicas</string>
|
||||
<string name="poi_payment_wire_transfer_no">No acepta transferencias electrónicas</string>
|
||||
<string name="poi_payment_ep_proton_yes">Acepta tarjetas Proton</string>
|
||||
<string name="poi_payment_ep_proton_no">No acepta tarjetas Proton</string>
|
||||
<string name="poi_payment_ep_avant_yes">Acepta tarjetas AvantCard</string>
|
||||
<string name="poi_payment_ep_avant_no">No acepta tarjetas AvantCard</string>
|
||||
<string name="poi_payment_ep_mep_yes">Acepta MEP</string>
|
||||
<string name="poi_payment_ep_mep_no">No acepta MEP</string>
|
||||
<string name="poi_payment_ep_minipay_yes">Acepta minipagos</string>
|
||||
<string name="poi_payment_ep_minipay_no">No acepta minipagos</string>
|
||||
<string name="poi_payment_ep_monedero4b_yes">Acepta Monedero 4B</string>
|
||||
<string name="poi_payment_ep_monedero4b_no">No acepta Monedero 4B</string>
|
||||
<string name="poi_payment_ep_monedero_yes">Acepta Monedero</string>
|
||||
<string name="poi_payment_ep_monedero_no">No acepta Monedero</string>
|
||||
<string name="poi_payment_bankaxess_yes">Acepta tarjetas BankAxess</string>
|
||||
<string name="poi_payment_bankaxess_no">No acepta tarjetas BankAxess</string>
|
||||
<string name="poi_payment_coinkite_yes">Acepta Coinkite</string>
|
||||
<string name="poi_payment_coinkite_no">No acepta tarjetas Coinkite</string>
|
||||
<string name="poi_payment_roadrunner_yes">Acepta tarjetas Roadrunner</string>
|
||||
<string name="poi_payment_roadrunner_no">No acepta tarjetas Roadrunner</string>
|
||||
<string name="poi_payment_sms_yes">Acepta pagos por SMS</string>
|
||||
<string name="poi_payment_sms_no">No acepta pagos por SMS</string>
|
||||
<string name="poi_payment_ov_chipkaart_yes">Acepta tarjetas OV-Chipkaart</string>
|
||||
<string name="poi_payment_ov_chipkaart_no">No acepta tarjetas OV-Chipkaart</string>
|
||||
<string name="poi_payment_oyster_yes">Acepta tarjetas Oyster</string>
|
||||
<string name="poi_payment_oyster_no">No acepta tarjetas Oyster</string>
|
||||
<string name="poi_payment_sube_yes">Acepta tarjetas SUBE</string>
|
||||
<string name="poi_payment_sube_no">No acepta tarjetas SUBE</string>
|
||||
<string name="poi_payment_via_verde_yes">Acepta tarjetas Via Verde</string>
|
||||
<string name="poi_payment_via_verde_no">No acepta tarjetas Via Verde</string>
|
||||
<string name="poi_payment_paypal_yes">Acepta Paypal</string>
|
||||
<string name="poi_payment_paypal_no">No acepta Paypal</string>
|
||||
<string name="poi_payment_u_key_yes">Acepta U-Key</string>
|
||||
<string name="poi_payment_u_key_no">No acepta U-Key</string>
|
||||
<string name="poi_payment_token_yes">Acepta Tokens</string>
|
||||
<string name="poi_payment_token_no">No acepta Tokens</string>
|
||||
<string name="poi_payment_gift_card_yes">Acepta tarjetas de regalo</string>
|
||||
<string name="poi_payment_gift_card_no">No acepta tarjetas de regalo</string>
|
||||
<string name="poi_payment_pro100_yes">Acepta tarjetas PRO100</string>
|
||||
<string name="poi_payment_pro100_no">No acepta tarjetas PRO100</string>
|
||||
<string name="poi_payment_union_card_yes">Acepta tarjetas Union Card</string>
|
||||
<string name="poi_payment_union_card_no">No acepta tarjetas Union card</string>
|
||||
<string name="poi_payment_yandexmoney_yes">Acepta Yandex.Money</string>
|
||||
<string name="poi_payment_yandexmoney_no">No acepta Yandex.Money</string>
|
||||
<string name="poi_description_payment">Detalles de pago</string>
|
||||
|
||||
<string name="poi_internet_access_fee_yes">Acceso a Internet tarifado</string>
|
||||
<string name="poi_internet_access_fee_no">Acceso a Internet sin cargo</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -1426,4 +1426,135 @@
|
|||
<string name="poi_garden_style_rosarium">Jardín rosaleda</string>
|
||||
<string name="poi_love_hotel">Albergue transitorio</string>
|
||||
|
||||
<string name="poi_internet_access_yes">Con acceso a Internet</string>
|
||||
<string name="poi_internet_access_no">Sin acceso a Internet</string>
|
||||
|
||||
<string name="poi_payment_coins_yes">Acepta monedas</string>
|
||||
<string name="poi_payment_coins_no">No acepta monedas</string>
|
||||
<string name="poi_payment_coins_0.5">Acepta monedas de $0.5</string>
|
||||
<string name="poi_payment_coins_50c12">Acepta monedas de 50c, 1€ y 2€</string>
|
||||
<string name="poi_payment_telephone_cards_yes">Acepta tarjetas de teléfono</string>
|
||||
<string name="poi_payment_telephone_cards_no">No acepta tarjetas de teléfono</string>
|
||||
<string name="poi_payment_credit_cards_yes">Acepta tarjetas de crédito</string>
|
||||
<string name="poi_payment_credit_cards_no">No acepta tarjetas de crédito</string>
|
||||
<string name="poi_payment_notes_yes">Acepta billetes</string>
|
||||
<string name="poi_payment_notes_no">No acepta billetes</string>
|
||||
<string name="poi_payment_electronic_purses_yes">Acepta monederos electrónicos</string>
|
||||
<string name="poi_payment_electronic_purses_no">No acepta monederos electrónicos</string>
|
||||
<string name="poi_payment_cash_yes">Acepta efectivo</string>
|
||||
<string name="poi_payment_cash_no">No acepta efectivo</string>
|
||||
<string name="poi_payment_debit_cards_yes">Acepta tarjetas de débito</string>
|
||||
<string name="poi_payment_debit_cards_no">No acepta tarjetas de débito</string>
|
||||
<string name="poi_payment_bitcoin_yes">Acepta Bitcoin</string>
|
||||
<string name="poi_payment_bitcoin_no">No acepta Bitcoin</string>
|
||||
<string name="poi_payment_visa_yes">Acepta tarjetas Visa</string>
|
||||
<string name="poi_payment_visa_no">No acepta tarjetas Visa</string>
|
||||
<string name="poi_payment_mastercard_yes">Acepta tarjetas MasterCard</string>
|
||||
<string name="poi_payment_mastercard_no">No acepta tarjetas MasterCard</string>
|
||||
<string name="poi_payment_none">Gratis</string>
|
||||
<string name="poi_payment_account_cards_yes">Acepta tarjetas de cuenta</string>
|
||||
<string name="poi_payment_account_cards_no">No acepta tarjetas de cuenta</string>
|
||||
<string name="poi_payment_maestro_yes">Acepta tarjetas Maestro</string>
|
||||
<string name="poi_payment_maestro_no">No acepta tarjetas Maestro</string>
|
||||
<string name="poi_payment_american_express_yes">Acepta tarjetas American Express (AMEX)</string>
|
||||
<string name="poi_payment_american_express_no">No acepta tarjetas American Express (AMEX)</string>
|
||||
<string name="poi_payment_diners_club_yes">Acepta tarjetas Diners Club</string>
|
||||
<string name="poi_payment_diners_club_no">No acepta tarjetas Diners Club</string>
|
||||
<string name="poi_payment_dkv_yes">Acepta DKV</string>
|
||||
<string name="poi_payment_dkv_no">No acepta DKV</string>
|
||||
<string name="poi_payment_uta_yes">Acepta tarjetas UTA</string>
|
||||
<string name="poi_payment_uta_no">No acepta tarjetas UTA</string>
|
||||
<string name="poi_payment_efectivo_yes">Acepta efectivo</string>
|
||||
<string name="poi_payment_efectivo_no">No acepta efectivo</string>
|
||||
<string name="poi_payment_girocard_yes">Acepta tarjetas Girocard</string>
|
||||
<string name="poi_payment_girocard_no">No acepta tarjetas Girocard</string>
|
||||
<string name="poi_payment_discover_card_yes">Acepta tarjetas Discover Card</string>
|
||||
<string name="poi_payment_discover_card_no">No acepta tarjetas Discover Card</string>
|
||||
<string name="poi_payment_visa_electron_yes">Acepta tarjetas Visa Electron</string>
|
||||
<string name="poi_payment_visa_electron_no">No acepta tarjetas Visa Electron</string>
|
||||
<string name="poi_payment_litecoin_yes">Acepta Litecoin</string>
|
||||
<string name="poi_payment_litecoin_no">No acepta Litecoin</string>
|
||||
<string name="poi_payment_cheque_yes">Acepta cheques</string>
|
||||
<string name="poi_payment_cheque_no">No acepta cheques</string>
|
||||
<string name="poi_payment_pikepass_yes">Acepta PIKEPASS</string>
|
||||
<string name="poi_payment_pikepass_no">No acepta PIKEPASS</string>
|
||||
<string name="poi_payment_visa_debit_yes">Acepta tarjetas Visa Debit</string>
|
||||
<string name="poi_payment_visa_debit_no">No acepta tarjetas Visa Debit</string>
|
||||
<string name="poi_payment_cryptocurrencies_no">No acepta criptomonedas</string>
|
||||
<string name="poi_payment_others_yes">Acepta otro método de pago</string>
|
||||
<string name="poi_payment_others_no">No acepta otro método de pago</string>
|
||||
<string name="poi_payment_bancomat_yes">Acepta tarjetas Bancomat</string>
|
||||
<string name="poi_payment_bancomat_no">No acepta tarjetas Bancomat</string>
|
||||
<string name="poi_payment_icsf_yes">Acepta tarjetas IC Stored Fare</string>
|
||||
<string name="poi_payment_icsf_no">No acepta tarjetas IC Stored Fare</string>
|
||||
<string name="poi_payment_prepaid_ticket_yes">Acepta tickets prepago</string>
|
||||
<string name="poi_payment_jcb_yes">Acepta tarjetas JCB</string>
|
||||
<string name="poi_payment_jcb_no">No acepta tarjetas JCB</string>
|
||||
<string name="poi_payment_laser_yes">Acepta tarjetas láser</string>
|
||||
<string name="poi_payment_laser_no">No acepta tarjetas láser</string>
|
||||
<string name="poi_payment_eurowag_yes">Acepta tarjetas Eurowag</string>
|
||||
<string name="poi_payment_eurowag_no">No acepta tarjetas Eurowag</string>
|
||||
<string name="poi_payment_e_zpass_yes">Acepta E-ZPass</string>
|
||||
<string name="poi_payment_e_zpass_no">No acepta E-ZPass</string>
|
||||
<string name="poi_payment_euroshell_yes">Acepta tarjetas de combustible Euroshell</string>
|
||||
<string name="poi_payment_euroshell_no">No acepta tarjetas de combustible Euroshell</string>
|
||||
<string name="poi_payment_kitcard_yes">Acepta tarjetas KITCard</string>
|
||||
<string name="poi_payment_kitcard_no">No acepta tarjetas KITCard</string>
|
||||
<string name="poi_payment_westfalen_card_yes">Acepta tarjetas Westfalen</string>
|
||||
<string name="poi_payment_westfalen_card_no">No acepta tarjetas Westfalen</string>
|
||||
<string name="poi_payment_v_pay_yes">Acepta tarjetas V PAY</string>
|
||||
<string name="poi_payment_v_pay_no">No acepta tarjetas V PAY</string>
|
||||
<string name="poi_payment_dogecoin_yes">Acepta Dogecoin</string>
|
||||
<string name="poi_payment_dogecoin_no">No acepta Dogecoin</string>
|
||||
<string name="poi_payment_cibus_yes">Acepta tarjetas Cibus</string>
|
||||
<string name="poi_payment_cibus_no">No acepta tarjetas Cibus</string>
|
||||
<string name="poi_payment_wire_transfer_yes">Acepta transferencias electrónicas</string>
|
||||
<string name="poi_payment_wire_transfer_no">No acepta transferencias electrónicas</string>
|
||||
<string name="poi_payment_ep_proton_yes">Acepta tarjetas Proton</string>
|
||||
<string name="poi_payment_ep_proton_no">No acepta tarjetas Proton</string>
|
||||
<string name="poi_payment_ep_avant_yes">Acepta tarjetas AvantCard</string>
|
||||
<string name="poi_payment_ep_avant_no">No acepta tarjetas AvantCard</string>
|
||||
<string name="poi_payment_ep_mep_yes">Acepta MEP</string>
|
||||
<string name="poi_payment_ep_mep_no">No acepta MEP</string>
|
||||
<string name="poi_payment_ep_minipay_yes">Acepta minipagos</string>
|
||||
<string name="poi_payment_ep_minipay_no">No acepta minipagos</string>
|
||||
<string name="poi_payment_ep_monedero4b_yes">Acepta Monedero 4B</string>
|
||||
<string name="poi_payment_ep_monedero4b_no">No acepta Monedero 4B</string>
|
||||
<string name="poi_payment_ep_monedero_yes">Acepta Monedero</string>
|
||||
<string name="poi_payment_ep_monedero_no">No acepta Monedero</string>
|
||||
<string name="poi_payment_bankaxess_yes">Acepta tarjetas BankAxess</string>
|
||||
<string name="poi_payment_bankaxess_no">No acepta tarjetas BankAxess</string>
|
||||
<string name="poi_payment_coinkite_yes">Acepta Coinkite</string>
|
||||
<string name="poi_payment_coinkite_no">No acepta tarjetas Coinkite</string>
|
||||
<string name="poi_payment_roadrunner_yes">Acepta tarjetas Roadrunner</string>
|
||||
<string name="poi_payment_roadrunner_no">No acepta tarjetas Roadrunner</string>
|
||||
<string name="poi_payment_sms_yes">Acepta pagos por SMS</string>
|
||||
<string name="poi_payment_sms_no">No acepta pagos por SMS</string>
|
||||
<string name="poi_payment_ov_chipkaart_yes">Acepta tarjetas OV-Chipkaart</string>
|
||||
<string name="poi_payment_ov_chipkaart_no">No acepta tarjetas OV-Chipkaart</string>
|
||||
<string name="poi_payment_oyster_yes">Acepta tarjetas Oyster</string>
|
||||
<string name="poi_payment_oyster_no">No acepta tarjetas Oyster</string>
|
||||
<string name="poi_payment_sube_yes">Acepta tarjetas SUBE</string>
|
||||
<string name="poi_payment_sube_no">No acepta tarjetas SUBE</string>
|
||||
<string name="poi_payment_via_verde_yes">Acepta tarjetas Via Verde</string>
|
||||
<string name="poi_payment_via_verde_no">No acepta tarjetas Via Verde</string>
|
||||
<string name="poi_payment_paypal_yes">Acepta Paypal</string>
|
||||
<string name="poi_payment_paypal_no">No acepta Paypal</string>
|
||||
<string name="poi_payment_u_key_yes">Acepta U-Key</string>
|
||||
<string name="poi_payment_u_key_no">No acepta U-Key</string>
|
||||
<string name="poi_payment_token_yes">Acepta Tokens</string>
|
||||
<string name="poi_payment_token_no">No acepta Tokens</string>
|
||||
<string name="poi_payment_gift_card_yes">Acepta tarjetas de regalo</string>
|
||||
<string name="poi_payment_gift_card_no">No acepta tarjetas de regalo</string>
|
||||
<string name="poi_payment_pro100_yes">Acepta tarjetas PRO100</string>
|
||||
<string name="poi_payment_pro100_no">No acepta tarjetas PRO100</string>
|
||||
<string name="poi_payment_union_card_yes">Acepta tarjetas Union Card</string>
|
||||
<string name="poi_payment_union_card_no">No acepta tarjetas Union card</string>
|
||||
<string name="poi_payment_yandexmoney_yes">Acepta Yandex.Money</string>
|
||||
<string name="poi_payment_yandexmoney_no">No acepta Yandex.Money</string>
|
||||
<string name="poi_description_payment">Detalles de pago</string>
|
||||
|
||||
<string name="poi_internet_access_fee_yes">Acceso a Internet tarifado</string>
|
||||
<string name="poi_internet_access_fee_no">Acceso a Internet sin cargo</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -2218,4 +2218,6 @@
|
|||
<string name="favourites_edit_dialog_title">Información del favorito</string>
|
||||
<string name="favourites_context_menu_add">Añadir favorito</string>
|
||||
<string name="roads">Carreteras</string>
|
||||
<string name="favorite_category_add_new">Añadir nuevo</string>
|
||||
<string name="favorite_category_select">Seleccionar categoría</string>
|
||||
</resources>
|
||||
|
|
|
@ -845,7 +845,7 @@
|
|||
<string name="use_short_object_names">Usa i nomi degli oggetti</string>
|
||||
<string name="accessibility_preferences_descr">Preferenze relative all\'accessibilità</string>
|
||||
<string name="accessibility_preferences">Accessibilità</string>
|
||||
<string name="index_name_north_america">Nord America</string>
|
||||
<string name="index_name_north_america">Nord America - Messico</string>
|
||||
<string name="index_name_us">Nord America - Stati Uniti</string>
|
||||
<string name="index_name_central_america">America Centrale</string>
|
||||
<string name="index_name_south_america">Sud America</string>
|
||||
|
@ -1519,7 +1519,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
|||
<string name="index_name_gb">Europa - Gran Bretagna</string>
|
||||
<string name="lang_zh">Cinese</string>
|
||||
<string name="lang_pt_br">Portoghese (Brasile)</string>
|
||||
<string name="index_name_canada">Nord americano - Canada</string>
|
||||
<string name="index_name_canada">Nord America - Canada</string>
|
||||
<string name="index_item_nation_addresses">indirizzi nazionali</string>
|
||||
<string name="index_item_world_altitude_correction">Correzione altitudine mondiale</string>
|
||||
<string name="index_item_world_seamarks">Boe mondiali</string>
|
||||
|
@ -2202,4 +2202,6 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
|||
<string name="min_km">min/km</string>
|
||||
<string name="m_s">m/s</string>
|
||||
|
||||
<string name="favorite_category_add_new">Aggiungi nuova</string>
|
||||
<string name="favorite_category_select">Scegli la categoria</string>
|
||||
</resources>
|
||||
|
|
|
@ -781,6 +781,8 @@
|
|||
<string name="poi_internet_access_wired">Доступ в Интернет: проводное подключение</string>
|
||||
<string name="poi_internet_access_public">Доступ в Интернет: общедоступный</string>
|
||||
<string name="poi_internet_access_service">Доступ в Интернет: сервис</string>
|
||||
<string name="poi_internet_access_yes">Доступ в Интернет</string>
|
||||
<string name="poi_internet_access_no">Нет доступа в Интернет</string>
|
||||
|
||||
<string name="poi_farm">Фермерский магазин</string>
|
||||
<string name="poi_personal_transport">Личный транспорт</string>
|
||||
|
@ -1399,4 +1401,7 @@
|
|||
<string name="poi_payment_yandexmoney_no">Оплата через Яндекс.Деньги не принимается</string>
|
||||
<string name="poi_description_payment">Описание способа оплаты</string>
|
||||
|
||||
<string name="poi_internet_access_fee_yes">Взимается плата за интернет</string>
|
||||
<string name="poi_internet_access_fee_no">Плата за интернет не взимается</string>
|
||||
|
||||
</resources>
|
|
@ -1422,4 +1422,66 @@
|
|||
|
||||
<string name="poi_love_hotel">情侶賓館</string>
|
||||
|
||||
<string name="poi_payment_coins_yes">接受硬幣</string>
|
||||
<string name="poi_payment_coins_no">不接受硬幣</string>
|
||||
<string name="poi_payment_coins_0.5">接受 0.5 美元的硬幣</string>
|
||||
<string name="poi_payment_coins_50c12">接受 50 分、1 歐元和 2 歐元硬幣</string>
|
||||
<string name="poi_payment_telephone_cards_yes">接受電話卡</string>
|
||||
<string name="poi_payment_telephone_cards_no">不接受電話卡</string>
|
||||
<string name="poi_payment_credit_cards_yes">接受信用卡</string>
|
||||
<string name="poi_payment_credit_cards_no">不接受信用卡</string>
|
||||
<string name="poi_payment_notes_yes">接受紙鈔</string>
|
||||
<string name="poi_payment_notes_no">不接受紙鈔</string>
|
||||
<string name="poi_payment_electronic_purses_yes">接受電子錢包</string>
|
||||
<string name="poi_payment_electronic_purses_no">不接受電子錢包</string>
|
||||
<string name="poi_payment_cash_yes">接受現金</string>
|
||||
<string name="poi_payment_cash_no">不接受現金</string>
|
||||
<string name="poi_payment_debit_cards_yes">接受簽帳卡</string>
|
||||
<string name="poi_payment_debit_cards_no">不接受簽帳卡</string>
|
||||
<string name="poi_payment_bitcoin_yes">接受比特幣</string>
|
||||
<string name="poi_payment_bitcoin_no">不接受比特幣</string>
|
||||
<string name="poi_payment_visa_yes">接受 Visa 卡</string>
|
||||
<string name="poi_payment_visa_no">不接受 Visa 卡</string>
|
||||
<string name="poi_payment_mastercard_yes">接受萬事達卡</string>
|
||||
<string name="poi_payment_mastercard_no">不接受萬事達卡</string>
|
||||
<string name="poi_payment_none">免費</string>
|
||||
<string name="poi_payment_account_cards_yes">接受帳戶卡</string>
|
||||
<string name="poi_payment_account_cards_no">不接受帳戶卡</string>
|
||||
<string name="poi_payment_maestro_yes">接受 Maestro 卡</string>
|
||||
<string name="poi_payment_maestro_no">不接受 Maestro 卡</string>
|
||||
<string name="poi_payment_american_express_yes">接受美國運通卡 (AMEX)</string>
|
||||
<string name="poi_payment_american_express_no">不接受美國運通卡 (AMEX)</string>
|
||||
<string name="poi_internet_access_yes">網際網路存取:是</string>
|
||||
<string name="poi_internet_access_no">網際網路存取:無</string>
|
||||
|
||||
<string name="poi_payment_diners_club_yes">接受大來卡</string>
|
||||
<string name="poi_payment_diners_club_no">不接受大來卡</string>
|
||||
<string name="poi_payment_dkv_yes">接受 DKV</string>
|
||||
<string name="poi_payment_dkv_no">不接受 DKV</string>
|
||||
<string name="poi_payment_uta_yes">接受 UTA 卡</string>
|
||||
<string name="poi_payment_uta_no">不接受 UTA 卡</string>
|
||||
<string name="poi_payment_efectivo_yes">接受 Efectivo</string>
|
||||
<string name="poi_payment_efectivo_no">不接受 Efectivo</string>
|
||||
<string name="poi_payment_girocard_yes">接受 Girocard</string>
|
||||
<string name="poi_payment_girocard_no">不接受 Girocard</string>
|
||||
<string name="poi_payment_discover_card_yes">接受發現卡</string>
|
||||
<string name="poi_payment_discover_card_no">不接受發現卡</string>
|
||||
<string name="poi_payment_visa_electron_yes">接受 Visa Electron 卡</string>
|
||||
<string name="poi_payment_visa_electron_no">不接受 Visa Electron 卡</string>
|
||||
<string name="poi_payment_litecoin_yes">接受 Litecoins</string>
|
||||
<string name="poi_payment_litecoin_no">不接受 Litecoins</string>
|
||||
<string name="poi_payment_cheque_yes">接受支票</string>
|
||||
<string name="poi_payment_cheque_no">不接受支票</string>
|
||||
<string name="poi_payment_pikepass_yes">接受 PIKEPASS</string>
|
||||
<string name="poi_payment_pikepass_no">不接受 PIKEPASS</string>
|
||||
<string name="poi_payment_pikepass_designated">接受 PIKEPASS (指定)</string>
|
||||
<string name="poi_payment_visa_debit_yes">接受 Visa Debit 卡</string>
|
||||
<string name="poi_payment_visa_debit_no">不接受 Visa Electron 卡</string>
|
||||
<string name="poi_payment_cryptocurrencies_no">不接受 Cryptocurrencies</string>
|
||||
<string name="poi_payment_others_yes">接受其它付款方法</string>
|
||||
<string name="poi_payment_others_no">不接受其它付款方法</string>
|
||||
<string name="poi_payment_routex_yes">接受 Routex 燃料卡</string>
|
||||
<string name="poi_payment_routex_no">不接受 Routex 燃料卡</string>
|
||||
<string name="poi_payment_bancomat_yes">接受 Bancomat</string>
|
||||
<string name="poi_payment_bancomat_no">不接受 Bancomat</string>
|
||||
</resources>
|
||||
|
|
4
OsmAnd/res/values/ids.xml
Normal file
4
OsmAnd/res/values/ids.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<item name="index_item" type="id"/>
|
||||
</resources>
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<resources>
|
||||
<!-- categories -->
|
||||
<string name="poi_shop">Shop</string>
|
||||
|
@ -719,6 +719,8 @@
|
|||
<string name="poi_internet_access_wired">Internet access: wired</string>
|
||||
<string name="poi_internet_access_public">Internet access: public</string>
|
||||
<string name="poi_internet_access_service">Internet access: service</string>
|
||||
<string name="poi_internet_access_yes">Internet access: yes</string>
|
||||
<string name="poi_internet_access_no">Internet access: no</string>
|
||||
|
||||
<string name="poi_monastery">Monastery</string>
|
||||
<string name="poi_historic_monastery">Historic monastery</string>
|
||||
|
@ -1404,148 +1406,151 @@
|
|||
|
||||
<string name="poi_love_hotel">Love hotel</string>
|
||||
|
||||
<string name="poi_payment_coins_yes">Accept coins</string>
|
||||
<string name="poi_payment_coins_no">Don\'t accept coins</string>
|
||||
<string name="poi_payment_coins_0.5">Accept $0.5 coins</string>
|
||||
<string name="poi_payment_coins_50c12">Accept 50c, 1€ and 2€ coins</string>
|
||||
<string name="poi_payment_telephone_cards_yes">Accept telephone cards</string>
|
||||
<string name="poi_payment_telephone_cards_no">Don\'t accept telephone cards</string>
|
||||
<string name="poi_payment_credit_cards_yes">Accept credit cards</string>
|
||||
<string name="poi_payment_credit_cards_no">Don\'t accept credit cards</string>
|
||||
<string name="poi_payment_notes_yes">Accept paper money</string>
|
||||
<string name="poi_payment_notes_no">Don\'t accept paper money</string>
|
||||
<string name="poi_payment_electronic_purses_yes">Accept electronic purses</string>
|
||||
<string name="poi_payment_electronic_purses_no">Don\'t accept electronic purses</string>
|
||||
<string name="poi_payment_cash_yes">Accept cash</string>
|
||||
<string name="poi_payment_cash_no">Don\'t accept cash</string>
|
||||
<string name="poi_payment_debit_cards_yes">Accept debit cards</string>
|
||||
<string name="poi_payment_debit_cards_no">Don\'t accept debit cards</string>
|
||||
<string name="poi_payment_bitcoin_yes">Accept Bitcoins</string>
|
||||
<string name="poi_payment_bitcoin_no">Don\'t accept Bitcoins</string>
|
||||
<string name="poi_payment_visa_yes">Accept Visa cards</string>
|
||||
<string name="poi_payment_visa_no">Don\'t accept Visa cards</string>
|
||||
<string name="poi_payment_mastercard_yes">Accept MasterCard</string>
|
||||
<string name="poi_payment_mastercard_no">Don\'t accept MasterCard</string>
|
||||
<string name="poi_payment_coins_yes">Coins accepted</string>
|
||||
<string name="poi_payment_coins_no">Coins not accepted</string>
|
||||
<string name="poi_payment_coins_0.5">$0.5 coins accepted</string>
|
||||
<string name="poi_payment_coins_50c12">50c, 1€, and 2€ coins accepted</string>
|
||||
<string name="poi_payment_telephone_cards_yes">Telephone cards accepted</string>
|
||||
<string name="poi_payment_telephone_cards_no">Telephone cards not accepted</string>
|
||||
<string name="poi_payment_credit_cards_yes">Credit cards accepted</string>
|
||||
<string name="poi_payment_credit_cards_no">Credit cards not accepted</string>
|
||||
<string name="poi_payment_notes_yes">Banknotes accepted</string>
|
||||
<string name="poi_payment_notes_no">Banknotes not accepted</string>
|
||||
<string name="poi_payment_electronic_purses_yes">Electronic purses accepted</string>
|
||||
<string name="poi_payment_electronic_purses_no">Electronic purses not accepted</string>
|
||||
<string name="poi_payment_cash_yes">Cash accepted</string>
|
||||
<string name="poi_payment_cash_no">Cash not accepted</string>
|
||||
<string name="poi_payment_debit_cards_yes">Debit cards accepted</string>
|
||||
<string name="poi_payment_debit_cards_no">Debit cards not accepted</string>
|
||||
<string name="poi_payment_bitcoin_yes">Bitcoin accepted</string>
|
||||
<string name="poi_payment_bitcoin_no">Bitcoin not accepted</string>
|
||||
<string name="poi_payment_visa_yes">Visa cards accepted</string>
|
||||
<string name="poi_payment_visa_no">Visa cards not accepted</string>
|
||||
<string name="poi_payment_mastercard_yes">MasterCard accepted</string>
|
||||
<string name="poi_payment_mastercard_no">MasterCard not accepted</string>
|
||||
<string name="poi_payment_none">Free of charge</string>
|
||||
<string name="poi_payment_account_cards_yes">Accept account cards</string>
|
||||
<string name="poi_payment_account_cards_no">Don\'t accept account cards</string>
|
||||
<string name="poi_payment_maestro_yes">Accept Maestro cards</string>
|
||||
<string name="poi_payment_maestro_no">Don\'t accept Maestro cards</string>
|
||||
<string name="poi_payment_american_express_yes">Accept American Express (AMEX) cards</string>
|
||||
<string name="poi_payment_american_express_no">Don\'t accept American Express (AMEX) cards</string>
|
||||
<string name="poi_payment_diners_club_yes">Accept Diners Club cards</string>
|
||||
<string name="poi_payment_diners_club_no">Don\'t accept Diners Club cards</string>
|
||||
<string name="poi_payment_dkv_yes">Accept DKV</string>
|
||||
<string name="poi_payment_dkv_no">Don\'t accept DKV</string>
|
||||
<string name="poi_payment_uta_yes">Accept UTA cards</string>
|
||||
<string name="poi_payment_uta_no">Don\'t accept UTA cards</string>
|
||||
<string name="poi_payment_efectivo_yes">Accept Efectivo</string>
|
||||
<string name="poi_payment_efectivo_no">Don\'t accept Efectivo</string>
|
||||
<string name="poi_payment_girocard_yes">Accept Girocard</string>
|
||||
<string name="poi_payment_girocard_no">Don\'t accept Girocard</string>
|
||||
<string name="poi_payment_discover_card_yes">Accept Discover Card</string>
|
||||
<string name="poi_payment_discover_card_no">Don\'t accept Discover Card</string>
|
||||
<string name="poi_payment_visa_electron_yes">Accept Visa Electron cards</string>
|
||||
<string name="poi_payment_visa_electron_no">Don\'t accept Visa Electron cards</string>
|
||||
<string name="poi_payment_litecoin_yes">Accept Litecoins</string>
|
||||
<string name="poi_payment_litecoin_no">Don\'t accept Litecoins</string>
|
||||
<string name="poi_payment_cheque_yes">Accept cheques</string>
|
||||
<string name="poi_payment_cheque_no">Don\'t accept cheques</string>
|
||||
<string name="poi_payment_pikepass_yes">Accept PIKEPASS</string>
|
||||
<string name="poi_payment_pikepass_no">Don\'t accept PIKEPASS</string>
|
||||
<string name="poi_payment_pikepass_designated">Accept PIKEPASS (designated)</string>
|
||||
<string name="poi_payment_visa_debit_yes">Accept Visa Debit cards</string>
|
||||
<string name="poi_payment_visa_debit_no">Don\'t accept Visa Debit cards</string>
|
||||
<string name="poi_payment_cryptocurrencies_no">Don\'t accept cryptocurrencies</string>
|
||||
<string name="poi_payment_others_yes">Accept other payment methods</string>
|
||||
<string name="poi_payment_others_no">Don\'t accept other payment methods</string>
|
||||
<string name="poi_payment_routex_yes">Accept Routex fuel cards</string>
|
||||
<string name="poi_payment_routex_no">Don\'t accept Routex fuel cards</string>
|
||||
<string name="poi_payment_bancomat_yes">Accept Bancomat</string>
|
||||
<string name="poi_payment_bancomat_no">Don\'t accept Bancomat</string>
|
||||
<string name="poi_payment_icsf_yes">Accept IC Stored Fare cards</string>
|
||||
<string name="poi_payment_icsf_no">Don\'t accept IC Stored Fare cards</string>
|
||||
<string name="poi_payment_prepaid_ticket_yes">Accept prepaid tickets</string>
|
||||
<string name="poi_payment_jcb_yes">Accept JCB cards</string>
|
||||
<string name="poi_payment_jcb_no">Don\'t accept JCB cards</string>
|
||||
<string name="poi_payment_laser_yes">Accept Laser cards</string>
|
||||
<string name="poi_payment_laser_no">Don\'t accept Laser cards</string>
|
||||
<string name="poi_payment_ep_quick_yes">Accept Quick cards</string>
|
||||
<string name="poi_payment_ep_quick_no">Don\'t accept Quick cards</string>
|
||||
<string name="poi_payment_eurowag_yes">Accept Eurowag cards</string>
|
||||
<string name="poi_payment_eurowag_no">Don\'t accept Eurowag cards</string>
|
||||
<string name="poi_payment_e_zpass_yes">Accept E‑ZPass</string>
|
||||
<string name="poi_payment_e_zpass_no">Don\'t accept E‑ZPass</string>
|
||||
<string name="poi_payment_euroshell_yes">Accept Euroshell fuel cards</string>
|
||||
<string name="poi_payment_euroshell_no">Don\'t accept Euroshell fuel cards</string>
|
||||
<string name="poi_payment_kitcard_yes">Accept KITCard</string>
|
||||
<string name="poi_payment_kitcard_no">Don\'t accept KITCard</string>
|
||||
<string name="poi_payment_westfalen_card_yes">Accept Westfalen cards</string>
|
||||
<string name="poi_payment_westfalen_card_no">Don\'t accept Westfalen cards</string>
|
||||
<string name="poi_payment_v_pay_yes">Accept V PAY cards</string>
|
||||
<string name="poi_payment_v_pay_no">Don\'t accept V PAY cards</string>
|
||||
<string name="poi_payment_dogecoin_yes">Accept Dogecoin</string>
|
||||
<string name="poi_payment_dogecoin_no">Don\'t accept Dogecoin</string>
|
||||
<string name="poi_payment_cibus_yes">Accept Cibus cards</string>
|
||||
<string name="poi_payment_cibus_no">Don\'t accept Cibus cards</string>
|
||||
<string name="poi_payment_wire_transfer_yes">Accept wire transfers</string>
|
||||
<string name="poi_payment_wire_transfer_no">Don\'t accept wire transfers</string>
|
||||
<string name="poi_payment_ep_cash_yes">Accept Cash (Geldkarte)</string>
|
||||
<string name="poi_payment_ep_cash_no">Don\'t accept Cash (Geldkarte)</string>
|
||||
<string name="poi_payment_ep_proton_yes">Accept Proton cards</string>
|
||||
<string name="poi_payment_ep_proton_no">Don\'t accept Proton cards</string>
|
||||
<string name="poi_payment_ep_avant_yes">Accept AvantCard</string>
|
||||
<string name="poi_payment_ep_avant_no">Don\'t accept AvantCard</string>
|
||||
<string name="poi_payment_ep_mep_yes">Accept MEP</string>
|
||||
<string name="poi_payment_ep_mep_no">Don\'t accept MEP</string>
|
||||
<string name="poi_payment_ep_minipay_yes">Accept Minipay</string>
|
||||
<string name="poi_payment_ep_minipay_no">Don\'t accept Minipay</string>
|
||||
<string name="poi_payment_ep_minicash_yes">Accept miniCash</string>
|
||||
<string name="poi_payment_ep_minicash_no">Don\'t accept miniCash</string>
|
||||
<string name="poi_payment_ep_moneo_yes">Accept Moneo</string>
|
||||
<string name="poi_payment_ep_moneo_no">Don\'t accept Moneo</string>
|
||||
<string name="poi_payment_ep_monedero4b_yes">Accept Monedero 4B</string>
|
||||
<string name="poi_payment_ep_monedero4b_no">Don\'t accept Monedero 4B</string>
|
||||
<string name="poi_payment_ep_monedero_yes">Accept Monedero</string>
|
||||
<string name="poi_payment_ep_monedero_no">Don\'t accept Monedero</string>
|
||||
<string name="poi_payment_bankaxess_yes">Accept BankAxess</string>
|
||||
<string name="poi_payment_bankaxess_no">Don\'t accept BankAxess</string>
|
||||
<string name="poi_payment_coinkite_yes">Accept Coinkite</string>
|
||||
<string name="poi_payment_coinkite_no">Don\'t accept Coinkite</string>
|
||||
<string name="poi_payment_roadrunner_yes">Accept Roadrunner cards</string>
|
||||
<string name="poi_payment_roadrunner_no">Don\'t accept Roadrunner cards</string>
|
||||
<string name="poi_payment_svg_yes">Accept SVG</string>
|
||||
<string name="poi_payment_svg_no">Don\'t accept SVG</string>
|
||||
<string name="poi_payment_sms_yes">Accept SMS payments</string>
|
||||
<string name="poi_payment_sms_no">Don\'t accept SMS payments</string>
|
||||
<string name="poi_payment_ov_chipkaart_yes">Accept OV-Chipkaart</string>
|
||||
<string name="poi_payment_ov_chipkaart_no">Don\'t accept OV-Chipkaart</string>
|
||||
<string name="poi_payment_oyster_yes">Accept Oyster cards</string>
|
||||
<string name="poi_payment_oyster_no">Don\'t accept Oyster cards</string>
|
||||
<string name="poi_payment_sube_yes">Accept SUBE cards</string>
|
||||
<string name="poi_payment_sube_no">Don\'t accept SUBE cards</string>
|
||||
<string name="poi_payment_via_verde_yes">Accept Via Verde</string>
|
||||
<string name="poi_payment_via_verde_no">Don\'t accept Via Verde</string>
|
||||
<string name="poi_payment_meal_voucher_yes">Accept meal vouchers</string>
|
||||
<string name="poi_payment_meal_voucher_no">Don\'t accept meal vouchers</string>
|
||||
<string name="poi_payment_paypal_yes">Accept PayPal</string>
|
||||
<string name="poi_payment_paypal_no">Don\'t accept PayPal</string>
|
||||
<string name="poi_payment_u_key_yes">Accept U-Key</string>
|
||||
<string name="poi_payment_u_key_no">Don\'t accept U-Key</string>
|
||||
<string name="poi_payment_token_yes">Accept tokens</string>
|
||||
<string name="poi_payment_token_no">Don\'t accept tokens</string>
|
||||
<string name="poi_payment_gift_card_yes">Accept gift cards</string>
|
||||
<string name="poi_payment_gift_card_no">Don\'t accept gift cards</string>
|
||||
<string name="poi_payment_golden_crown_yes">Accept Golden Crown cards</string>
|
||||
<string name="poi_payment_golden_crown_no">Don\'t accept Golden Crown cards</string>
|
||||
<string name="poi_payment_pro100_yes">Accept PRO100 cards</string>
|
||||
<string name="poi_payment_pro100_no">Don\'t accept PRO100 cards</string>
|
||||
<string name="poi_payment_union_card_yes">Accept Union Card</string>
|
||||
<string name="poi_payment_union_card_no">Don\'t accept Union Card</string>
|
||||
<string name="poi_payment_mtsmoney_yes">Accept MTS-Money</string>
|
||||
<string name="poi_payment_mtsmoney_no">Don\'t accept MTS-Money</string>
|
||||
<string name="poi_payment_yandexmoney_yes">Accept Yandex.Money</string>
|
||||
<string name="poi_payment_yandexmoney_no">Don\'t accept Yandex.Money</string>
|
||||
<string name="poi_payment_account_cards_yes">Account cards accepted</string>
|
||||
<string name="poi_payment_account_cards_no">Account cards not accepted</string>
|
||||
<string name="poi_payment_maestro_yes">Maestro cards accepted</string>
|
||||
<string name="poi_payment_maestro_no">Maestro cards not accepted</string>
|
||||
<string name="poi_payment_american_express_yes">American Express (AMEX) cards accepted</string>
|
||||
<string name="poi_payment_american_express_no">American Express (AMEX) cards not accepted</string>
|
||||
<string name="poi_payment_diners_club_yes">Diners Club cards accepted</string>
|
||||
<string name="poi_payment_diners_club_no">Diners Club cards not accepted</string>
|
||||
<string name="poi_payment_dkv_yes">DKV accepted</string>
|
||||
<string name="poi_payment_dkv_no">DKV not accepted</string>
|
||||
<string name="poi_payment_uta_yes">UTA cards accepted</string>
|
||||
<string name="poi_payment_uta_no">UTA cards not accepted</string>
|
||||
<string name="poi_payment_efectivo_yes">Efectivo accepted</string>
|
||||
<string name="poi_payment_efectivo_no">Efectivo not accepted</string>
|
||||
<string name="poi_payment_girocard_yes">Girocard accepted</string>
|
||||
<string name="poi_payment_girocard_no">Girocard not accepted</string>
|
||||
<string name="poi_payment_discover_card_yes">Discover Card accepted</string>
|
||||
<string name="poi_payment_discover_card_no">Discover Card not accepted</string>
|
||||
<string name="poi_payment_visa_electron_yes">Visa Electron cards accepted</string>
|
||||
<string name="poi_payment_visa_electron_no">Visa Electron cards not accepted</string>
|
||||
<string name="poi_payment_litecoin_yes">Litecoin accepted</string>
|
||||
<string name="poi_payment_litecoin_no">Litecoin not accepted</string>
|
||||
<string name="poi_payment_cheque_yes">Checks accepted</string>
|
||||
<string name="poi_payment_cheque_no">Checks not accepted</string>
|
||||
<string name="poi_payment_pikepass_yes">PIKEPASS accepted</string>
|
||||
<string name="poi_payment_pikepass_no">PIKEPASS not accepted</string>
|
||||
<string name="poi_payment_pikepass_designated">PIKEPASS (designated) accepted</string>
|
||||
<string name="poi_payment_visa_debit_yes">Visa Debit cards accepted</string>
|
||||
<string name="poi_payment_visa_debit_no">Visa Debit cards not accepted</string>
|
||||
<string name="poi_payment_cryptocurrencies_no">Cryptocurrencies not accepted</string>
|
||||
<string name="poi_payment_others_yes">Other payment methods accepted</string>
|
||||
<string name="poi_payment_others_no">Other payment methods not accepted</string>
|
||||
<string name="poi_payment_routex_yes">Routex fuel cards accepted</string>
|
||||
<string name="poi_payment_routex_no">Routex fuel cards not accepted</string>
|
||||
<string name="poi_payment_bancomat_yes">Bancomat accepted</string>
|
||||
<string name="poi_payment_bancomat_no">Bancomat not accepted</string>
|
||||
<string name="poi_payment_icsf_yes">IC Stored Fare cards accepted</string>
|
||||
<string name="poi_payment_icsf_no">IC Stored Fare cards not accepted</string>
|
||||
<string name="poi_payment_prepaid_ticket_yes">Prepaid tickets accepted</string>
|
||||
<string name="poi_payment_jcb_yes">JCB cards accepted</string>
|
||||
<string name="poi_payment_jcb_no">JCB cards not accepted</string>
|
||||
<string name="poi_payment_laser_yes">Laser cards accepted</string>
|
||||
<string name="poi_payment_laser_no">Laser cards not accepted</string>
|
||||
<string name="poi_payment_ep_quick_yes">Quick cards accepted</string>
|
||||
<string name="poi_payment_ep_quick_no">Quick cards not accepted</string>
|
||||
<string name="poi_payment_eurowag_yes">Eurowag cards accepted</string>
|
||||
<string name="poi_payment_eurowag_no">Eurowag cards not accepted</string>
|
||||
<string name="poi_payment_e_zpass_yes">E‑ZPass accepted</string>
|
||||
<string name="poi_payment_e_zpass_no">E‑ZPass not accepted</string>
|
||||
<string name="poi_payment_euroshell_yes">Euroshell fuel cards accepted</string>
|
||||
<string name="poi_payment_euroshell_no">Euroshell fuel cards not accepted</string>
|
||||
<string name="poi_payment_kitcard_yes">KITCard accepted</string>
|
||||
<string name="poi_payment_kitcard_no">KITCard not accepted</string>
|
||||
<string name="poi_payment_westfalen_card_yes">Westfalen cards accepted</string>
|
||||
<string name="poi_payment_westfalen_card_no">Westfalen cards not accepted</string>
|
||||
<string name="poi_payment_v_pay_yes">V PAY cards accepted</string>
|
||||
<string name="poi_payment_v_pay_no">V PAY cards not accepted</string>
|
||||
<string name="poi_payment_dogecoin_yes">Dogecoin accepted</string>
|
||||
<string name="poi_payment_dogecoin_no">Dogecoin not accepted</string>
|
||||
<string name="poi_payment_cibus_yes">Cibus cards accepted</string>
|
||||
<string name="poi_payment_cibus_no">Cibus cards not accepted</string>
|
||||
<string name="poi_payment_wire_transfer_yes">Wire transfers accepted</string>
|
||||
<string name="poi_payment_wire_transfer_no">Wire transfers not accepted</string>
|
||||
<string name="poi_payment_ep_cash_yes">Cash card (Geldkarte) accepted</string>
|
||||
<string name="poi_payment_ep_cash_no">Cash card (Geldkarte) not accepted</string>
|
||||
<string name="poi_payment_ep_proton_yes">Proton cards accepted</string>
|
||||
<string name="poi_payment_ep_proton_no">Proton cards not accepted</string>
|
||||
<string name="poi_payment_ep_avant_yes">AvantCard accepted</string>
|
||||
<string name="poi_payment_ep_avant_no">AvantCard not accepted</string>
|
||||
<string name="poi_payment_ep_mep_yes">MEP accepted</string>
|
||||
<string name="poi_payment_ep_mep_no">MEP not accepted</string>
|
||||
<string name="poi_payment_ep_minipay_yes">Minipay accepted</string>
|
||||
<string name="poi_payment_ep_minipay_no">Minipay not accepted</string>
|
||||
<string name="poi_payment_ep_minicash_yes">MiniCash accepted</string>
|
||||
<string name="poi_payment_ep_minicash_no">MiniCash not accepted</string>
|
||||
<string name="poi_payment_ep_moneo_yes">Moneo accepted</string>
|
||||
<string name="poi_payment_ep_moneo_no">Moneo not accepted</string>
|
||||
<string name="poi_payment_ep_monedero4b_yes">Monedero 4B accepted</string>
|
||||
<string name="poi_payment_ep_monedero4b_no">Monedero 4B not accepted</string>
|
||||
<string name="poi_payment_ep_monedero_yes">Monedero accepted</string>
|
||||
<string name="poi_payment_ep_monedero_no">Monedero not accepted</string>
|
||||
<string name="poi_payment_bankaxess_yes">BankAxess accepted</string>
|
||||
<string name="poi_payment_bankaxess_no">BankAxess not accepted</string>
|
||||
<string name="poi_payment_coinkite_yes">Coinkite accepted</string>
|
||||
<string name="poi_payment_coinkite_no">Coinkite not accepted</string>
|
||||
<string name="poi_payment_roadrunner_yes">Roadrunner cards accepted</string>
|
||||
<string name="poi_payment_roadrunner_no">Roadrunner cards not accepted</string>
|
||||
<string name="poi_payment_svg_yes">SVG accepted</string>
|
||||
<string name="poi_payment_svg_no">SVG not accepted</string>
|
||||
<string name="poi_payment_sms_yes">SMS payments accepted</string>
|
||||
<string name="poi_payment_sms_no">SMS payments not accepted</string>
|
||||
<string name="poi_payment_ov_chipkaart_yes">OV-Chipkaart accepted</string>
|
||||
<string name="poi_payment_ov_chipkaart_no">OV-Chipkaart not accepted</string>
|
||||
<string name="poi_payment_oyster_yes">Oyster cards accepted</string>
|
||||
<string name="poi_payment_oyster_no">Oyster cards not accepted</string>
|
||||
<string name="poi_payment_sube_yes">SUBE cards accepted</string>
|
||||
<string name="poi_payment_sube_no">SUBE cards not accepted</string>
|
||||
<string name="poi_payment_via_verde_yes">Via Verde accepted</string>
|
||||
<string name="poi_payment_via_verde_no">Via Verde not accepted</string>
|
||||
<string name="poi_payment_meal_voucher_yes">Meal vouchers accepted</string>
|
||||
<string name="poi_payment_meal_voucher_no">Meal vouchers not accepted</string>
|
||||
<string name="poi_payment_paypal_yes">PayPal accepted</string>
|
||||
<string name="poi_payment_paypal_no">PayPal not accepted</string>
|
||||
<string name="poi_payment_u_key_yes">U-Key accepted</string>
|
||||
<string name="poi_payment_u_key_no">U-Key not accepted</string>
|
||||
<string name="poi_payment_token_yes">Tokens accepted</string>
|
||||
<string name="poi_payment_token_no">Tokens not accepted</string>
|
||||
<string name="poi_payment_gift_card_yes">Gift cards accepted</string>
|
||||
<string name="poi_payment_gift_card_no">Gift cards not accepted</string>
|
||||
<string name="poi_payment_golden_crown_yes">Golden Crown cards accepted</string>
|
||||
<string name="poi_payment_golden_crown_no">Golden Crown cards not accepted</string>
|
||||
<string name="poi_payment_pro100_yes">PRO100 cards accepted</string>
|
||||
<string name="poi_payment_pro100_no">PRO100 cards not accepted</string>
|
||||
<string name="poi_payment_union_card_yes">Union Card accepted</string>
|
||||
<string name="poi_payment_union_card_no">Union Card not accepted</string>
|
||||
<string name="poi_payment_mtsmoney_yes">MTS-Money accepted</string>
|
||||
<string name="poi_payment_mtsmoney_no">MTS-Money not accepted</string>
|
||||
<string name="poi_payment_yandexmoney_yes">Yandex.Money accepted</string>
|
||||
<string name="poi_payment_yandexmoney_no">Yandex.Money not accepted</string>
|
||||
<string name="poi_description_payment">Payment description</string>
|
||||
|
||||
<string name="poi_internet_access_fee_yes">Internet access - fee charged</string>
|
||||
<string name="poi_internet_access_fee_no">Internet access - no fee</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -117,8 +117,8 @@ public class DashUpdatesFragment extends DashBaseFragment {
|
|||
String d = item.getDate(getMyApplication().getResourceManager().getDateFormat()) + ", "
|
||||
+ item.getSizeDescription(getMyApplication());
|
||||
String eName = name.replace("\n", " ");
|
||||
((TextView) view.findViewById(R.id.map_name)).setText(eName);
|
||||
((TextView) view.findViewById(R.id.map_descr)).setText(d);
|
||||
((TextView) view.findViewById(R.id.name)).setText(eName);
|
||||
((TextView) view.findViewById(R.id.description)).setText(d);
|
||||
final ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.ProgressBar);
|
||||
View downloadButton = (view.findViewById(R.id.btn_download));
|
||||
downloadButton.setOnClickListener(new View.OnClickListener() {
|
||||
|
@ -170,8 +170,8 @@ public class DashUpdatesFragment extends DashBaseFragment {
|
|||
}
|
||||
cancelButton.setImageDrawable(getMyApplication().getIconsCache().getContentIcon(R.drawable.ic_action_remove_dark));
|
||||
View view = (View) cancelButton.getParent();
|
||||
if (view != null && view.findViewById(R.id.map_descr) != null) {
|
||||
view.findViewById(R.id.map_descr).setVisibility(View.GONE);
|
||||
if (view != null && view.findViewById(R.id.description) != null) {
|
||||
view.findViewById(R.id.description).setVisibility(View.GONE);
|
||||
}
|
||||
cancelButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
package net.osmand.plus.download;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
@ -27,10 +30,6 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Created by Denis
|
||||
* on 25.11.2014.
|
||||
*/
|
||||
public class BaseDownloadActivity extends ActionBarProgressActivity {
|
||||
protected DownloadActivityType type = DownloadActivityType.NORMAL_FILE;
|
||||
protected OsmandSettings settings;
|
||||
|
@ -166,7 +165,8 @@ public class BaseDownloadActivity extends ActionBarProgressActivity {
|
|||
if (Version.isFreeVersion(getMyApplication())) {
|
||||
int total = settings.NUMBER_OF_FREE_DOWNLOADS.get();
|
||||
if (total > MAXIMUM_AVAILABLE_FREE_DOWNLOADS) {
|
||||
dialogToInstallPaid();
|
||||
new InstallPaidVersionDialogFragment()
|
||||
.show(getSupportFragmentManager(), InstallPaidVersionDialogFragment.TAG);
|
||||
} else {
|
||||
downloadFilesCheckInternet();
|
||||
}
|
||||
|
@ -175,44 +175,11 @@ public class BaseDownloadActivity extends ActionBarProgressActivity {
|
|||
}
|
||||
}
|
||||
|
||||
protected void dialogToInstallPaid() {
|
||||
String msgTx = getString(R.string.free_version_message, MAXIMUM_AVAILABLE_FREE_DOWNLOADS + "");
|
||||
AlertDialog.Builder msg = new AlertDialog.Builder(this);
|
||||
msg.setTitle(R.string.free_version_title);
|
||||
msg.setMessage(msgTx);
|
||||
if (Version.isMarketEnabled(getMyApplication())) {
|
||||
msg.setPositiveButton(R.string.install_paid, new DialogInterface.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(Version.marketPrefix(getMyApplication())
|
||||
+ "net.osmand.plus"));
|
||||
try {
|
||||
startActivity(intent);
|
||||
} catch (ActivityNotFoundException e) {
|
||||
}
|
||||
}
|
||||
});
|
||||
msg.setNegativeButton(R.string.shared_string_cancel, null);
|
||||
} else {
|
||||
msg.setNeutralButton(R.string.shared_string_ok, null);
|
||||
}
|
||||
msg.show();
|
||||
}
|
||||
|
||||
protected void downloadFilesCheckInternet() {
|
||||
if (!getMyApplication().getSettings().isWifiConnected()) {
|
||||
if (getMyApplication().getSettings().isInternetConnectionAvailable()) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setMessage(getString(R.string.download_using_mobile_internet));
|
||||
builder.setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
downloadFilesPreCheckSpace();
|
||||
}
|
||||
});
|
||||
builder.setNegativeButton(R.string.shared_string_no, null);
|
||||
builder.show();
|
||||
new ConfirmDownloadDialogFragment().show(getSupportFragmentManager(),
|
||||
ConfirmDownloadDialogFragment.TAG);
|
||||
} else {
|
||||
AccessibleToast.makeText(this, R.string.no_index_file_to_download, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
@ -293,5 +260,58 @@ public class BaseDownloadActivity extends ActionBarProgressActivity {
|
|||
public void removeFromQueue(IndexItem item) {
|
||||
downloadQueue.remove(item);
|
||||
}
|
||||
|
||||
public static class InstallPaidVersionDialogFragment extends DialogFragment {
|
||||
public static final String TAG = "InstallPaidVersionDialogFragment";
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
String msgTx = getString(R.string.free_version_message, MAXIMUM_AVAILABLE_FREE_DOWNLOADS + "");
|
||||
AlertDialog.Builder msg = new AlertDialog.Builder(getActivity());
|
||||
msg.setTitle(R.string.free_version_title);
|
||||
msg.setMessage(msgTx);
|
||||
if (Version.isMarketEnabled(getMyApplication())) {
|
||||
msg.setPositiveButton(R.string.install_paid, new DialogInterface.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW,
|
||||
Uri.parse(Version.marketPrefix(getMyApplication())
|
||||
+ "net.osmand.plus"));
|
||||
try {
|
||||
startActivity(intent);
|
||||
} catch (ActivityNotFoundException e) {
|
||||
}
|
||||
}
|
||||
});
|
||||
msg.setNegativeButton(R.string.shared_string_cancel, null);
|
||||
} else {
|
||||
msg.setNeutralButton(R.string.shared_string_ok, null);
|
||||
}
|
||||
return msg.create();
|
||||
}
|
||||
|
||||
private OsmandApplication getMyApplication() {
|
||||
return (OsmandApplication) getActivity().getApplication();
|
||||
}
|
||||
}
|
||||
|
||||
public static class ConfirmDownloadDialogFragment extends DialogFragment {
|
||||
public static final String TAG = "ConfirmDownloadDialogFragment";
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
builder.setMessage(getString(R.string.download_using_mobile_internet));
|
||||
builder.setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
((BaseDownloadActivity) getActivity()).downloadFilesPreCheckSpace();
|
||||
}
|
||||
});
|
||||
builder.setNegativeButton(R.string.shared_string_no, null);
|
||||
return builder.create();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -375,7 +375,8 @@ public class DownloadActivity extends BaseDownloadActivity {
|
|||
|
||||
protected void downloadWikiFiles() {
|
||||
if (Version.isFreeVersion(getMyApplication())) {
|
||||
dialogToInstallPaid();
|
||||
new InstallPaidVersionDialogFragment().show(getSupportFragmentManager(),
|
||||
InstallPaidVersionDialogFragment.TAG);
|
||||
} else {
|
||||
Builder bld = new AlertDialog.Builder(this);
|
||||
final List<IndexItem> wi = getWikipediaItems();
|
||||
|
|
|
@ -12,8 +12,6 @@ import net.osmand.PlatformUtil;
|
|||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.download.DownloadActivity;
|
||||
import net.osmand.plus.download.IndexItem;
|
||||
import net.osmand.plus.helpers.HasName;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
@ -61,11 +59,6 @@ public class MapsInCategoryFragment extends DialogFragment {
|
|||
createInstance(category).show(getChildFragmentManager(), TAG);
|
||||
}
|
||||
|
||||
public void onIndexItemSelected(@NonNull IndexItem indexItem) {
|
||||
LOG.debug("onIndexItemSelected()");
|
||||
((DownloadActivity) getActivity()).startDownload(indexItem);
|
||||
}
|
||||
|
||||
public static MapsInCategoryFragment createInstance(
|
||||
@NonNull IndexItemCategoryWithSubcat category) {
|
||||
Bundle bundle = new Bundle();
|
||||
|
|
|
@ -2,6 +2,7 @@ package net.osmand.plus.download.newimplementation;
|
|||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
@ -13,11 +14,13 @@ import android.widget.AdapterView;
|
|||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.OsmandSettings;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.download.BaseDownloadActivity;
|
||||
import net.osmand.plus.download.DownloadActivity;
|
||||
import net.osmand.plus.download.DownloadActivityType;
|
||||
import net.osmand.plus.download.IndexItem;
|
||||
|
@ -34,7 +37,8 @@ public class SubcategoriesFragment extends Fragment {
|
|||
|
||||
ListView listView = new ListView(getActivity());
|
||||
final OsmandApplication application = (OsmandApplication) getActivity().getApplication();
|
||||
final MapFilesAdapter mAdapter = new MapFilesAdapter(getActivity());
|
||||
final MapFilesAdapter mAdapter = new MapFilesAdapter(getActivity(),
|
||||
(MapsInCategoryFragment) getParentFragment());
|
||||
listView.setAdapter(mAdapter);
|
||||
mAdapter.addAll(category.items);
|
||||
mAdapter.addAll(category.subcats);
|
||||
|
@ -50,9 +54,6 @@ public class SubcategoriesFragment extends Fragment {
|
|||
if (item instanceof IndexItemCategoryWithSubcat) {
|
||||
((MapsInCategoryFragment) getParentFragment())
|
||||
.onCategorySelected((IndexItemCategoryWithSubcat) item);
|
||||
} else if (item instanceof IndexItem) {
|
||||
((MapsInCategoryFragment) getParentFragment())
|
||||
.onIndexItemSelected((IndexItem) item);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -71,8 +72,11 @@ public class SubcategoriesFragment extends Fragment {
|
|||
|
||||
|
||||
private static class MapFilesAdapter extends ArrayAdapter<HasName> {
|
||||
public MapFilesAdapter(Context context) {
|
||||
final MapsInCategoryFragment fragment;
|
||||
|
||||
public MapFilesAdapter(Context context, MapsInCategoryFragment fragment) {
|
||||
super(context, R.layout.two_line_with_images_list_item);
|
||||
this.fragment = fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -91,7 +95,8 @@ public class SubcategoriesFragment extends Fragment {
|
|||
viewHolder.bindCategory((IndexItemCategoryWithSubcat) item,
|
||||
(DownloadActivity) getContext());
|
||||
} else if (item instanceof IndexItem) {
|
||||
viewHolder.bindIndexItem((IndexItem) item, (DownloadActivity) getContext());
|
||||
viewHolder.bindIndexItem((IndexItem) item, (DownloadActivity) getContext(),
|
||||
fragment);
|
||||
} else {
|
||||
throw new IllegalArgumentException("Item must be of type IndexItem or " +
|
||||
"IndexItemCategory but is of type:" + item.getClass());
|
||||
|
@ -100,19 +105,22 @@ public class SubcategoriesFragment extends Fragment {
|
|||
}
|
||||
|
||||
private static class ViewHolder {
|
||||
TextView nameTextView;
|
||||
TextView descrTextView;
|
||||
ImageView leftImageView;
|
||||
ImageView rightImageButton;
|
||||
private final TextView nameTextView;
|
||||
private final TextView descrTextView;
|
||||
private final ImageView leftImageView;
|
||||
private final ImageView rightImageButton;
|
||||
private final ProgressBar progressBar;
|
||||
|
||||
public ViewHolder(View convertView) {
|
||||
nameTextView = (TextView) convertView.findViewById(R.id.name);
|
||||
descrTextView = (TextView) convertView.findViewById(R.id.description);
|
||||
leftImageView = (ImageView) convertView.findViewById(R.id.leftImageView);
|
||||
rightImageButton = (ImageView) convertView.findViewById(R.id.rightImageButton);
|
||||
progressBar = (ProgressBar) convertView.findViewById(R.id.progressBar);
|
||||
}
|
||||
|
||||
public void bindIndexItem(IndexItem indexItem, DownloadActivity context) {
|
||||
public void bindIndexItem(final IndexItem indexItem, final DownloadActivity context,
|
||||
MapsInCategoryFragment fragment) {
|
||||
if (indexItem.getType() == DownloadActivityType.VOICE_FILE) {
|
||||
nameTextView.setText(indexItem.getVisibleName(context,
|
||||
context.getMyApplication().getRegions()));
|
||||
|
@ -120,8 +128,23 @@ public class SubcategoriesFragment extends Fragment {
|
|||
nameTextView.setText(indexItem.getType().getString(context));
|
||||
}
|
||||
descrTextView.setText(indexItem.getSizeDescription(context));
|
||||
leftImageView.setImageDrawable(context.getMyApplication()
|
||||
.getIconsCache().getContentIcon(indexItem.getType().getIconResource()));
|
||||
leftImageView.setImageDrawable(getContextIcon(context,
|
||||
indexItem.getType().getIconResource()));
|
||||
rightImageButton.setVisibility(View.VISIBLE);
|
||||
rightImageButton.setImageDrawable(getContextIcon(context,
|
||||
R.drawable.ic_action_import));
|
||||
rightImageButton.setTag(R.id.index_item, indexItem);
|
||||
rightImageButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
((BaseDownloadActivity) v.getContext())
|
||||
.startDownload((IndexItem) v.getTag(R.id.index_item));
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
rightImageButton.setImageDrawable(getContextIcon(context,
|
||||
R.drawable.ic_action_remove_dark));
|
||||
}
|
||||
});
|
||||
progressBar.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
public void bindCategory(IndexItemCategoryWithSubcat category,
|
||||
|
@ -139,8 +162,13 @@ public class SubcategoriesFragment extends Fragment {
|
|||
} else {
|
||||
descrTextView.setText(R.string.shared_string_others);
|
||||
}
|
||||
leftImageView.setImageDrawable(context.getMyApplication()
|
||||
.getIconsCache().getContentIcon(R.drawable.ic_map));
|
||||
leftImageView.setImageDrawable(getContextIcon(context, R.drawable.ic_map));
|
||||
rightImageButton.setVisibility(View.GONE);
|
||||
progressBar.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
private Drawable getContextIcon(DownloadActivity context, int resourceId) {
|
||||
return context.getMyApplication().getIconsCache().getContentIcon(resourceId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,6 @@ import android.view.ViewGroup;
|
|||
import android.widget.ArrayAdapter;
|
||||
import android.widget.AutoCompleteTextView;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
@ -33,22 +32,28 @@ import net.osmand.osm.edit.OSMSettings;
|
|||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.osmedit.data.EditPoiData;
|
||||
import net.osmand.plus.osmedit.data.Tag;
|
||||
import net.osmand.util.Algorithms;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
public class AdvancedDataFragment extends Fragment {
|
||||
public class AdvancedDataFragment extends Fragment
|
||||
implements EditPoiFragment.OnFragmentActivatedListener {
|
||||
private static final String TAG = "AdvancedDataFragment";
|
||||
private static final Log LOG = PlatformUtil.getLog(AdvancedDataFragment.class);
|
||||
|
||||
private TagAdapterLinearLayoutHack mAdapter;
|
||||
private EditPoiData.TagsChangedListener mTagsChangedListener;
|
||||
private boolean mIsUserInput = true;
|
||||
private Drawable deleteDrawable;
|
||||
private TextView nameTextView;
|
||||
private TextView amenityTagTextView;
|
||||
private TextView amenityTextView;
|
||||
private Map<String, PoiType> allTranslatedSubTypes;
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||
|
@ -70,20 +75,22 @@ public class AdvancedDataFragment extends Fragment {
|
|||
deleteDrawable = ((OsmandApplication) getActivity().getApplication()).getIconsCache()
|
||||
.getPaintedContentIcon(R.drawable.ic_action_remove_dark,
|
||||
getActivity().getResources().getColor(R.color.dash_search_icon_dark));
|
||||
TextView nameTextView = (TextView) view.findViewById(R.id.nameTextView);
|
||||
TextView amenityTagTextView = (TextView) view.findViewById(R.id.amenityTagTextView);
|
||||
TextView amenityTextView = (TextView) view.findViewById(R.id.amenityTextView);
|
||||
nameTextView = (TextView) view.findViewById(R.id.nameTextView);
|
||||
amenityTagTextView = (TextView) view.findViewById(R.id.amenityTagTextView);
|
||||
amenityTextView = (TextView) view.findViewById(R.id.amenityTextView);
|
||||
LinearLayout editTagsLineaLayout =
|
||||
(LinearLayout) view.findViewById(R.id.editTagsList);
|
||||
|
||||
final MapPoiTypes mapPoiTypes = ((OsmandApplication) getActivity().getApplication()).getPoiTypes();
|
||||
allTranslatedSubTypes = mapPoiTypes.getAllTranslatedNames();
|
||||
mAdapter = new TagAdapterLinearLayoutHack(editTagsLineaLayout, getData(),
|
||||
nameTextView, amenityTagTextView, amenityTextView,
|
||||
((OsmandApplication) getActivity().getApplication()).getPoiTypes());
|
||||
mapPoiTypes);
|
||||
// setListViewHeightBasedOnChildren(editTagsLineaLayout);
|
||||
Button addTagButton = (Button) view.findViewById(R.id.addTagButton);
|
||||
addTagButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mAdapter.addTag(new Tag("", ""));
|
||||
mAdapter.addTagView("", "");
|
||||
}
|
||||
});
|
||||
return view;
|
||||
|
@ -92,14 +99,26 @@ public class AdvancedDataFragment extends Fragment {
|
|||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
// TODO read more about lifecycle
|
||||
mAdapter.updateViews();
|
||||
mTagsChangedListener = new EditPoiData.TagsChangedListener() {
|
||||
@Override
|
||||
public void onTagsChanged() {
|
||||
mIsUserInput = false;
|
||||
mAdapter.updateViews();
|
||||
mIsUserInput = true;
|
||||
public void onTagsChanged(String anyTag) {
|
||||
LOG.debug("onTagsChanged()");
|
||||
final String value = getData().getTagValues().get(anyTag);
|
||||
if (Algorithms.objectEquals(anyTag, OSMSettings.OSMTagKey.NAME.getValue())) {
|
||||
nameTextView.setText(value);
|
||||
}
|
||||
if (Algorithms.objectEquals(anyTag, EditPoiData.POI_TYPE_TAG)) {
|
||||
String subType = value == null ? "" : value.trim().toLowerCase();
|
||||
if (allTranslatedSubTypes.get(subType) != null) {
|
||||
PoiType pt = allTranslatedSubTypes.get(subType);
|
||||
amenityTagTextView.setText(pt.getOsmTag());
|
||||
amenityTextView.setText(pt.getOsmValue());
|
||||
} else {
|
||||
amenityTagTextView.setText(getData().amenity.getType().getDefaultTag());
|
||||
amenityTextView.setText(subType);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
getData().addListener(mTagsChangedListener);
|
||||
|
@ -124,90 +143,86 @@ public class AdvancedDataFragment extends Fragment {
|
|||
return getEditPoiFragment().getEditPoiData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFragmentActivated() {
|
||||
mAdapter.updateViews();
|
||||
}
|
||||
|
||||
public class TagAdapterLinearLayoutHack {
|
||||
private final LinearLayout linearLayout;
|
||||
private final EditPoiData editPoiData;
|
||||
|
||||
private final TextView nameTextView;
|
||||
private final TextView amenityTagTextView;
|
||||
private final TextView amenityTextView;
|
||||
private final Map<String, PoiType> allTranslatedSubTypes;
|
||||
private final Map<String, AbstractPoiType> allTypes;
|
||||
private final MapPoiTypes mapPoiTypes;
|
||||
private final Map<String, AbstractPoiType> allTypes;
|
||||
private final HashSet<String> tagKeys;
|
||||
private final HashSet<String> valueKeys;
|
||||
private final HashMap<String, View> cachedViews = new HashMap<>();
|
||||
|
||||
public TagAdapterLinearLayoutHack(LinearLayout linearLayout,
|
||||
EditPoiData editPoiData,
|
||||
TextView nameTextView,
|
||||
TextView amenityTagTextView,
|
||||
TextView amenityTextView,
|
||||
MapPoiTypes mapPoiTypes) {
|
||||
this.linearLayout = linearLayout;
|
||||
this.editPoiData = editPoiData;
|
||||
this.nameTextView = nameTextView;
|
||||
this.amenityTagTextView = amenityTagTextView;
|
||||
this.amenityTextView = amenityTextView;
|
||||
this.allTranslatedSubTypes = mapPoiTypes.getAllTranslatedNames();
|
||||
this.mapPoiTypes = mapPoiTypes;
|
||||
this.allTypes = mapPoiTypes.getAllTypesTranslatedNames(new StringMatcher() {
|
||||
@Override
|
||||
public boolean matches(String name) {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
this.mapPoiTypes = mapPoiTypes;
|
||||
}
|
||||
|
||||
public void addTag(Tag tag) {
|
||||
editPoiData.tags.add(tag);
|
||||
if (mIsUserInput)
|
||||
editPoiData.notifyDatasetChanged(mTagsChangedListener);
|
||||
updateViews();
|
||||
tagKeys = new HashSet<>();
|
||||
valueKeys = new HashSet<>();
|
||||
for (AbstractPoiType abstractPoiType : allTypes.values()) {
|
||||
addPoiToStringSet(abstractPoiType, tagKeys, valueKeys);
|
||||
}
|
||||
addPoiToStringSet(mapPoiTypes.getOtherMapCategory(), tagKeys, valueKeys);
|
||||
|
||||
}
|
||||
|
||||
public void updateViews() {
|
||||
linearLayout.removeAllViews();
|
||||
for (Tag tag : editPoiData.tags) {
|
||||
if (tag.tag.equals(OSMSettings.OSMTagKey.NAME.getValue())) {
|
||||
nameTextView.setText(tag.value);
|
||||
} else if (tag.tag.equals(EditPoiFragment.POI_TYPE_TAG)) {
|
||||
String subType = tag.value.trim().toLowerCase();
|
||||
if (allTranslatedSubTypes.get(subType) != null) {
|
||||
PoiType pt = allTranslatedSubTypes.get(subType);
|
||||
amenityTagTextView.setText(pt.getOsmTag());
|
||||
amenityTextView.setText(pt.getOsmValue());
|
||||
} else {
|
||||
amenityTagTextView.setText(editPoiData.amenity.getType().getDefaultTag());
|
||||
amenityTextView.setText(subType);
|
||||
}
|
||||
} else {
|
||||
View view = getView(tag);
|
||||
linearLayout.addView(view);
|
||||
}
|
||||
editPoiData.setIsInEdit(true);
|
||||
for (Entry<String, String> tag : editPoiData.getTagValues().entrySet()) {
|
||||
addTagView(tag.getKey(), tag.getValue());
|
||||
}
|
||||
editPoiData.setIsInEdit(false);
|
||||
}
|
||||
|
||||
private View getView(final Tag tag) {
|
||||
final View convertView = LayoutInflater.from(linearLayout.getContext())
|
||||
public void addTagView(String tg, String vl) {
|
||||
View view = getView(tg, vl);
|
||||
linearLayout.addView(view);
|
||||
}
|
||||
|
||||
private View getView(String tg, String vl) {
|
||||
View convertView = cachedViews.get(tg);
|
||||
LOG.debug("convertView=" + convertView);
|
||||
if (convertView == null) {
|
||||
convertView = LayoutInflater.from(linearLayout.getContext())
|
||||
.inflate(R.layout.poi_tag_list_item, null, false);
|
||||
cachedViews.put(tg, convertView);
|
||||
}
|
||||
final AutoCompleteTextView tagEditText =
|
||||
(AutoCompleteTextView) convertView.findViewById(R.id.tagEditText);
|
||||
tagEditText.setText(tag.tag);
|
||||
final EditText valueEditText = (EditText) convertView.findViewById(R.id.valueEditText);
|
||||
ImageButton deleteItemImageButton =
|
||||
(ImageButton) convertView.findViewById(R.id.deleteItemImageButton);
|
||||
valueEditText.setText(tag.value);
|
||||
deleteItemImageButton.setImageDrawable(deleteDrawable);
|
||||
final String[] previousTag = new String[]{tg};
|
||||
deleteItemImageButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
linearLayout.removeView((View) v.getParent());
|
||||
editPoiData.tags.remove(tag);
|
||||
if (mIsUserInput)
|
||||
editPoiData.notifyDatasetChanged(null);
|
||||
editPoiData.removeTag(tagEditText.getText().toString());
|
||||
}
|
||||
});
|
||||
final AutoCompleteTextView valueEditText =
|
||||
(AutoCompleteTextView) convertView.findViewById(R.id.valueEditText);
|
||||
tagEditText.setText(tg);
|
||||
tagEditText.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
if (!editPoiData.isInEdit()) {
|
||||
editPoiData.removeTag(s.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -216,29 +231,21 @@ public class AdvancedDataFragment extends Fragment {
|
|||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
editPoiData.tags.remove(tag);
|
||||
tag.tag = tagEditText.getText().toString();
|
||||
editPoiData.tags.add(tag);
|
||||
if (mIsUserInput)
|
||||
editPoiData.notifyDatasetChanged(mTagsChangedListener);
|
||||
if (!editPoiData.isInEdit()) {
|
||||
editPoiData.removeTag(previousTag[0]);
|
||||
editPoiData.putTag(s.toString(), valueEditText.getText().toString());
|
||||
previousTag[0] = s.toString();
|
||||
}
|
||||
}
|
||||
});
|
||||
final Set<String> tagKeys = new HashSet<>();
|
||||
for (String s : allTypes.keySet()) {
|
||||
AbstractPoiType abstractPoiType = allTypes.get(s);
|
||||
addPoiToStringSet(abstractPoiType, tagKeys);
|
||||
}
|
||||
// addPoiToStringSet(mapPoiTypes.getOtherPoiCategory(), tagKeys);
|
||||
addPoiToStringSet(mapPoiTypes.getOtherMapCategory(), tagKeys);
|
||||
|
||||
ArrayAdapter<Object> adapter = new ArrayAdapter<>(linearLayout.getContext(),
|
||||
ArrayAdapter<Object> tagAdapter = new ArrayAdapter<>(linearLayout.getContext(),
|
||||
R.layout.list_textview, tagKeys.toArray());
|
||||
tagEditText.setAdapter(adapter);
|
||||
tagEditText.setAdapter(tagAdapter);
|
||||
tagEditText.setThreshold(1);
|
||||
tagEditText.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// TODO: 8/29/15 Rewrite as dialog fragment
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
final String[] tags = tagKeys.toArray(new String[tagKeys.size()]);
|
||||
builder.setItems(tags, new Dialog.OnClickListener() {
|
||||
|
@ -252,6 +259,9 @@ public class AdvancedDataFragment extends Fragment {
|
|||
builder.show();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
valueEditText.setText(vl);
|
||||
valueEditText.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
|
@ -263,18 +273,38 @@ public class AdvancedDataFragment extends Fragment {
|
|||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
editPoiData.tags.remove(tag);
|
||||
tag.value = valueEditText.getText().toString();
|
||||
editPoiData.tags.add(tag);
|
||||
if (mIsUserInput)
|
||||
editPoiData.notifyDatasetChanged(mTagsChangedListener);
|
||||
if (!editPoiData.isInEdit()) {
|
||||
editPoiData.putTag(tagEditText.getText().toString(), s.toString());
|
||||
}
|
||||
}
|
||||
});
|
||||
ArrayAdapter<Object> valueAdapter = new ArrayAdapter<>(linearLayout.getContext(),
|
||||
R.layout.list_textview, valueKeys.toArray());
|
||||
valueEditText.setAdapter(valueAdapter);
|
||||
valueEditText.setThreshold(1);
|
||||
valueEditText.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
final String[] values = valueKeys.toArray(new String[tagKeys.size()]);
|
||||
builder.setItems(values, new Dialog.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
valueEditText.setText(values[which]);
|
||||
}
|
||||
|
||||
});
|
||||
builder.create();
|
||||
builder.show();
|
||||
}
|
||||
});
|
||||
|
||||
return convertView;
|
||||
}
|
||||
}
|
||||
|
||||
private static void addPoiToStringSet(AbstractPoiType abstractPoiType, Set<String> stringSet) {
|
||||
private static void addPoiToStringSet(AbstractPoiType abstractPoiType, Set<String> stringSet,
|
||||
Set<String> values) {
|
||||
if (abstractPoiType instanceof PoiType) {
|
||||
PoiType poiType = (PoiType) abstractPoiType;
|
||||
if (poiType.getOsmTag() != null &&
|
||||
|
@ -283,22 +313,29 @@ public class AdvancedDataFragment extends Fragment {
|
|||
if (poiType.getOsmTag2() != null) {
|
||||
stringSet.add(poiType.getOsmTag2());
|
||||
}
|
||||
|
||||
}
|
||||
if (poiType.getOsmValue() != null) {
|
||||
values.add(poiType.getOsmValue());
|
||||
}
|
||||
if (poiType.getOsmValue2() != null) {
|
||||
values.add(poiType.getOsmValue2());
|
||||
}
|
||||
} else if (abstractPoiType instanceof PoiCategory) {
|
||||
PoiCategory poiCategory = (PoiCategory) abstractPoiType;
|
||||
for (PoiFilter filter : poiCategory.getPoiFilters()) {
|
||||
addPoiToStringSet(filter, stringSet);
|
||||
addPoiToStringSet(filter, stringSet, values);
|
||||
}
|
||||
for (PoiType poiType : poiCategory.getPoiTypes()) {
|
||||
addPoiToStringSet(poiType, stringSet);
|
||||
addPoiToStringSet(poiType, stringSet, values);
|
||||
}
|
||||
for (PoiType poiType : poiCategory.getPoiAdditionals()) {
|
||||
addPoiToStringSet(poiType, stringSet);
|
||||
addPoiToStringSet(poiType, stringSet, values);
|
||||
}
|
||||
} else if (abstractPoiType instanceof PoiFilter) {
|
||||
PoiFilter poiFilter = (PoiFilter) abstractPoiType;
|
||||
for (PoiType poiType : poiFilter.getPoiTypes()) {
|
||||
addPoiToStringSet(poiType, stringSet);
|
||||
addPoiToStringSet(poiType, stringSet, values);
|
||||
}
|
||||
} else {
|
||||
throw new IllegalArgumentException("abstractPoiType can't be instance of class "
|
||||
|
|
|
@ -27,20 +27,16 @@ import net.osmand.plus.IconsCache;
|
|||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.osmedit.data.EditPoiData;
|
||||
import net.osmand.plus.osmedit.data.Tag;
|
||||
import net.osmand.plus.osmedit.dialogs.OpeningHoursDaysDialogFragment;
|
||||
import net.osmand.plus.osmedit.dialogs.OpeningHoursHoursDialogFragment;
|
||||
import net.osmand.util.Algorithms;
|
||||
import net.osmand.util.OpeningHoursParser;
|
||||
import net.osmand.util.OpeningHoursParser.BasicOpeningHourRule;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class BasicDataFragment extends Fragment {
|
||||
public class BasicDataFragment extends Fragment
|
||||
implements EditPoiFragment.OnFragmentActivatedListener{
|
||||
private static final String TAG = "BasicDataFragment";
|
||||
private static final Log LOG = PlatformUtil.getLog(BasicDataFragment.class);
|
||||
private static final String OPENING_HOURS = "opening_hours";
|
||||
|
@ -49,8 +45,6 @@ public class BasicDataFragment extends Fragment {
|
|||
private EditText phoneEditText;
|
||||
private EditText webSiteEditText;
|
||||
private EditText descriptionEditText;
|
||||
private EditPoiData.TagsChangedListener mTagsChangedListener;
|
||||
private boolean mIsUserInput = true;
|
||||
OpeningHoursAdapter mOpeningHoursAdapter;
|
||||
|
||||
@Nullable
|
||||
|
@ -91,26 +85,20 @@ public class BasicDataFragment extends Fragment {
|
|||
iconsCache.getPaintedContentIcon(R.drawable.ic_action_time, iconColor));
|
||||
|
||||
streetEditText = (EditText) view.findViewById(R.id.streetEditText);
|
||||
streetEditText.addTextChangedListener(new MyOnFocusChangeListener(getData(),
|
||||
OSMSettings.OSMTagKey.ADDR_STREET.getValue()));
|
||||
houseNumberEditText = (EditText) view.findViewById(R.id.houseNumberEditText);
|
||||
houseNumberEditText.addTextChangedListener(new MyOnFocusChangeListener(getData(),
|
||||
OSMSettings.OSMTagKey.ADDR_HOUSE_NUMBER.getValue()));
|
||||
phoneEditText = (EditText) view.findViewById(R.id.phoneEditText);
|
||||
phoneEditText.addTextChangedListener(new MyOnFocusChangeListener(getData(),
|
||||
OSMSettings.OSMTagKey.PHONE.getValue()));
|
||||
webSiteEditText = (EditText) view.findViewById(R.id.webSiteEditText);
|
||||
webSiteEditText.addTextChangedListener(new MyOnFocusChangeListener(getData(),
|
||||
OSMSettings.OSMTagKey.WEBSITE.getValue()));
|
||||
descriptionEditText = (EditText) view.findViewById(R.id.descriptionEditText);
|
||||
descriptionEditText.addTextChangedListener(new MyOnFocusChangeListener(getData(),
|
||||
OSMSettings.OSMTagKey.DESCRIPTION.getValue()));
|
||||
addTextWatcher(OSMSettings.OSMTagKey.ADDR_STREET.getValue(), streetEditText);
|
||||
addTextWatcher(OSMSettings.OSMTagKey.WEBSITE.getValue(), webSiteEditText);
|
||||
addTextWatcher(OSMSettings.OSMTagKey.PHONE.getValue(), phoneEditText);
|
||||
addTextWatcher(OSMSettings.OSMTagKey.ADDR_HOUSE_NUMBER.getValue(), houseNumberEditText);
|
||||
addTextWatcher(OSMSettings.OSMTagKey.DESCRIPTION.getValue(), descriptionEditText);
|
||||
Button addOpeningHoursButton = (Button) view.findViewById(R.id.addOpeningHoursButton);
|
||||
addOpeningHoursButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
BasicOpeningHourRule rule = new BasicOpeningHourRule();
|
||||
// TODO: 8/27/15 Figure out some better defauls or leave it as it is
|
||||
rule.setStartTime(9 * 60);
|
||||
rule.setEndTime(18 * 60);
|
||||
OpeningHoursDaysDialogFragment fragment = OpeningHoursDaysDialogFragment.createInstance(rule, -1);
|
||||
|
@ -141,39 +129,49 @@ public class BasicDataFragment extends Fragment {
|
|||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
mTagsChangedListener = new EditPoiData.TagsChangedListener() {
|
||||
@Override
|
||||
public void onTagsChanged() {
|
||||
TagMapProcessor tagMapProcessor = new TagMapProcessor();
|
||||
tagMapProcessor.addFilter(OSMSettings.OSMTagKey.ADDR_STREET.getValue(),
|
||||
new EditTextTagFilter(streetEditText));
|
||||
tagMapProcessor.addFilter(OSMSettings.OSMTagKey.ADDR_HOUSE_NUMBER.getValue(),
|
||||
new EditTextTagFilter(houseNumberEditText));
|
||||
tagMapProcessor.addFilter(OSMSettings.OSMTagKey.PHONE.getValue(),
|
||||
new EditTextTagFilter(phoneEditText));
|
||||
tagMapProcessor.addFilter(OSMSettings.OSMTagKey.WEBSITE.getValue(),
|
||||
new EditTextTagFilter(webSiteEditText));
|
||||
tagMapProcessor.addFilter(OSMSettings.OSMTagKey.DESCRIPTION.getValue(),
|
||||
new EditTextTagFilter(descriptionEditText));
|
||||
tagMapProcessor.addFilter(OSMSettings.OSMTagKey.OPENING_HOURS.getValue(),
|
||||
new OpenHoursTagFilter(mOpeningHoursAdapter));
|
||||
|
||||
mIsUserInput = false;
|
||||
for (Tag tag : getData().tags) {
|
||||
tagMapProcessor.process(tag);
|
||||
// FIXME opening hours
|
||||
// @Override
|
||||
// public void process( String openingHoursString ) {
|
||||
// parseOpenedHoursHandleErrors(openingHoursString);
|
||||
// if (openingHours == null) {
|
||||
// openingHours = new OpeningHoursParser.OpeningHours();
|
||||
// }
|
||||
// LOG.debug("openingHours=" + openingHours);
|
||||
// adapter.replaceOpeningHours(openingHours);
|
||||
// adapter.updateViews();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onUntriggered() {
|
||||
// adapter.replaceOpeningHours(new OpeningHoursParser.OpeningHours());
|
||||
// adapter.updateViews();
|
||||
// }
|
||||
}
|
||||
tagMapProcessor.clearEmptyFields();
|
||||
mIsUserInput = true;
|
||||
}
|
||||
};
|
||||
mTagsChangedListener.onTagsChanged();
|
||||
getData().addListener(mTagsChangedListener);
|
||||
|
||||
protected void addTextWatcher(final String tag, final EditText e) {
|
||||
e.addTextChangedListener(new TextWatcher() {
|
||||
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
getData().deleteListener(mTagsChangedListener);
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
if (!getData().isInEdit()) {
|
||||
if (!TextUtils.isEmpty(s)) {
|
||||
getData().putTag(tag, s.toString());
|
||||
} else {
|
||||
getData().removeTag(tag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -187,80 +185,7 @@ public class BasicDataFragment extends Fragment {
|
|||
mOpeningHoursAdapter.setOpeningHoursRule(item, position);
|
||||
}
|
||||
|
||||
private static class TagMapProcessor {
|
||||
private final Map<String, TagFilter> mFilters = new HashMap<>();
|
||||
|
||||
public void addFilter(String tag, TagFilter filter) {
|
||||
mFilters.put(tag, filter);
|
||||
}
|
||||
|
||||
public void process(Tag tag) {
|
||||
if (mFilters.containsKey(tag.tag)) {
|
||||
final TagFilter filter = mFilters.get(tag.tag);
|
||||
filter.process(tag);
|
||||
mFilters.remove(tag.tag);
|
||||
}
|
||||
}
|
||||
|
||||
public void clearEmptyFields() {
|
||||
for (String tag : mFilters.keySet()) {
|
||||
mFilters.get(tag).onUntriggered();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private interface TagFilter {
|
||||
void process(Tag tag);
|
||||
|
||||
void onUntriggered();
|
||||
}
|
||||
|
||||
private static class EditTextTagFilter implements TagFilter {
|
||||
private final EditText editText;
|
||||
|
||||
private EditTextTagFilter(EditText editText) {
|
||||
this.editText = editText;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(Tag tag) {
|
||||
editText.setText(tag.value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUntriggered() {
|
||||
editText.setText(null);
|
||||
}
|
||||
}
|
||||
|
||||
private static class OpenHoursTagFilter implements TagFilter {
|
||||
private final OpeningHoursAdapter adapter;
|
||||
|
||||
private OpenHoursTagFilter(OpeningHoursAdapter adapter) {
|
||||
this.adapter = adapter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(Tag tag) {
|
||||
String openingHoursString = tag.value;
|
||||
LOG.debug("openingHoursString=" + openingHoursString);
|
||||
OpeningHoursParser.OpeningHours openingHours =
|
||||
parseOpenedHoursHandleErrors(openingHoursString);
|
||||
if (openingHours == null) {
|
||||
openingHours = new OpeningHoursParser.OpeningHours();
|
||||
// TODO show error message
|
||||
}
|
||||
LOG.debug("openingHours=" + openingHours);
|
||||
adapter.replaceOpeningHours(openingHours);
|
||||
adapter.updateViews();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUntriggered() {
|
||||
adapter.replaceOpeningHours(new OpeningHoursParser.OpeningHours());
|
||||
adapter.updateViews();
|
||||
}
|
||||
}
|
||||
|
||||
private EditPoiFragment getEditPoiFragment() {
|
||||
return (EditPoiFragment) getParentFragment();
|
||||
|
@ -283,233 +208,18 @@ public class BasicDataFragment extends Fragment {
|
|||
return b.toString();
|
||||
}
|
||||
|
||||
private static OpeningHoursParser.OpeningHours parseOpenedHoursHandleErrors(String format){
|
||||
if(format == null) {
|
||||
return null;
|
||||
}
|
||||
String[] rules = format.split(";"); //$NON-NLS-1$
|
||||
OpeningHoursParser.OpeningHours rs = new OpeningHoursParser.OpeningHours();
|
||||
for(String r : rules){
|
||||
r = r.trim();
|
||||
if (r.length() == 0) {
|
||||
continue;
|
||||
}
|
||||
// check if valid
|
||||
rs.addRule(parseRule(r));
|
||||
}
|
||||
return rs;
|
||||
}
|
||||
|
||||
// TODO: 8/27/15 Consider refactoring OpeningHoursParser
|
||||
public static OpeningHoursParser.OpeningHoursRule parseRule(final String r){
|
||||
// replace words "sunrise" and "sunset" by real hours
|
||||
final String[] daysStr = new String[] {"Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"};
|
||||
final String[] monthsStr = new String[] {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
|
||||
String sunrise = "07:00";
|
||||
String sunset = "21:00";
|
||||
String endOfDay = "24:00";
|
||||
|
||||
String localRuleString = r.replaceAll("sunset", sunset).replaceAll("sunrise", sunrise)
|
||||
.replaceAll("\\+", "-" + endOfDay);
|
||||
int startDay = -1;
|
||||
int previousDay = -1;
|
||||
int startMonth = -1;
|
||||
int previousMonth = -1;
|
||||
int k = 0; // Position in opening_hours string
|
||||
|
||||
BasicOpeningHourRule basic = new BasicOpeningHourRule();
|
||||
boolean[] days = basic.getDays();
|
||||
boolean[] months = basic.getMonths();
|
||||
// check 24/7
|
||||
if("24/7".equals(localRuleString)){
|
||||
Arrays.fill(days, true);
|
||||
Arrays.fill(months, true);
|
||||
basic.addTimeRange(0, 24 * 60);
|
||||
return basic;
|
||||
}
|
||||
|
||||
for (; k < localRuleString.length(); k++) {
|
||||
char ch = localRuleString.charAt(k);
|
||||
if (Character.isDigit(ch)) {
|
||||
// time starts
|
||||
break;
|
||||
}
|
||||
if ((k + 2 < localRuleString.length())
|
||||
&& localRuleString.substring(k, k + 3).equals("off")) {
|
||||
// value "off" is found
|
||||
break;
|
||||
}
|
||||
if(Character.isWhitespace(ch) || ch == ','){
|
||||
} else if (ch == '-') {
|
||||
if(previousDay != -1){
|
||||
startDay = previousDay;
|
||||
} else if (previousMonth != -1) {
|
||||
startMonth = previousMonth;
|
||||
} else {
|
||||
return new UnparseableRule(r);
|
||||
}
|
||||
} else if (k < r.length() - 1) {
|
||||
int i = 0;
|
||||
for(String s : daysStr){
|
||||
if(s.charAt(0) == ch && s.charAt(1) == r.charAt(k+1)){
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if(i < daysStr.length){
|
||||
if(startDay != -1){
|
||||
for (int j = startDay; j <= i; j++) {
|
||||
days[j] = true;
|
||||
}
|
||||
if(startDay > i){// overflow handling, e.g. Su-We
|
||||
for (int j = startDay; j <= 6; j++) {
|
||||
days[j] = true;
|
||||
}
|
||||
for (int j = 0; j <= i; j++){
|
||||
days[j] = true;
|
||||
}
|
||||
}
|
||||
startDay = -1;
|
||||
} else {
|
||||
days[i] = true;
|
||||
}
|
||||
previousDay = i;
|
||||
} else {
|
||||
// Read Month
|
||||
int m = 0;
|
||||
for (String s : monthsStr) {
|
||||
if (s.charAt(0) == ch && s.charAt(1) == r.charAt(k + 1)
|
||||
&& s.charAt(2) == r.charAt(k + 2)) {
|
||||
break;
|
||||
}
|
||||
m++;
|
||||
}
|
||||
if (m < monthsStr.length) {
|
||||
if (startMonth != -1) {
|
||||
for (int j = startMonth; j <= m; j++) {
|
||||
months[j] = true;
|
||||
}
|
||||
if (startMonth > m) {// overflow handling, e.g. Oct-Mar
|
||||
for (int j = startMonth; j <= 11; j++) {
|
||||
months[j] = true;
|
||||
}
|
||||
for (int j = 0; j <= m; j++) {
|
||||
months[j] = true;
|
||||
}
|
||||
}
|
||||
startMonth = -1;
|
||||
} else {
|
||||
months[m] = true;
|
||||
}
|
||||
previousMonth = m;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return new UnparseableRule(r);
|
||||
}
|
||||
}
|
||||
if(previousDay == -1){
|
||||
// no days given => take all days.
|
||||
for (int i = 0; i<7; i++){
|
||||
days[i] = true;
|
||||
}
|
||||
}
|
||||
if (previousMonth == -1) {
|
||||
// no month given => take all months.
|
||||
for (int i = 0; i < 12; i++) {
|
||||
months[i] = true;
|
||||
}
|
||||
}
|
||||
String timeSubstr = localRuleString.substring(k);
|
||||
String[] times = timeSubstr.split(",");
|
||||
boolean timesExist = true;
|
||||
for (int i = 0; i < times.length; i++) {
|
||||
String time = times[i];
|
||||
time = time.trim();
|
||||
if(time.length() == 0){
|
||||
continue;
|
||||
}
|
||||
if(time.equals("off")){
|
||||
break; // add no time values
|
||||
}
|
||||
if(time.equals("24/7")){
|
||||
// for some reason, this is used. See tagwatch.
|
||||
basic.addTimeRange(0, 24*60);
|
||||
break;
|
||||
}
|
||||
String[] stEnd = time.split("-"); //$NON-NLS-1$
|
||||
if (stEnd.length != 2) {
|
||||
if (i == times.length - 1 && basic.getStartTime() == 0 && basic.getEndTime() == 0) {
|
||||
return new UnparseableRule(r);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
timesExist = true;
|
||||
int st;
|
||||
int end;
|
||||
try {
|
||||
int i1 = stEnd[0].indexOf(':');
|
||||
int i2 = stEnd[1].indexOf(':');
|
||||
int startHour, startMin, endHour, endMin;
|
||||
if(i1 == -1) {
|
||||
// if no minutes are given, try complete value as hour
|
||||
startHour = Integer.parseInt(stEnd[0].trim());
|
||||
startMin = 0;
|
||||
} else {
|
||||
startHour = Integer.parseInt(stEnd[0].substring(0, i1).trim());
|
||||
startMin = Integer.parseInt(stEnd[0].substring(i1 + 1).trim());
|
||||
}
|
||||
if(i2 == -1) {
|
||||
// if no minutes are given, try complete value as hour
|
||||
endHour = Integer.parseInt(stEnd[1].trim());
|
||||
endMin = 0;
|
||||
} else {
|
||||
endHour = Integer.parseInt(stEnd[1].substring(0, i2).trim());
|
||||
endMin = Integer.parseInt(stEnd[1].substring(i2 + 1).trim());
|
||||
}
|
||||
st = startHour * 60 + startMin;
|
||||
end = endHour * 60 + endMin;
|
||||
} catch (NumberFormatException e) {
|
||||
return new UnparseableRule(r);
|
||||
}
|
||||
basic.addTimeRange(st, end);
|
||||
}
|
||||
if(!timesExist){
|
||||
return new UnparseableRule(r);
|
||||
}
|
||||
return basic;
|
||||
}
|
||||
|
||||
private class MyOnFocusChangeListener implements TextWatcher {
|
||||
private final EditPoiData data;
|
||||
private final String tagName;
|
||||
|
||||
public MyOnFocusChangeListener(EditPoiData data,
|
||||
String tagName) {
|
||||
this.data = data;
|
||||
this.tagName = tagName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
if (mIsUserInput) {
|
||||
String string = s.toString();
|
||||
if (!TextUtils.isEmpty(string)) {
|
||||
Tag tag = new Tag(tagName, string);
|
||||
data.tags.remove(tag);
|
||||
data.tags.add(tag);
|
||||
data.notifyDatasetChanged(mTagsChangedListener);
|
||||
}
|
||||
}
|
||||
}
|
||||
public void onFragmentActivated() {
|
||||
streetEditText.setText(getData().getTagValues()
|
||||
.get(OSMSettings.OSMTagKey.ADDR_STREET.getValue()));
|
||||
houseNumberEditText.setText(getData().getTagValues()
|
||||
.get(OSMSettings.OSMTagKey.ADDR_HOUSE_NUMBER.getValue()));
|
||||
phoneEditText.setText(getData().getTagValues()
|
||||
.get(OSMSettings.OSMTagKey.PHONE.getValue()));
|
||||
webSiteEditText.setText(getData().getTagValues()
|
||||
.get(OSMSettings.OSMTagKey.WEBSITE.getValue()));
|
||||
descriptionEditText.setText(getData().getTagValues()
|
||||
.get(OSMSettings.OSMTagKey.DESCRIPTION.getValue()));
|
||||
}
|
||||
|
||||
private class OpeningHoursAdapter {
|
||||
|
@ -547,12 +257,9 @@ public class BasicDataFragment extends Fragment {
|
|||
for (int i = 0; i < openingHours.getRules().size(); i++) {
|
||||
linearLayout.addView(getView(i));
|
||||
}
|
||||
if (mIsUserInput) {
|
||||
Tag openHours = new Tag(OSMSettings.OSMTagKey.OPENING_HOURS.getValue(),
|
||||
if (!data.isInEdit()) {
|
||||
data.putTag(OSMSettings.OSMTagKey.OPENING_HOURS.getValue(),
|
||||
openingHours.toStringNoMonths());
|
||||
data.tags.remove(openHours);
|
||||
data.tags.add(openHours);
|
||||
data.notifyDatasetChanged(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -575,14 +282,10 @@ public class BasicDataFragment extends Fragment {
|
|||
daysTextView.setText(stringBuilder.toString());
|
||||
|
||||
TextView openingTextView = (TextView) view.findViewById(R.id.openingTextView);
|
||||
final int openingHour = rule.getStartTime() / 60;
|
||||
int openingMinute = rule.getStartTime() - openingHour * 60;
|
||||
openingTextView.setText(formatTime(openingHour, openingMinute));
|
||||
openingTextView.setText(Algorithms.formatDuration(rule.getStartTime() * 60));
|
||||
|
||||
TextView closingTextView = (TextView) view.findViewById(R.id.closingTextView);
|
||||
int enHour = rule.getEndTime() / 60;
|
||||
int enTime = rule.getEndTime() - enHour * 60;
|
||||
closingTextView.setText(formatTime(enHour, enTime));
|
||||
closingTextView.setText(Algorithms.formatDuration(rule.getStartTime() * 60));
|
||||
timeContainer.setVisibility(View.VISIBLE);
|
||||
|
||||
daysTextView.setOnClickListener(new View.OnClickListener() {
|
||||
|
@ -609,7 +312,7 @@ public class BasicDataFragment extends Fragment {
|
|||
fragment.show(getChildFragmentManager(), "OpeningHoursHoursDialogFragment");
|
||||
}
|
||||
});
|
||||
} else if (openingHours.getRules().get(position) instanceof UnparseableRule) {
|
||||
} else if (openingHours.getRules().get(position) instanceof OpeningHoursParser.UnparseableRule) {
|
||||
daysTextView.setText(openingHours.getRules().get(position).toRuleString(false));
|
||||
timeContainer.setVisibility(View.GONE);
|
||||
}
|
||||
|
@ -626,38 +329,4 @@ public class BasicDataFragment extends Fragment {
|
|||
return view;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: 8/27/15 Consider moving to OpeningHoursParser
|
||||
private static class UnparseableRule implements OpeningHoursParser.OpeningHoursRule {
|
||||
private String ruleString;
|
||||
|
||||
public UnparseableRule(String ruleString) {
|
||||
this.ruleString = ruleString;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpenedForTime(Calendar cal, boolean checkPrevious) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsPreviousDay(Calendar cal) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsDay(Calendar cal) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean containsMonth(Calendar cal) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toRuleString(boolean avoidMonths) {
|
||||
return ruleString;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,6 @@ import net.osmand.plus.OsmandSettings;
|
|||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
import net.osmand.plus.osmedit.data.EditPoiData;
|
||||
import net.osmand.plus.osmedit.data.Tag;
|
||||
import net.osmand.plus.osmedit.dialogs.DeletePoiDialogFragment;
|
||||
import net.osmand.plus.osmedit.dialogs.PoiSubTypeDialogFragment;
|
||||
import net.osmand.plus.osmedit.dialogs.PoiTypeDialogFragment;
|
||||
|
@ -62,9 +61,9 @@ import net.osmand.util.Algorithms;
|
|||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Map;
|
||||
|
||||
public class EditPoiFragment extends DialogFragment {
|
||||
|
@ -75,15 +74,13 @@ public class EditPoiFragment extends DialogFragment {
|
|||
private static final String KEY_AMENITY = "key_amenity";
|
||||
private static final String TAGS_LIST = "tags_list";
|
||||
|
||||
private final EditPoiData editPoiData = new EditPoiData();
|
||||
private EditPoiData editPoiData;
|
||||
private ViewPager viewPager;
|
||||
private boolean isLocalEdit;
|
||||
private boolean mIsUserInput = true;
|
||||
private EditPoiData.TagsChangedListener mTagsChangedListener;
|
||||
private AutoCompleteTextView poiTypeEditText;
|
||||
private Node node;
|
||||
private Map<String, PoiType> allTranslatedSubTypes;
|
||||
public static final String POI_TYPE_TAG = "poi_type_tag";
|
||||
|
||||
private OpenstreetmapUtil mOpenstreetmapUtil;
|
||||
private TextInputLayout poiTypeTextInputLayout;
|
||||
|
||||
|
@ -102,9 +99,10 @@ public class EditPoiFragment extends DialogFragment {
|
|||
}
|
||||
|
||||
node = (Node) getArguments().getSerializable(KEY_AMENITY_NODE);
|
||||
allTranslatedSubTypes = getMyApplication().getPoiTypes()
|
||||
.getAllTranslatedNames();
|
||||
editPoiData.amenity = (Amenity) getArguments().getSerializable(KEY_AMENITY);
|
||||
allTranslatedSubTypes = getMyApplication().getPoiTypes().getAllTranslatedNames();
|
||||
|
||||
Amenity amenity = (Amenity) getArguments().getSerializable(KEY_AMENITY);
|
||||
editPoiData = new EditPoiData(amenity, node, allTranslatedSubTypes);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -127,36 +125,8 @@ public class EditPoiFragment extends DialogFragment {
|
|||
boolean isLightTheme = settings.OSMAND_THEME.get() == OsmandSettings.OSMAND_LIGHT_THEME;
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
editPoiData.tags = (LinkedHashSet<Tag>) savedInstanceState.getSerializable(TAGS_LIST);
|
||||
} else {
|
||||
editPoiData.tags = new LinkedHashSet<>();
|
||||
|
||||
tryAddTag(OSMSettings.OSMTagKey.ADDR_STREET.getValue(),
|
||||
node.getTag(OSMSettings.OSMTagKey.ADDR_STREET));
|
||||
tryAddTag(OSMSettings.OSMTagKey.ADDR_HOUSE_NUMBER.getValue(),
|
||||
node.getTag(OSMSettings.OSMTagKey.ADDR_HOUSE_NUMBER));
|
||||
tryAddTag(OSMSettings.OSMTagKey.PHONE.getValue(),
|
||||
editPoiData.amenity.getPhone());
|
||||
tryAddTag(OSMSettings.OSMTagKey.WEBSITE.getValue(),
|
||||
editPoiData.amenity.getSite());
|
||||
for (String tag : node.getTagKeySet()) {
|
||||
tryAddTag(tag, node.getTag(tag));
|
||||
}
|
||||
String subType = editPoiData.amenity.getSubType();
|
||||
String key;
|
||||
String value;
|
||||
if (allTranslatedSubTypes.get(subType) != null) {
|
||||
PoiType pt = allTranslatedSubTypes.get(subType);
|
||||
key = pt.getOsmTag();
|
||||
value = pt.getOsmValue();
|
||||
} else {
|
||||
key = editPoiData.amenity.getType().getDefaultTag();
|
||||
value = subType;
|
||||
}
|
||||
final Tag tag = new Tag(key, value);
|
||||
editPoiData.tags.remove(tag);
|
||||
tag.tag = POI_TYPE_TAG;
|
||||
editPoiData.tags.add(tag);
|
||||
Map<String, String> mp = (Map<String, String>) savedInstanceState.getSerializable(TAGS_LIST);
|
||||
editPoiData.updateTags(mp);
|
||||
}
|
||||
|
||||
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
|
||||
|
@ -172,8 +142,24 @@ public class EditPoiFragment extends DialogFragment {
|
|||
viewPager = (ViewPager) view.findViewById(R.id.viewpager);
|
||||
String basicTitle = getResources().getString(R.string.tab_title_basic);
|
||||
String extendedTitle = getResources().getString(R.string.tab_title_advanced);
|
||||
MyAdapter pagerAdapter = new MyAdapter(getChildFragmentManager(), basicTitle, extendedTitle);
|
||||
final MyAdapter pagerAdapter = new MyAdapter(getChildFragmentManager(), basicTitle, extendedTitle);
|
||||
viewPager.setAdapter(pagerAdapter);
|
||||
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageScrolled(int i, float v, int i1) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(int i) {
|
||||
((OnFragmentActivatedListener) pagerAdapter.getItem(i)).onFragmentActivated();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int i) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
final TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);
|
||||
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
|
||||
|
@ -230,11 +216,8 @@ public class EditPoiFragment extends DialogFragment {
|
|||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
final Tag tag = new Tag(OSMSettings.OSMTagKey.NAME.getValue(), s.toString());
|
||||
if (mIsUserInput) {
|
||||
getEditPoiData().tags.remove(tag);
|
||||
getEditPoiData().tags.add(tag);
|
||||
getEditPoiData().notifyDatasetChanged(mTagsChangedListener);
|
||||
if (!getEditPoiData().isInEdit()) {
|
||||
getEditPoiData().putTag(OSMSettings.OSMTagKey.NAME.getValue(), s.toString());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -252,11 +235,8 @@ public class EditPoiFragment extends DialogFragment {
|
|||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
final Tag tag = new Tag(POI_TYPE_TAG, s.toString());
|
||||
if (mIsUserInput) {
|
||||
getEditPoiData().tags.remove(tag);
|
||||
getEditPoiData().tags.add(tag);
|
||||
getEditPoiData().notifyDatasetChanged(mTagsChangedListener);
|
||||
if (!getEditPoiData().isInEdit()) {
|
||||
getEditPoiData().putTag(EditPoiData.POI_TYPE_TAG, s.toString());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -294,24 +274,24 @@ public class EditPoiFragment extends DialogFragment {
|
|||
return;
|
||||
}
|
||||
OsmPoint.Action action = node.getId() == -1 ? OsmPoint.Action.CREATE : OsmPoint.Action.MODIFY;
|
||||
for (Tag tag : editPoiData.tags) {
|
||||
if (tag.tag.equals(POI_TYPE_TAG)) {
|
||||
final PoiType poiType = allTranslatedSubTypes.get(tag.value.trim().toLowerCase());
|
||||
for (Map.Entry<String, String> tag : editPoiData.getTagValues().entrySet()) {
|
||||
if (tag.getKey().equals(EditPoiData.POI_TYPE_TAG)) {
|
||||
final PoiType poiType = allTranslatedSubTypes.get(tag.getValue().trim().toLowerCase());
|
||||
if (poiType != null) {
|
||||
node.putTag(poiType.getOsmTag(), poiType.getOsmValue());
|
||||
if (poiType.getOsmTag2() != null) {
|
||||
node.putTag(poiType.getOsmTag2(), poiType.getOsmValue2());
|
||||
}
|
||||
} else {
|
||||
node.putTag(editPoiData.amenity.getType().getDefaultTag(), tag.value);
|
||||
node.putTag(editPoiData.amenity.getType().getDefaultTag(), tag.getValue());
|
||||
}
|
||||
// } else if (tag.tag.equals(OSMSettings.OSMTagKey.DESCRIPTION.getValue())) {
|
||||
// description = tag.value;
|
||||
} else {
|
||||
if (tag.value.length() > 0) {
|
||||
node.putTag(tag.tag, tag.value);
|
||||
if (tag.getKey().length() > 0) {
|
||||
node.putTag(tag.getKey(), tag.getValue());
|
||||
} else {
|
||||
node.removeTag(tag.tag);
|
||||
node.removeTag(tag.getKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -369,15 +349,10 @@ public class EditPoiFragment extends DialogFragment {
|
|||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
outState.putSerializable(TAGS_LIST, editPoiData.tags);
|
||||
outState.putSerializable(TAGS_LIST, (Serializable) editPoiData.getTagValues());
|
||||
super.onSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
private void tryAddTag(String key, String value) {
|
||||
if (!Algorithms.isEmpty(value)) {
|
||||
editPoiData.tags.add(new Tag(key, value));
|
||||
}
|
||||
}
|
||||
|
||||
public static EditPoiFragment createAddPoiInstance(double latitude, double longitude,
|
||||
OsmandApplication application) {
|
||||
|
@ -407,7 +382,6 @@ public class EditPoiFragment extends DialogFragment {
|
|||
poiTypeEditText.setText(subCategory);
|
||||
}
|
||||
|
||||
// TODO: 8/28/15 Move to some king of helper class
|
||||
public static void commitNode(final OsmPoint.Action action,
|
||||
final Node n,
|
||||
final EntityInfo info,
|
||||
|
@ -446,13 +420,9 @@ public class EditPoiFragment extends DialogFragment {
|
|||
}
|
||||
|
||||
public void updateType(Amenity amenity) {
|
||||
mIsUserInput = false;
|
||||
poiTypeEditText.setText(amenity.getSubType());
|
||||
mIsUserInput = true;
|
||||
poiTypeTextInputLayout.setHint(amenity.getType().getTranslation());
|
||||
|
||||
setAdapterForPoiTypeEditText();
|
||||
|
||||
poiTypeEditText.setOnTouchListener(new View.OnTouchListener() {
|
||||
@Override
|
||||
public boolean onTouch(final View v, MotionEvent event) {
|
||||
|
@ -543,13 +513,13 @@ public class EditPoiFragment extends DialogFragment {
|
|||
}
|
||||
|
||||
public static class MyAdapter extends FragmentPagerAdapter {
|
||||
private final String basicTitle;
|
||||
private final String extendedTitle;
|
||||
private final Fragment[] fragments = new Fragment[]{new BasicDataFragment(),
|
||||
new AdvancedDataFragment()};
|
||||
private final String[] titles;
|
||||
|
||||
public MyAdapter(FragmentManager fm, String basicTitle, String extendedTitle) {
|
||||
super(fm);
|
||||
this.basicTitle = basicTitle;
|
||||
this.extendedTitle = extendedTitle;
|
||||
titles = new String[]{basicTitle, extendedTitle};
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -559,25 +529,12 @@ public class EditPoiFragment extends DialogFragment {
|
|||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
switch (position) {
|
||||
case 0:
|
||||
return new BasicDataFragment();
|
||||
case 1:
|
||||
return new AdvancedDataFragment();
|
||||
}
|
||||
throw new IllegalArgumentException("Unexpected position");
|
||||
return fragments[position];
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getPageTitle(int position) {
|
||||
// TODO replace with string resources
|
||||
switch (position) {
|
||||
case 0:
|
||||
return basicTitle;
|
||||
case 1:
|
||||
return extendedTitle;
|
||||
}
|
||||
throw new IllegalArgumentException("Unexpected position");
|
||||
return titles[position];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -643,4 +600,7 @@ public class EditPoiFragment extends DialogFragment {
|
|||
return handled;
|
||||
}
|
||||
};
|
||||
public interface OnFragmentActivatedListener {
|
||||
void onFragmentActivated();
|
||||
}
|
||||
}
|
|
@ -1,19 +1,125 @@
|
|||
package net.osmand.plus.osmedit.data;
|
||||
|
||||
import net.osmand.data.Amenity;
|
||||
import net.osmand.osm.PoiType;
|
||||
import net.osmand.osm.edit.Node;
|
||||
import net.osmand.osm.edit.OSMSettings;
|
||||
import net.osmand.util.Algorithms;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class EditPoiData {
|
||||
private Set<TagsChangedListener> mListeners = new HashSet<>();
|
||||
public LinkedHashSet<Tag> tags;
|
||||
public Amenity amenity;
|
||||
private LinkedHashMap<String, String > tagValues = new LinkedHashMap<String, String>();
|
||||
private boolean isInEdit = false;
|
||||
public final Amenity amenity;
|
||||
public static final String POI_TYPE_TAG = "poi_type_tag";
|
||||
|
||||
public void notifyDatasetChanged(TagsChangedListener listenerToSkip) {
|
||||
public EditPoiData(Amenity amenity, Node node, Map<String, PoiType> allTranslatedSubTypes) {
|
||||
this.amenity = amenity;
|
||||
initTags(node, allTranslatedSubTypes);
|
||||
}
|
||||
|
||||
|
||||
public void updateTags(Map<String, String> mp) {
|
||||
this.tagValues.clear();
|
||||
this.tagValues.putAll(mp);
|
||||
}
|
||||
private void tryAddTag(String key, String value) {
|
||||
if (!Algorithms.isEmpty(value)) {
|
||||
tagValues.put(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
private void initTags(Node node, Map<String, PoiType> allTranslatedSubTypes) {
|
||||
checkNotInEdit();
|
||||
tryAddTag(OSMSettings.OSMTagKey.ADDR_STREET.getValue(),
|
||||
node.getTag(OSMSettings.OSMTagKey.ADDR_STREET));
|
||||
tryAddTag(OSMSettings.OSMTagKey.ADDR_HOUSE_NUMBER.getValue(),
|
||||
node.getTag(OSMSettings.OSMTagKey.ADDR_HOUSE_NUMBER));
|
||||
tryAddTag(OSMSettings.OSMTagKey.PHONE.getValue(),
|
||||
amenity.getPhone());
|
||||
tryAddTag(OSMSettings.OSMTagKey.WEBSITE.getValue(),
|
||||
amenity.getSite());
|
||||
for (String tag : node.getTagKeySet()) {
|
||||
tryAddTag(tag, node.getTag(tag));
|
||||
}
|
||||
String subType = amenity.getSubType();
|
||||
String key;
|
||||
String value;
|
||||
if (allTranslatedSubTypes.get(subType) != null) {
|
||||
PoiType pt = allTranslatedSubTypes.get(subType);
|
||||
key = pt.getOsmTag();
|
||||
value = pt.getOsmValue();
|
||||
} else {
|
||||
key = amenity.getType().getDefaultTag();
|
||||
value = subType;
|
||||
}
|
||||
tagValues.remove(key);
|
||||
tagValues.put(POI_TYPE_TAG, value);
|
||||
}
|
||||
|
||||
|
||||
public Map<String, String> getTagValues() {
|
||||
return Collections.unmodifiableMap(tagValues);
|
||||
}
|
||||
|
||||
|
||||
public void putTag(String tag, String value) {
|
||||
checkNotInEdit();
|
||||
try {
|
||||
isInEdit = true;
|
||||
tagValues.put(tag, value);
|
||||
notifyDatasetChanged(tag);
|
||||
} finally {
|
||||
isInEdit = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void checkNotInEdit() {
|
||||
if(isInEdit) {
|
||||
throw new IllegalStateException("Can't modify in edit mode");
|
||||
}
|
||||
}
|
||||
|
||||
public void notifyToUpdateUI() {
|
||||
checkNotInEdit();
|
||||
try {
|
||||
isInEdit = true;
|
||||
notifyDatasetChanged(null);
|
||||
} finally {
|
||||
isInEdit = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void removeTag(String tag) {
|
||||
checkNotInEdit();
|
||||
try {
|
||||
isInEdit = true;
|
||||
tagValues.remove(tag);
|
||||
notifyDatasetChanged(tag);
|
||||
} finally {
|
||||
isInEdit = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void setIsInEdit(boolean isInEdit) {
|
||||
this.isInEdit = isInEdit;
|
||||
}
|
||||
|
||||
public boolean isInEdit() {
|
||||
return isInEdit;
|
||||
}
|
||||
|
||||
|
||||
private void notifyDatasetChanged(String tag) {
|
||||
for (TagsChangedListener listener : mListeners) {
|
||||
if (listener != listenerToSkip) listener.onTagsChanged();
|
||||
listener.onTagsChanged(tag);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -26,6 +132,8 @@ public class EditPoiData {
|
|||
}
|
||||
|
||||
public interface TagsChangedListener {
|
||||
void onTagsChanged();
|
||||
|
||||
void onTagsChanged(String tag);
|
||||
|
||||
}
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
package net.osmand.plus.osmedit.data;
|
||||
|
||||
import net.osmand.PlatformUtil;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class Tag implements Serializable {
|
||||
private static final Log LOG = PlatformUtil.getLog(Tag.class);
|
||||
public String tag;
|
||||
public String value;
|
||||
|
||||
public Tag(String tag, String value) {
|
||||
this.tag = tag;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
Tag tag1 = (Tag) o;
|
||||
return tag.equals(tag1.tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return tag.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Tag{" +
|
||||
"tag='" + tag + '\'' +
|
||||
", value='" + value + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
|
@ -831,6 +831,9 @@ public class VoiceRouter {
|
|||
}
|
||||
|
||||
private void makeSound(){
|
||||
if(isMute()) {
|
||||
return;
|
||||
}
|
||||
SoundPool sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
|
||||
int soundClick = -1;
|
||||
boolean success = true;
|
||||
|
|
Loading…
Reference in a new issue