Properly show max editable building levels

Signed-off-by: Alexander Borsuk <me@alex.bio>
This commit is contained in:
Alexander Borsuk 2023-01-21 22:55:49 +01:00 committed by Alexander Borsuk
parent 62d1cd71e2
commit 9acf4730ff
4 changed files with 55 additions and 39 deletions

View file

@ -125,6 +125,12 @@ Java_app_organicmaps_editor_Editor_nativeGetStars(JNIEnv * env, jclass)
return g_editableMapObject.GetStars();
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_editor_Editor_nativeGetMaxEditableBuildingLevels(JNIEnv *, jclass)
{
return osm::EditableMapObject::kMaximumLevelsEditableByUsers;
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_editor_Editor_nativeHasWifi(JNIEnv *, jclass)
{

View file

@ -84,6 +84,7 @@ public final class Editor
nativeSetMetadata(Metadata.MetadataType.FMD_PHONE_NUMBER.toInt(), phone);
}
public static native int nativeGetStars();
public static native int nativeGetMaxEditableBuildingLevels();
public static String nativeGetBuildingLevels()
{
return nativeGetMetadata(Metadata.MetadataType.FMD_BUILDING_LEVELS.toInt());

View file

@ -1,5 +1,6 @@
package app.organicmaps.editor;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
@ -39,6 +40,7 @@ import app.organicmaps.util.Graphics;
import app.organicmaps.util.InputUtils;
import app.organicmaps.util.Option;
import app.organicmaps.util.StringUtils;
import app.organicmaps.util.ThemeUtils;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils;
@ -177,7 +179,13 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
UiUtils.setInputError(mInputBuildingLevels, Editor.nativeIsLevelValid(s.toString()) ? 0 : R.string.error_enter_correct_storey_number);
final Context context = mInputBuildingLevels.getContext();
final EditText editText = mInputBuildingLevels.getEditText();
final boolean isValid = Editor.nativeIsLevelValid(s.toString());
mInputBuildingLevels.setError(isValid ? null
: context.getString(R.string.error_enter_correct_storey_number, Editor.nativeGetMaxEditableBuildingLevels()));
editText.setTextColor(isValid ? ThemeUtils.getColor(context, android.R.attr.textColorPrimary)
: context.getResources().getColor(R.color.base_red));
}
});
@ -422,7 +430,8 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
// Details
mBlockLevels = view.findViewById(R.id.block_levels);
mBuildingLevels = findInputAndInitBlock(mBlockLevels, 0, getString(R.string.editor_storey_number, 25));
mBuildingLevels = findInputAndInitBlock(mBlockLevels, 0,
getString(R.string.editor_storey_number, Editor.nativeGetMaxEditableBuildingLevels()));
mBuildingLevels.setInputType(InputType.TYPE_CLASS_NUMBER);
mInputBuildingLevels = mBlockLevels.findViewById(R.id.custom_input);
View blockPhone = view.findViewById(R.id.block_phone);

View file

@ -13383,44 +13383,44 @@
zh-Hant = 樓層數(最大 %d
[error_enter_correct_storey_number]
comment = Error message in Editor when a user tries to set the number of floors for a building higher than 25
comment = Error message in Editor when a user tries to set the number of floors for a building higher than %d floors
tags = android,ios
en = The number of floors must non exceed 25
ar = يجب ألا يتجاوز عدد طوابق المبنى 25
be = Колькасць паверхаў павінна быць не больш за 25
bg = Броят на етажите не трябва да надвишава 25
ca = El nombre de plantes no pot excedir de 25
cs = Opravte počet poschodí, max. 25
da = Rediger bygningen med maksimum 25 etager
de = Das Gebäude kann nicht mehr als 25 Etagen haben
el = Ο αριθμός των ορόφων δεν πρέπει να υπερβαίνει τους 25
es = El número de plantas no debe superar 25
et = Korruste arv ei või olla üle 25
eu = Landare kopurua ez da 25etik gorakoa izan behar
fa = تعداد طبقات نباید بیش از 25 باشد
fi = Muokkaa kerroksia, enintään 25 kerrosta
fr = Le nombre d'étages ne doit pas dépasser 25
hu = Legfeljebb 25 emeletes épület szerkesztése
id = Edit bangunan dengan maksimum 25 lantai
it = Il numero di piani non deve superare 25
ja = 最高25階までのビルを編集
ko = 최대 25층까지 입력하세요
mr = मजल्यांची संख्या २५ पेक्षा जास्त नसावी
nb = Rediger bygningen med maks. 25 etasjer
nl = Bewerk het gebouw met maximaal 25 verdiepingen
pl = Edytuj budynek z maksymalną liczbą 25 pięter
pt = Editar o edifício com um máximo de 25 pisos
pt-BR = O número de andares não pode ultrapassar 25
ro = Numărul de etaje nu trebuie să depășească 25
ru = Количество этажей не должно превышать 25
sk = Upraviť s maximálne 25 poschodiami
sv = Redigera byggnaden med max 25 våningar
th = แก้ไขอาคารที่มีจำนวนชั้นมากกว่า 25
tr = Kat sayısı 25'i geçmemelidir
uk = Редагуйте будівлі висотою максимум 25 поверхів
vi = Sửa tòa nhà có tối đa 25 tầng
zh-Hans = 编辑最多 25 层的建筑
zh-Hant = 編輯最多 25 層的建築
en = The number of floors must non exceed %d
ar = يجب ألا يتجاوز عدد طوابق المبنى %d
be = Колькасць паверхаў павінна быць не больш за %d
bg = Броят на етажите не трябва да надвишава %d
ca = El nombre de plantes no pot excedir de %d
cs = Opravte počet poschodí, max. %d
da = Rediger bygningen med maksimum %d etager
de = Das Gebäude kann nicht mehr als %d Etagen haben
el = Ο αριθμός των ορόφων δεν πρέπει να υπερβαίνει τους %d
es = El número de plantas no debe superar %d
et = Korruste arv ei või olla üle %d
eu = Landare kopurua ez da %detik gorakoa izan behar
fa = تعداد طبقات نباید بیش از %d باشد
fi = Muokkaa kerroksia, enintään %d kerrosta
fr = Le nombre d'étages ne doit pas dépasser %d
hu = Ez az épület legfeljebb %d emeletes lehet
id = Edit bangunan dengan maksimum %d lantai
it = Il numero di piani non deve superare %d
ja = 最高%d階までのビルを編集
ko = 최대 %d층까지 입력하세요
mr = मजल्यांची संख्या %d पेक्षा जास्त नसावी
nb = Rediger bygningen med maks. %d etasjer
nl = Het gebouw mag niet meer dan %d verdiepingen hebben
pl = Edytuj budynek z maksymalną liczbą %d pięter
pt = O número de pisos não pode ser maior que %d
pt-BR = O número de andares não pode ser maior que %d
ro = Numărul de etaje nu trebuie să depășească %d
ru = Количество этажей не должно превышать %d
sk = Upraviť s maximálne %d poschodiami
sv = Redigera byggnaden med max %d våningar
th = แก้ไขอาคารที่มีจำนวนชั้นมากกว่า %d
tr = Kat sayısı %d'i geçmemelidir
uk = Редагуйте будівлі висотою максимум %d поверхів
vi = Sửa tòa nhà có tối đa %d tầng
zh-Hans = 最多可编辑 %d 层的建筑
zh-Hant = 編輯最多 %d 層的建築
[editor_zip_code]
tags = android,ios