diff --git a/.github/workflows/android-beta.yaml b/.github/workflows/android-beta.yaml index 1ca85c9e06..0798f36af3 100644 --- a/.github/workflows/android-beta.yaml +++ b/.github/workflows/android-beta.yaml @@ -76,7 +76,7 @@ jobs: run: | cmake --version ninja --version - ./gradlew -Pfirebase assembleGoogleBeta uploadCrashlyticsSymbolFileGoogleBeta uploadCrashlyticsMappingFileGoogleBeta + ./gradlew -Pfirebase -x lint -x lintVitalGoogleBeta assembleGoogleBeta uploadCrashlyticsSymbolFileGoogleBeta uploadCrashlyticsMappingFileGoogleBeta - name: Upload beta apk to App Distribution shell: bash diff --git a/.github/workflows/android-monkey.yaml b/.github/workflows/android-monkey.yaml index a8a34d4e87..adbc1bf07d 100644 --- a/.github/workflows/android-monkey.yaml +++ b/.github/workflows/android-monkey.yaml @@ -31,8 +31,8 @@ jobs: outputs: updated: ${{ steps.check.outputs.updated }} - android-google-beta: - name: Android Google Beta + android-google-debug: + name: Android Google Debug runs-on: ubuntu-latest needs: precondition if: ${{ needs.precondition.outputs.updated != '' }} @@ -76,20 +76,25 @@ jobs: run: | cmake --version ninja --version - ./gradlew -Pfirebase -Parm64 -Parmeabi-v7a assembleGoogleBeta uploadCrashlyticsSymbolFileGoogleBeta uploadCrashlyticsMappingFileGoogleBeta + ./gradlew -Pfirebase -Parm64-v8a -Parmeabi-v7a -Px86_64 assembleGoogleDebug uploadCrashlyticsSymbolFileGoogleDebug - name: Run monkey run: | gcloud auth activate-service-account --key-file android/app/firebase-test-lab.json gcloud config set project omapsapp - gcloud firebase test android run --app ./android/app/build/outputs/apk/google/beta/OrganicMaps-*-google-beta.apk \ + gcloud firebase test android run --app ./android/app/build/outputs/apk/google/debug/OrganicMaps-*-google-debug.apk \ --device model=husky,version=34 \ - --device model=tangorpro,version=33,orientation=landscape \ + --device model=cheetah,version=33 \ --device model=bluejay,version=32 \ --device model=a51,version=31 \ - --device model=f2q,version=30,orientation=landscape \ - --device model=a10,version=29,orientation=landscape \ - --device model=cactus,version=27 \ - --device model=sailfish,version=25 \ - --device model=hammerhead,version=23 \ + --device model=f2q,version=30 \ + --device model=a10,version=29 \ + --device model=Pixel2.arm,version=30 \ + --device model=MediumPhone.arm,version=29 \ + --device model=MediumPhone.arm,version=28 \ + --device model=MediumPhone.arm,version=27 \ + --device model=Pixel2.arm,version=26,orientation=landscape \ + --device model=Nexus6,version=25 \ + --device model=NexusLowRes,version=24 \ + --device model=NexusLowRes,version=23,orientation=landscape \ --timeout 15m diff --git a/.github/workflows/ios-check.yaml b/.github/workflows/ios-check.yaml index fb6e4e9ce0..4c52699f32 100644 --- a/.github/workflows/ios-check.yaml +++ b/.github/workflows/ios-check.yaml @@ -62,17 +62,17 @@ jobs: shell: bash run: ./configure.sh - - name: Configure XCode cache - uses: irgaly/xcode-cache@v1 + - name: Configure ccache + uses: mikehardy/buildcache-action@v2.1.0 with: - key: xcode-cache-deriveddata-${{ github.workflow }}-${{ matrix.buildType }}-${{ github.sha }} - restore-keys: xcode-cache-deriveddata-${{ github.workflow }}-${{ matrix.buildType }} + cache_key: ${{ github.workflow }}-${{ matrix.buildType }} - name: Compile shell: bash # Check for compilation errors. run: | xcodebuild \ + CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ \ -workspace xcode/omim.xcworkspace \ -scheme OMaps \ -configuration ${{ matrix.buildType }} build \ diff --git a/.github/workflows/linux-check.yaml b/.github/workflows/linux-check.yaml index 67bfa36bfd..670681c895 100644 --- a/.github/workflows/linux-check.yaml +++ b/.github/workflows/linux-check.yaml @@ -60,7 +60,6 @@ jobs: ninja-build \ libgl1-mesa-dev \ libglvnd-dev \ - libharfbuzz-dev \ qt6-base-dev \ libqt6svg6-dev \ qt6-positioning-dev \ @@ -129,7 +128,6 @@ jobs: ninja-build \ libgl1-mesa-dev \ libglvnd-dev \ - libharfbuzz-dev \ qt6-base-dev \ libqt6svg6-dev \ qt6-positioning-dev \ diff --git a/3party/CMakeLists.txt b/3party/CMakeLists.txt index d6c5cea0c1..7bfc4f0f3d 100644 --- a/3party/CMakeLists.txt +++ b/3party/CMakeLists.txt @@ -45,9 +45,9 @@ add_subdirectory(bsdiff-courgette) if (NOT PLATFORM_LINUX) add_subdirectory(freetype) add_subdirectory(icu) - add_subdirectory(harfbuzz) endif() +add_subdirectory(harfbuzz) add_subdirectory(liboauthcpp) add_subdirectory(minizip) add_subdirectory(open-location-code) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a6d043565..90fc915059 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -289,10 +289,10 @@ if (USE_PCH) endif() # Should be on the root level, not in 3party, so tests can get these dependencies. +# Should go before 3party as harfbuzz is using them. if (PLATFORM_LINUX) find_package(ICU COMPONENTS uc i18n data REQUIRED) find_package(Freetype REQUIRED) - find_package(harfbuzz REQUIRED) endif() # Include 3party dependencies. diff --git a/android/app/src/main/cpp/app/organicmaps/Framework.cpp b/android/app/src/main/cpp/app/organicmaps/Framework.cpp index 371d503a20..30ff97ceb5 100644 --- a/android/app/src/main/cpp/app/organicmaps/Framework.cpp +++ b/android/app/src/main/cpp/app/organicmaps/Framework.cpp @@ -1926,8 +1926,12 @@ Java_app_organicmaps_Framework_nativeMemoryWarning(JNIEnv *, jclass) JNIEXPORT jstring JNICALL Java_app_organicmaps_Framework_nativeGetKayakHotelLink(JNIEnv * env, jclass, jstring countryIsoCode, jstring uri, - jlong firstDaySec, jlong lastDaySec, jboolean isReferral) + jobject firstDay, jobject lastDay, jboolean isReferral) { + static jmethodID instantGetEpochSecond = jni::GetMethodID(env, firstDay, "getEpochSecond", "()J"); + jlong firstDaySec = env->CallLongMethod(firstDay, instantGetEpochSecond); + jlong lastDaySec = env->CallLongMethod(lastDay, instantGetEpochSecond); + string const url = osm::GetKayakHotelURLFromURI(jni::ToNativeString(env, countryIsoCode), jni::ToNativeString(env, uri), static_cast(firstDaySec), diff --git a/android/app/src/main/java/app/organicmaps/Framework.java b/android/app/src/main/java/app/organicmaps/Framework.java index 76c09d6d7b..c11bb09929 100644 --- a/android/app/src/main/java/app/organicmaps/Framework.java +++ b/android/app/src/main/java/app/organicmaps/Framework.java @@ -447,12 +447,13 @@ public class Framework /** * @param countryIsoCode Two-letter ISO country code to use country-specific Kayak.com domain. * @param uri `$HOTEL_NAME,-c$CITY_ID-h$HOTEL_ID` URI. - * @param firstDaySec the epoch seconds of the first day of planned stay. - * @param lastDaySec the epoch seconds of the last day of planned stay. + * @param startDay the first day of planned stay. + * @param lastDay the last day of planned stay. * @param isReferral enable referral code to help the project. * @return a URL to Kayak's hotel page. */ @Nullable public static native String nativeGetKayakHotelLink(@NonNull String countryIsoCode, @NonNull String uri, - long firstDaySec, long lastDaySec, boolean isReferral); + @NonNull Instant firstDay, @NonNull Instant lastDay, + boolean isReferral); } diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategoriesAdapter.java b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategoriesAdapter.java index 21ef9197bd..cb7025d5bd 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategoriesAdapter.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarkCategoriesAdapter.java @@ -84,7 +84,7 @@ public class BookmarkCategoriesAdapter extends BaseBookmarkCategoryAdapter { - View item = inflater.inflate(R.layout.item_bookmark_button, parent, false); + View item = inflater.inflate(R.layout.item_bookmark_create_group, parent, false); item.setOnClickListener(v -> { if (mCategoryListCallback != null) mCategoryListCallback.onAddButtonClick(); @@ -93,7 +93,7 @@ public class BookmarkCategoriesAdapter extends BaseBookmarkCategoryAdapter { - View item = inflater.inflate(R.layout.item_bookmark_button, parent, false); + View item = inflater.inflate(R.layout.item_bookmark_import, parent, false); item.setOnClickListener(v -> { if (mCategoryListCallback != null) mCategoryListCallback.onImportButtonClick(); @@ -102,7 +102,7 @@ public class BookmarkCategoriesAdapter extends BaseBookmarkCategoryAdapter { - View item = inflater.inflate(R.layout.item_bookmark_button, parent, false); + View item = inflater.inflate(R.layout.item_bookmark_export, parent, false); item.setOnClickListener(v -> { if (mCategoryListCallback != null) mCategoryListCallback.onExportButtonClick(); diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksListFragment.java b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksListFragment.java index b52d697ee7..f0c622b258 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksListFragment.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/BookmarksListFragment.java @@ -20,7 +20,7 @@ import androidx.recyclerview.widget.ConcatAdapter; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.SimpleItemAnimator; -import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton; +import com.google.android.material.floatingactionbutton.FloatingActionButton; import app.organicmaps.MwmActivity; import app.organicmaps.R; import app.organicmaps.base.BaseMwmRecyclerFragment; @@ -79,7 +79,7 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment CREATOR = new Parcelable.Creator<>() diff --git a/android/app/src/main/java/app/organicmaps/bookmarks/data/MapObject.java b/android/app/src/main/java/app/organicmaps/bookmarks/data/MapObject.java index 6249cd6564..ffab17d082 100644 --- a/android/app/src/main/java/app/organicmaps/bookmarks/data/MapObject.java +++ b/android/app/src/main/java/app/organicmaps/bookmarks/data/MapObject.java @@ -289,10 +289,9 @@ public class MapObject implements PlacePageData if (TextUtils.isEmpty(uri)) return ""; final Instant firstDay = Instant.now(); - final long firstDaySec = firstDay.getEpochSecond(); - final long lastDaySec = firstDay.plus(1, ChronoUnit.DAYS).getEpochSecond(); + final Instant lastDay = firstDay.plus(1, ChronoUnit.DAYS); final boolean isReferral = Config.isKayakReferralAllowed(); - final String res = Framework.nativeGetKayakHotelLink(Utils.getCountryCode(), uri, firstDaySec, lastDaySec, isReferral); + final String res = Framework.nativeGetKayakHotelLink(Utils.getCountryCode(), uri, firstDay, lastDay, isReferral); return res == null ? "" : res; } diff --git a/android/app/src/main/java/app/organicmaps/car/screens/BookmarksScreen.java b/android/app/src/main/java/app/organicmaps/car/screens/BookmarksScreen.java new file mode 100644 index 0000000000..479a18f3be --- /dev/null +++ b/android/app/src/main/java/app/organicmaps/car/screens/BookmarksScreen.java @@ -0,0 +1,169 @@ +package app.organicmaps.car.screens; + +import static java.util.Objects.requireNonNull; + +import android.graphics.drawable.Drawable; +import android.location.Location; +import android.text.SpannableStringBuilder; +import android.text.Spanned; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.car.app.CarContext; +import androidx.car.app.constraints.ConstraintManager; +import androidx.car.app.model.Action; +import androidx.car.app.model.CarIcon; +import androidx.car.app.model.DistanceSpan; +import androidx.car.app.model.ForegroundCarColorSpan; +import androidx.car.app.model.Header; +import androidx.car.app.model.ItemList; +import androidx.car.app.model.Row; +import androidx.car.app.model.Template; +import androidx.car.app.navigation.model.MapTemplate; +import androidx.core.graphics.drawable.IconCompat; + +import app.organicmaps.R; +import app.organicmaps.bookmarks.data.BookmarkCategory; +import app.organicmaps.bookmarks.data.BookmarkInfo; +import app.organicmaps.bookmarks.data.BookmarkManager; +import app.organicmaps.car.SurfaceRenderer; +import app.organicmaps.car.screens.base.BaseMapScreen; +import app.organicmaps.car.util.Colors; +import app.organicmaps.car.util.RoutingHelpers; +import app.organicmaps.car.util.UiHelpers; +import app.organicmaps.location.LocationHelper; +import app.organicmaps.util.Distance; +import app.organicmaps.util.Graphics; + +import java.util.ArrayList; +import java.util.List; + +public class BookmarksScreen extends BaseMapScreen +{ + private final int MAX_CATEGORIES_SIZE; + + @Nullable + private BookmarkCategory mBookmarkCategory; + + public BookmarksScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer) + { + super(carContext, surfaceRenderer); + final ConstraintManager constraintManager = getCarContext().getCarService(ConstraintManager.class); + MAX_CATEGORIES_SIZE = constraintManager.getContentLimit(ConstraintManager.CONTENT_LIMIT_TYPE_LIST); + } + + private BookmarksScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer, @NonNull BookmarkCategory bookmarkCategory) + { + this(carContext, surfaceRenderer); + mBookmarkCategory = bookmarkCategory; + } + + @NonNull + @Override + public Template onGetTemplate() + { + final MapTemplate.Builder builder = new MapTemplate.Builder(); + builder.setHeader(createHeader()); + builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer())); + builder.setItemList(mBookmarkCategory == null ? createBookmarkCategoriesList() : createBookmarksList()); + return builder.build(); + } + + @NonNull + private Header createHeader() + { + final Header.Builder builder = new Header.Builder(); + builder.setStartHeaderAction(Action.BACK); + builder.setTitle(mBookmarkCategory == null ? getCarContext().getString(R.string.bookmarks) : mBookmarkCategory.getName()); + return builder.build(); + } + + @NonNull + private ItemList createBookmarkCategoriesList() + { + final List bookmarkCategories = getBookmarks(); + final int categoriesSize = Math.min(bookmarkCategories.size(), MAX_CATEGORIES_SIZE); + + ItemList.Builder builder = new ItemList.Builder(); + for (int i = 0; i < categoriesSize; ++i) + { + final BookmarkCategory bookmarkCategory = bookmarkCategories.get(i); + + Row.Builder itemBuilder = new Row.Builder(); + itemBuilder.setTitle(bookmarkCategory.getName()); + itemBuilder.addText(bookmarkCategory.getDescription()); + itemBuilder.setOnClickListener(() -> getScreenManager().push(new BookmarksScreen(getCarContext(), getSurfaceRenderer(), bookmarkCategory))); + itemBuilder.setBrowsable(true); + builder.addItem(itemBuilder.build()); + } + return builder.build(); + } + + @NonNull + private ItemList createBookmarksList() + { + final long bookmarkCategoryId = requireNonNull(mBookmarkCategory).getId(); + final int bookmarkCategoriesSize = Math.min(mBookmarkCategory.getBookmarksCount(), MAX_CATEGORIES_SIZE); + + ItemList.Builder builder = new ItemList.Builder(); + for (int i = 0; i < bookmarkCategoriesSize; ++i) + { + final long bookmarkId = BookmarkManager.INSTANCE.getBookmarkIdByPosition(bookmarkCategoryId, i); + final BookmarkInfo bookmarkInfo = new BookmarkInfo(bookmarkCategoryId, bookmarkId); + + final Row.Builder itemBuilder = new Row.Builder(); + itemBuilder.setTitle(bookmarkInfo.getName()); + if (!bookmarkInfo.getAddress().isEmpty()) + itemBuilder.addText(bookmarkInfo.getAddress()); + final CharSequence description = getDescription(bookmarkInfo); + if (description.length() != 0) + itemBuilder.addText(description); + final Drawable icon = Graphics.drawCircleAndImage(bookmarkInfo.getIcon().argb(), + R.dimen.track_circle_size, + bookmarkInfo.getIcon().getResId(), + R.dimen.bookmark_icon_size, + getCarContext()); + itemBuilder.setImage(new CarIcon.Builder(IconCompat.createWithBitmap(Graphics.drawableToBitmap(icon))).build()); + itemBuilder.setOnClickListener(() -> BookmarkManager.INSTANCE.showBookmarkOnMap(bookmarkId)); + builder.addItem(itemBuilder.build()); + } + return builder.build(); + } + + @NonNull + private CharSequence getDescription(final BookmarkInfo bookmark) + { + final SpannableStringBuilder result = new SpannableStringBuilder(" "); + final Location loc = LocationHelper.from(getCarContext()).getSavedLocation(); + if (loc != null) + { + final Distance distance = bookmark.getDistance(loc.getLatitude(), loc.getLongitude(), 0.0); + result.setSpan(DistanceSpan.create(RoutingHelpers.createDistance(distance)), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + result.setSpan(ForegroundCarColorSpan.create(Colors.DISTANCE), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + + if (loc != null && !bookmark.getFeatureType().isEmpty()) + { + result.append(" • "); + result.append(bookmark.getFeatureType()); + } + + return result; + } + + @NonNull + private static List getBookmarks() + { + final List bookmarkCategories = new ArrayList<>(BookmarkManager.INSTANCE.getCategories()); + + final List toRemove = new ArrayList<>(); + for (final BookmarkCategory bookmarkCategory : bookmarkCategories) + { + if (bookmarkCategory.getBookmarksCount() == 0 || !bookmarkCategory.isVisible()) + toRemove.add(bookmarkCategory); + } + bookmarkCategories.removeAll(toRemove); + + return bookmarkCategories; + } +} diff --git a/android/app/src/main/java/app/organicmaps/car/screens/MapScreen.java b/android/app/src/main/java/app/organicmaps/car/screens/MapScreen.java index 7e986540b5..efdfb266ef 100644 --- a/android/app/src/main/java/app/organicmaps/car/screens/MapScreen.java +++ b/android/app/src/main/java/app/organicmaps/car/screens/MapScreen.java @@ -16,7 +16,6 @@ import androidx.core.graphics.drawable.IconCompat; import app.organicmaps.R; import app.organicmaps.car.SurfaceRenderer; import app.organicmaps.car.screens.base.BaseMapScreen; -import app.organicmaps.car.screens.bookmarks.BookmarkCategoriesScreen; import app.organicmaps.car.screens.search.SearchScreen; import app.organicmaps.car.util.SuggestionsHelpers; import app.organicmaps.car.util.UiHelpers; @@ -128,6 +127,6 @@ public class MapScreen extends BaseMapScreen // Details in UiHelpers.createSettingsAction() if (getScreenManager().getTop() != this) return; - getScreenManager().push(new BookmarkCategoriesScreen(getCarContext(), getSurfaceRenderer())); + getScreenManager().push(new BookmarksScreen(getCarContext(), getSurfaceRenderer())); } } diff --git a/android/app/src/main/java/app/organicmaps/car/screens/PlaceScreen.java b/android/app/src/main/java/app/organicmaps/car/screens/PlaceScreen.java index 73d1bc71f8..36f8bfd1b9 100644 --- a/android/app/src/main/java/app/organicmaps/car/screens/PlaceScreen.java +++ b/android/app/src/main/java/app/organicmaps/car/screens/PlaceScreen.java @@ -214,7 +214,7 @@ public class PlaceScreen extends BaseMapScreen implements OnBackPressedCallback. final Action.Builder startRouteBuilder = new Action.Builder(); startRouteBuilder.setBackgroundColor(Colors.START_NAVIGATION); - startRouteBuilder.setFlags(Action.FLAG_DEFAULT); + startRouteBuilder.setFlags(Action.FLAG_PRIMARY); startRouteBuilder.setTitle(getCarContext().getString(R.string.p2p_start)); startRouteBuilder.setIcon(new CarIcon.Builder(IconCompat.createWithResource(getCarContext(), R.drawable.ic_follow_and_rotate)).build()); startRouteBuilder.setOnClickListener(() -> { diff --git a/android/app/src/main/java/app/organicmaps/car/screens/bookmarks/BookmarkCategoriesScreen.java b/android/app/src/main/java/app/organicmaps/car/screens/bookmarks/BookmarkCategoriesScreen.java deleted file mode 100644 index 1aee66a34f..0000000000 --- a/android/app/src/main/java/app/organicmaps/car/screens/bookmarks/BookmarkCategoriesScreen.java +++ /dev/null @@ -1,90 +0,0 @@ -package app.organicmaps.car.screens.bookmarks; - -import androidx.annotation.NonNull; -import androidx.car.app.CarContext; -import androidx.car.app.constraints.ConstraintManager; -import androidx.car.app.model.Action; -import androidx.car.app.model.Header; -import androidx.car.app.model.ItemList; -import androidx.car.app.model.Row; -import androidx.car.app.model.Template; -import androidx.car.app.navigation.model.MapTemplate; - -import app.organicmaps.R; -import app.organicmaps.bookmarks.data.BookmarkCategory; -import app.organicmaps.bookmarks.data.BookmarkManager; -import app.organicmaps.car.SurfaceRenderer; -import app.organicmaps.car.screens.base.BaseMapScreen; -import app.organicmaps.car.util.UiHelpers; - -import java.util.ArrayList; -import java.util.List; - -public class BookmarkCategoriesScreen extends BaseMapScreen -{ - private final int MAX_CATEGORIES_SIZE; - - public BookmarkCategoriesScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer) - { - super(carContext, surfaceRenderer); - final ConstraintManager constraintManager = getCarContext().getCarService(ConstraintManager.class); - MAX_CATEGORIES_SIZE = constraintManager.getContentLimit(ConstraintManager.CONTENT_LIMIT_TYPE_LIST); - } - - @NonNull - @Override - public Template onGetTemplate() - { - final MapTemplate.Builder builder = new MapTemplate.Builder(); - builder.setHeader(createHeader()); - builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer())); - builder.setItemList(createBookmarkCategoriesList()); - return builder.build(); - } - - @NonNull - private Header createHeader() - { - final Header.Builder builder = new Header.Builder(); - builder.setStartHeaderAction(Action.BACK); - builder.setTitle(getCarContext().getString(R.string.bookmarks)); - return builder.build(); - } - - @NonNull - private ItemList createBookmarkCategoriesList() - { - final List bookmarkCategories = getBookmarks(); - final int categoriesSize = Math.min(bookmarkCategories.size(), MAX_CATEGORIES_SIZE); - - final ItemList.Builder builder = new ItemList.Builder(); - for (int i = 0; i < categoriesSize; ++i) - { - final BookmarkCategory bookmarkCategory = bookmarkCategories.get(i); - - Row.Builder itemBuilder = new Row.Builder(); - itemBuilder.setTitle(bookmarkCategory.getName()); - itemBuilder.addText(bookmarkCategory.getDescription()); - itemBuilder.setOnClickListener(() -> getScreenManager().push(new BookmarksScreen(getCarContext(), getSurfaceRenderer(), bookmarkCategory))); - itemBuilder.setBrowsable(true); - builder.addItem(itemBuilder.build()); - } - return builder.build(); - } - - @NonNull - private static List getBookmarks() - { - final List bookmarkCategories = new ArrayList<>(BookmarkManager.INSTANCE.getCategories()); - - final List toRemove = new ArrayList<>(); - for (final BookmarkCategory bookmarkCategory : bookmarkCategories) - { - if (bookmarkCategory.getBookmarksCount() == 0 || !bookmarkCategory.isVisible()) - toRemove.add(bookmarkCategory); - } - bookmarkCategories.removeAll(toRemove); - - return bookmarkCategories; - } -} diff --git a/android/app/src/main/java/app/organicmaps/car/screens/bookmarks/BookmarksLoader.java b/android/app/src/main/java/app/organicmaps/car/screens/bookmarks/BookmarksLoader.java deleted file mode 100644 index 1063116d3d..0000000000 --- a/android/app/src/main/java/app/organicmaps/car/screens/bookmarks/BookmarksLoader.java +++ /dev/null @@ -1,124 +0,0 @@ -package app.organicmaps.car.screens.bookmarks; - -import android.graphics.drawable.Drawable; -import android.location.Location; -import android.text.SpannableStringBuilder; -import android.text.Spanned; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.car.app.CarContext; -import androidx.car.app.constraints.ConstraintManager; -import androidx.car.app.model.CarIcon; -import androidx.car.app.model.DistanceSpan; -import androidx.car.app.model.ForegroundCarColorSpan; -import androidx.car.app.model.ItemList; -import androidx.car.app.model.Row; -import androidx.core.graphics.drawable.IconCompat; - -import app.organicmaps.R; -import app.organicmaps.bookmarks.data.BookmarkCategory; -import app.organicmaps.bookmarks.data.BookmarkInfo; -import app.organicmaps.bookmarks.data.BookmarkManager; -import app.organicmaps.bookmarks.data.Icon; -import app.organicmaps.car.util.Colors; -import app.organicmaps.car.util.RoutingHelpers; -import app.organicmaps.location.LocationHelper; -import app.organicmaps.util.Distance; -import app.organicmaps.util.Graphics; -import app.organicmaps.util.concurrency.ThreadPool; -import app.organicmaps.util.concurrency.UiThread; - -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; - -public class BookmarksLoader -{ - public interface OnBookmarksLoaded - { - void onBookmarksLoaded(@NonNull ItemList bookmarks); - } - - // The maximum size should be equal to ConstraintManager.CONTENT_LIMIT_TYPE_LIST. - // However, having more than 50 items results in android.os.TransactionTooLargeException. - // This exception occurs because the data parcel size is too large to be transferred between services. - // The primary cause of this issue is the icons. Even though we have the maximum Icon.TYPE_ICONS.length icons, - // each row contains a unique icon, resulting in serialization of each icon. - private static final int MAX_BOOKMARKS_SIZE = 50; - - public static void load(@NonNull CarContext carContext, @NonNull BookmarkCategory bookmarkCategory, @NonNull OnBookmarksLoaded onBookmarksLoaded) - { - UiThread.run(() -> { - final ConstraintManager constraintManager = carContext.getCarService(ConstraintManager.class); - final int maxCategoriesSize = constraintManager.getContentLimit(ConstraintManager.CONTENT_LIMIT_TYPE_LIST); - final long bookmarkCategoryId = bookmarkCategory.getId(); - final int bookmarkCategoriesSize = Math.min(bookmarkCategory.getBookmarksCount(), Math.min(maxCategoriesSize, MAX_BOOKMARKS_SIZE)); - - final BookmarkInfo[] bookmarks = new BookmarkInfo[bookmarkCategoriesSize]; - for (int i = 0; i < bookmarkCategoriesSize; ++i) - { - final long id = BookmarkManager.INSTANCE.getBookmarkIdByPosition(bookmarkCategoryId, i); - bookmarks[i] = new BookmarkInfo(bookmarkCategoryId, id); - } - - ThreadPool.getWorker().submit(() -> { - final ItemList bookmarksList = createBookmarksList(carContext, bookmarks); - UiThread.run(() -> onBookmarksLoaded.onBookmarksLoaded(bookmarksList)); - }); - }); - } - - @NonNull - private static ItemList createBookmarksList(@NonNull CarContext carContext, @NonNull BookmarkInfo[] bookmarks) - { - final Location location = LocationHelper.from(carContext).getSavedLocation(); - final ItemList.Builder builder = new ItemList.Builder(); - final Map iconsCache = new HashMap<>(); - for (final BookmarkInfo bookmarkInfo : bookmarks) - { - final Row.Builder itemBuilder = new Row.Builder(); - itemBuilder.setTitle(bookmarkInfo.getName()); - if (!bookmarkInfo.getAddress().isEmpty()) - itemBuilder.addText(bookmarkInfo.getAddress()); - final CharSequence description = getDescription(bookmarkInfo, location); - if (description.length() != 0) - itemBuilder.addText(description); - final Icon icon = bookmarkInfo.getIcon(); - if (!iconsCache.containsKey(icon)) - { - final Drawable drawable = Graphics.drawCircleAndImage(icon.argb(), - R.dimen.track_circle_size, - icon.getResId(), - R.dimen.bookmark_icon_size, - carContext); - final CarIcon carIcon = new CarIcon.Builder(IconCompat.createWithBitmap(Graphics.drawableToBitmap(drawable))).build(); - iconsCache.put(icon, carIcon); - } - itemBuilder.setImage(Objects.requireNonNull(iconsCache.get(icon))); - itemBuilder.setOnClickListener(() -> BookmarkManager.INSTANCE.showBookmarkOnMap(bookmarkInfo.getBookmarkId())); - builder.addItem(itemBuilder.build()); - } - return builder.build(); - } - - @NonNull - private static CharSequence getDescription(@NonNull BookmarkInfo bookmark, @Nullable Location location) - { - final SpannableStringBuilder result = new SpannableStringBuilder(" "); - if (location != null) - { - final Distance distance = bookmark.getDistance(location.getLatitude(), location.getLongitude(), 0.0); - result.setSpan(DistanceSpan.create(RoutingHelpers.createDistance(distance)), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - result.setSpan(ForegroundCarColorSpan.create(Colors.DISTANCE), 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - - if (!bookmark.getFeatureType().isEmpty()) - { - result.append(" • "); - result.append(bookmark.getFeatureType()); - } - } - - return result; - } -} diff --git a/android/app/src/main/java/app/organicmaps/car/screens/bookmarks/BookmarksScreen.java b/android/app/src/main/java/app/organicmaps/car/screens/bookmarks/BookmarksScreen.java deleted file mode 100644 index 7a9aca331b..0000000000 --- a/android/app/src/main/java/app/organicmaps/car/screens/bookmarks/BookmarksScreen.java +++ /dev/null @@ -1,61 +0,0 @@ -package app.organicmaps.car.screens.bookmarks; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.car.app.CarContext; -import androidx.car.app.model.Action; -import androidx.car.app.model.Header; -import androidx.car.app.model.ItemList; -import androidx.car.app.model.Pane; -import androidx.car.app.model.Template; -import androidx.car.app.navigation.model.MapTemplate; - -import app.organicmaps.bookmarks.data.BookmarkCategory; -import app.organicmaps.car.SurfaceRenderer; -import app.organicmaps.car.screens.base.BaseMapScreen; -import app.organicmaps.car.util.UiHelpers; - -public class BookmarksScreen extends BaseMapScreen -{ - @NonNull - private final BookmarkCategory mBookmarkCategory; - - @Nullable - private ItemList mBookmarksList = null; - - public BookmarksScreen(@NonNull CarContext carContext, @NonNull SurfaceRenderer surfaceRenderer, @NonNull BookmarkCategory bookmarkCategory) - { - super(carContext, surfaceRenderer); - mBookmarkCategory = bookmarkCategory; - } - - @NonNull - @Override - public Template onGetTemplate() - { - final MapTemplate.Builder builder = new MapTemplate.Builder(); - - builder.setHeader(createHeader()); - builder.setMapController(UiHelpers.createMapController(getCarContext(), getSurfaceRenderer())); - if (mBookmarksList == null) - { - builder.setPane(new Pane.Builder().setLoading(true).build()); - BookmarksLoader.load(getCarContext(), mBookmarkCategory, (bookmarksList) -> { - mBookmarksList = bookmarksList; - invalidate(); - }); - } - else - builder.setItemList(mBookmarksList); - return builder.build(); - } - - @NonNull - private Header createHeader() - { - final Header.Builder builder = new Header.Builder(); - builder.setStartHeaderAction(Action.BACK); - builder.setTitle(mBookmarkCategory.getName()); - return builder.build(); - } -} diff --git a/android/app/src/main/java/app/organicmaps/search/SearchFragment.java b/android/app/src/main/java/app/organicmaps/search/SearchFragment.java index a46867492c..20a1e2d0a8 100644 --- a/android/app/src/main/java/app/organicmaps/search/SearchFragment.java +++ b/android/app/src/main/java/app/organicmaps/search/SearchFragment.java @@ -21,7 +21,7 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.ViewPager; import com.google.android.material.appbar.AppBarLayout; -import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton; +import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.tabs.TabLayout; import app.organicmaps.Framework; import app.organicmaps.MwmActivity; @@ -140,7 +140,7 @@ public class SearchFragment extends BaseMwmFragment private View mResultsFrame; private PlaceholderView mResultsPlaceholder; - private ExtendedFloatingActionButton mShowOnMapFab; + private FloatingActionButton mShowOnMapFab; @NonNull private SearchToolbarController mToolbarController; diff --git a/android/app/src/main/java/app/organicmaps/widget/menu/MyPositionButton.java b/android/app/src/main/java/app/organicmaps/widget/menu/MyPositionButton.java index 42ede08cda..817402c341 100644 --- a/android/app/src/main/java/app/organicmaps/widget/menu/MyPositionButton.java +++ b/android/app/src/main/java/app/organicmaps/widget/menu/MyPositionButton.java @@ -3,12 +3,10 @@ package app.organicmaps.widget.menu; import android.content.Context; import android.content.res.ColorStateList; import android.content.res.Resources; +import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.Drawable; import android.util.SparseArray; import android.view.View; -import android.view.animation.Animation; -import android.view.animation.LinearInterpolator; -import android.view.animation.RotateAnimation; import androidx.annotation.AttrRes; import androidx.annotation.DimenRes; @@ -63,7 +61,7 @@ public class MyPositionButton { @DrawableRes int drawableRes = switch (mode) { - case LocationState.PENDING_POSITION -> R.drawable.ic_menu_location_pending; + case LocationState.PENDING_POSITION -> ThemeUtils.getResource(context, R.attr.myPositionButtonAnimation); case LocationState.NOT_FOLLOW_NO_POSITION -> R.drawable.ic_location_off; case LocationState.NOT_FOLLOW -> R.drawable.ic_not_follow; case LocationState.FOLLOW -> R.drawable.ic_follow; @@ -79,19 +77,8 @@ public class MyPositionButton ImageViewCompat.setImageTintList(mButton, ColorStateList.valueOf(ThemeUtils.getColor(context, colorAttr))); updatePadding(mode); - if (mode == LocationState.PENDING_POSITION) - { - final RotateAnimation rotate = new RotateAnimation(0, 360, - Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); - - rotate.setDuration(1000); - rotate.setRepeatCount(Animation.INFINITE); - rotate.setInterpolator(new LinearInterpolator()); - - mButton.startAnimation(rotate); - } - else - mButton.clearAnimation(); + if (image instanceof AnimationDrawable) + ((AnimationDrawable) image).start(); } private void updatePadding(int mode) diff --git a/android/app/src/main/res/color/accent_color_selector.xml b/android/app/src/main/res/color/accent_color_selector.xml index a49cc73642..843bada1fb 100644 --- a/android/app/src/main/res/color/accent_color_selector.xml +++ b/android/app/src/main/res/color/accent_color_selector.xml @@ -3,8 +3,5 @@ - - - + diff --git a/android/app/src/main/res/color/accent_color_selector_night.xml b/android/app/src/main/res/color/accent_color_selector_night.xml index 2aa8b2cb2c..5d8eaf37c9 100644 --- a/android/app/src/main/res/color/accent_color_selector_night.xml +++ b/android/app/src/main/res/color/accent_color_selector_night.xml @@ -3,8 +3,5 @@ - - - + diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_1.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_1.webp new file mode 100644 index 0000000000..55ccc0a374 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_1.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_10.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_10.webp new file mode 100644 index 0000000000..a8b669684f Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_10.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_10_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_10_night.webp new file mode 100644 index 0000000000..ac11164316 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_10_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_11.png b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_11.png new file mode 100644 index 0000000000..092da24bfe Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_11.png differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_11_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_11_night.webp new file mode 100644 index 0000000000..8c58e95366 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_11_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_12.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_12.webp new file mode 100644 index 0000000000..d4337f9040 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_12.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_12_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_12_night.webp new file mode 100644 index 0000000000..16c1fead9d Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_12_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_13.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_13.webp new file mode 100644 index 0000000000..c2b291df52 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_13.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_13_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_13_night.webp new file mode 100644 index 0000000000..4460b4d127 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_13_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_14.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_14.webp new file mode 100644 index 0000000000..1e796b930e Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_14.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_14_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_14_night.webp new file mode 100644 index 0000000000..bba2d233d6 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_14_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_15.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_15.webp new file mode 100644 index 0000000000..c93bf41311 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_15.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_15_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_15_night.webp new file mode 100644 index 0000000000..d544f97e68 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_15_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_16.png b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_16.png new file mode 100644 index 0000000000..659ef70506 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_16.png differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_16_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_16_night.webp new file mode 100644 index 0000000000..a7e80dff57 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_16_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_17.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_17.webp new file mode 100644 index 0000000000..18eac1e2f1 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_17.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_17_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_17_night.webp new file mode 100644 index 0000000000..780edfa4c5 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_17_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_18.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_18.webp new file mode 100644 index 0000000000..d80b67c1ea Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_18.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_18_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_18_night.webp new file mode 100644 index 0000000000..a2afa3cfcb Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_18_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_19.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_19.webp new file mode 100644 index 0000000000..0dca7e312c Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_19.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_19_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_19_night.webp new file mode 100644 index 0000000000..1a027c62ea Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_19_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_1_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_1_night.webp new file mode 100644 index 0000000000..b1ad0fb95a Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_1_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_2.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_2.webp new file mode 100644 index 0000000000..a24aa8e09b Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_2.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_20.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_20.webp new file mode 100644 index 0000000000..59239d3604 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_20.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_20_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_20_night.webp new file mode 100644 index 0000000000..369675ed26 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_20_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_2_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_2_night.webp new file mode 100644 index 0000000000..14bc86713b Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_2_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_3.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_3.webp new file mode 100644 index 0000000000..7989eb8cbd Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_3.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_3_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_3_night.webp new file mode 100644 index 0000000000..107896d6ba Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_3_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_4.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_4.webp new file mode 100644 index 0000000000..7d660c4df9 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_4.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_4_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_4_night.webp new file mode 100644 index 0000000000..a16c866515 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_4_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_5.png b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_5.png new file mode 100644 index 0000000000..54cb718001 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_5.png differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_5_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_5_night.webp new file mode 100644 index 0000000000..5f5b417f4b Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_5_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_6.png b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_6.png new file mode 100644 index 0000000000..1652490259 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_6.png differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_6_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_6_night.webp new file mode 100644 index 0000000000..5476ef6714 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_6_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_7.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_7.webp new file mode 100644 index 0000000000..78fe9c75d9 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_7.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_7_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_7_night.webp new file mode 100644 index 0000000000..006c9fc602 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_7_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_8.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_8.webp new file mode 100644 index 0000000000..8b03225dc6 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_8.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_8_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_8_night.webp new file mode 100644 index 0000000000..b2dd410544 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_8_night.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_9.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_9.webp new file mode 100644 index 0000000000..36840b792e Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_9.webp differ diff --git a/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_9_night.webp b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_9_night.webp new file mode 100644 index 0000000000..dd8c50a767 Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/ic_menu_location_pending_9_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_1.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_1.webp new file mode 100644 index 0000000000..d64cb6b61d Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_1.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_10.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_10.webp new file mode 100644 index 0000000000..d502dbf90f Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_10.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_10_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_10_night.webp new file mode 100644 index 0000000000..69da06f4a9 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_10_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_11.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_11.webp new file mode 100644 index 0000000000..50203f19cf Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_11.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_11_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_11_night.webp new file mode 100644 index 0000000000..cb626ce579 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_11_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_12.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_12.webp new file mode 100644 index 0000000000..f587b78264 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_12.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_12_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_12_night.webp new file mode 100644 index 0000000000..3945367884 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_12_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_13.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_13.webp new file mode 100644 index 0000000000..f0a33b9abd Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_13.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_13_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_13_night.webp new file mode 100644 index 0000000000..0e43215af1 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_13_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_14.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_14.webp new file mode 100644 index 0000000000..c8a0b5b2d6 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_14.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_14_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_14_night.webp new file mode 100644 index 0000000000..0d76565d20 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_14_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_15.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_15.webp new file mode 100644 index 0000000000..f61a0231bd Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_15.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_15_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_15_night.webp new file mode 100644 index 0000000000..b76f7bcdb5 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_15_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_16.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_16.webp new file mode 100644 index 0000000000..9245488ba1 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_16.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_16_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_16_night.webp new file mode 100644 index 0000000000..f677dda8b8 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_16_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_17.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_17.webp new file mode 100644 index 0000000000..47b1ee4a43 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_17.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_17_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_17_night.webp new file mode 100644 index 0000000000..b9822e9921 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_17_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_18.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_18.webp new file mode 100644 index 0000000000..85beb7e558 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_18.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_18_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_18_night.webp new file mode 100644 index 0000000000..d4eb3326f0 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_18_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_19.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_19.webp new file mode 100644 index 0000000000..2ab4a55b0c Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_19.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_19_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_19_night.webp new file mode 100644 index 0000000000..fc2af2e3ae Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_19_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_1_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_1_night.webp new file mode 100644 index 0000000000..1e993608df Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_1_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_2.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_2.webp new file mode 100644 index 0000000000..bb94db6bb4 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_2.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_20.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_20.webp new file mode 100644 index 0000000000..3f7befa322 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_20.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_20_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_20_night.webp new file mode 100644 index 0000000000..f4d7329161 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_20_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_2_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_2_night.webp new file mode 100644 index 0000000000..26f929733a Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_2_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_3.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_3.webp new file mode 100644 index 0000000000..630ddc5ea1 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_3.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_3_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_3_night.webp new file mode 100644 index 0000000000..a68a15b36d Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_3_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_4.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_4.webp new file mode 100644 index 0000000000..39e948da8b Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_4.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_4_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_4_night.webp new file mode 100644 index 0000000000..048701578e Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_4_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_5.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_5.webp new file mode 100644 index 0000000000..d54dc760a6 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_5.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_5_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_5_night.webp new file mode 100644 index 0000000000..8a4f2c643a Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_5_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_6.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_6.webp new file mode 100644 index 0000000000..0a533dd55e Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_6.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_6_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_6_night.webp new file mode 100644 index 0000000000..5b6de8d7ca Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_6_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_7.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_7.webp new file mode 100644 index 0000000000..4b3c313d5c Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_7.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_7_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_7_night.webp new file mode 100644 index 0000000000..9e3391a434 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_7_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_8.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_8.webp new file mode 100644 index 0000000000..2235ef3e31 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_8.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_8_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_8_night.webp new file mode 100644 index 0000000000..3868d6b82b Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_8_night.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_9.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_9.webp new file mode 100644 index 0000000000..fc6fa339de Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_9.webp differ diff --git a/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_9_night.webp b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_9_night.webp new file mode 100644 index 0000000000..4aa95224f1 Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/ic_menu_location_pending_9_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_1.png b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_1.png new file mode 100644 index 0000000000..425f9c581f Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_1.png differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_10.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_10.webp new file mode 100644 index 0000000000..10f6e50b19 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_10.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_10_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_10_night.webp new file mode 100644 index 0000000000..652274a46f Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_10_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_11.png b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_11.png new file mode 100644 index 0000000000..7cbec9aa85 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_11.png differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_11_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_11_night.webp new file mode 100644 index 0000000000..e18c316b48 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_11_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_12.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_12.webp new file mode 100644 index 0000000000..79e5d8060b Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_12.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_12_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_12_night.webp new file mode 100644 index 0000000000..e311160555 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_12_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_13.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_13.webp new file mode 100644 index 0000000000..a64456567d Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_13.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_13_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_13_night.webp new file mode 100644 index 0000000000..403dcd0a93 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_13_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_14.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_14.webp new file mode 100644 index 0000000000..5c76eb4879 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_14.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_14_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_14_night.webp new file mode 100644 index 0000000000..52d8560327 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_14_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_15.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_15.webp new file mode 100644 index 0000000000..4db3ff4919 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_15.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_15_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_15_night.webp new file mode 100644 index 0000000000..5484a6ab48 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_15_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_16.png b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_16.png new file mode 100644 index 0000000000..84923f25b4 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_16.png differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_16_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_16_night.webp new file mode 100644 index 0000000000..20b34a6c7b Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_16_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_17.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_17.webp new file mode 100644 index 0000000000..37ae9cf47e Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_17.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_17_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_17_night.webp new file mode 100644 index 0000000000..c4a6284117 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_17_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_18.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_18.webp new file mode 100644 index 0000000000..5f77023910 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_18.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_18_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_18_night.webp new file mode 100644 index 0000000000..9c2de2900d Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_18_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_19.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_19.webp new file mode 100644 index 0000000000..a7fbbf9d2a Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_19.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_19_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_19_night.webp new file mode 100644 index 0000000000..74a44e94b9 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_19_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_1_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_1_night.webp new file mode 100644 index 0000000000..85fb3b42f2 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_1_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_2.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_2.webp new file mode 100644 index 0000000000..0c492ee8af Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_2.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_20.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_20.webp new file mode 100644 index 0000000000..2e551b551b Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_20.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_20_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_20_night.webp new file mode 100644 index 0000000000..ccfa1896bb Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_20_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_2_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_2_night.webp new file mode 100644 index 0000000000..d3688ab92d Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_2_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_3.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_3.webp new file mode 100644 index 0000000000..ad178a087c Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_3.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_3_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_3_night.webp new file mode 100644 index 0000000000..a0822c61c0 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_3_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_4.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_4.webp new file mode 100644 index 0000000000..7bdf4fcb1b Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_4.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_4_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_4_night.webp new file mode 100644 index 0000000000..8cf47f3127 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_4_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_5.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_5.webp new file mode 100644 index 0000000000..d9db0be5b3 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_5.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_5_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_5_night.webp new file mode 100644 index 0000000000..04718055ca Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_5_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_6.png b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_6.png new file mode 100644 index 0000000000..752b363b0c Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_6.png differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_6_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_6_night.webp new file mode 100644 index 0000000000..2d85b79846 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_6_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_7.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_7.webp new file mode 100644 index 0000000000..6792ea4b78 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_7.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_7_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_7_night.webp new file mode 100644 index 0000000000..eb48c0a51c Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_7_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_8.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_8.webp new file mode 100644 index 0000000000..76e563397f Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_8.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_8_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_8_night.webp new file mode 100644 index 0000000000..101ac6c18f Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_8_night.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_9.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_9.webp new file mode 100644 index 0000000000..34f9f8a6a2 Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_9.webp differ diff --git a/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_9_night.webp b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_9_night.webp new file mode 100644 index 0000000000..718d064efa Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/ic_menu_location_pending_9_night.webp differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_1.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_1.png new file mode 100644 index 0000000000..3a91826ef9 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_1.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_10.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_10.png new file mode 100644 index 0000000000..977d2da13e Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_10.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_10_night.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_10_night.png new file mode 100644 index 0000000000..6696a7dcc7 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_10_night.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_11.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_11.png new file mode 100644 index 0000000000..1f4848dbfd Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_11.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_11_night.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_11_night.png new file mode 100644 index 0000000000..eb269053b3 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_11_night.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_12.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_12.png new file mode 100644 index 0000000000..f038496309 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_12.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_12_night.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_12_night.png new file mode 100644 index 0000000000..9d6a3366dc Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_12_night.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_13.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_13.png new file mode 100644 index 0000000000..5e8f072cb9 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_13.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_13_night.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_13_night.png new file mode 100644 index 0000000000..e7547350c2 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_13_night.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_14.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_14.png new file mode 100644 index 0000000000..add219f07c Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_14.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_14_night.webp b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_14_night.webp new file mode 100644 index 0000000000..ff3ce16972 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_14_night.webp differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_15.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_15.png new file mode 100644 index 0000000000..04b694b1eb Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_15.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_15_night.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_15_night.png new file mode 100644 index 0000000000..ceca514a29 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_15_night.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_16.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_16.png new file mode 100644 index 0000000000..44fd3a5149 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_16.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_16_night.webp b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_16_night.webp new file mode 100644 index 0000000000..1ee5626943 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_16_night.webp differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_17.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_17.png new file mode 100644 index 0000000000..5d89816e76 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_17.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_17_night.webp b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_17_night.webp new file mode 100644 index 0000000000..30be23fad0 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_17_night.webp differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_18.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_18.png new file mode 100644 index 0000000000..7a2f34d4af Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_18.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_18_night.webp b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_18_night.webp new file mode 100644 index 0000000000..409ebec872 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_18_night.webp differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_19.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_19.png new file mode 100644 index 0000000000..e8ec2ebf62 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_19.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_19_night.webp b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_19_night.webp new file mode 100644 index 0000000000..89b68a188a Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_19_night.webp differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_1_night.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_1_night.png new file mode 100644 index 0000000000..7a5996bdc3 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_1_night.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_2.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_2.png new file mode 100644 index 0000000000..cc91a2d457 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_2.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_20.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_20.png new file mode 100644 index 0000000000..52e9f4b8df Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_20.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_20_night.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_20_night.png new file mode 100644 index 0000000000..331ee35fd3 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_20_night.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_2_night.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_2_night.png new file mode 100644 index 0000000000..bdc87d4d26 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_2_night.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_3.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_3.png new file mode 100644 index 0000000000..fdb89d953e Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_3.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_3_night.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_3_night.png new file mode 100644 index 0000000000..da542b0b7b Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_3_night.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_4.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_4.png new file mode 100644 index 0000000000..a747ba3b7b Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_4.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_4_night.webp b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_4_night.webp new file mode 100644 index 0000000000..629c636f41 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_4_night.webp differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_5.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_5.png new file mode 100644 index 0000000000..7ed20e8dd8 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_5.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_5_night.webp b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_5_night.webp new file mode 100644 index 0000000000..ad5c3ef845 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_5_night.webp differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_6.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_6.png new file mode 100644 index 0000000000..8977a8448e Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_6.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_6_night.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_6_night.png new file mode 100644 index 0000000000..9c1b575be9 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_6_night.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_7.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_7.png new file mode 100644 index 0000000000..6d239b35ba Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_7.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_7_night.webp b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_7_night.webp new file mode 100644 index 0000000000..2af5b6967a Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_7_night.webp differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_8.webp b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_8.webp new file mode 100644 index 0000000000..a98a28932d Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_8.webp differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_8_night.webp b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_8_night.webp new file mode 100644 index 0000000000..bb19402803 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_8_night.webp differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_9.png b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_9.png new file mode 100644 index 0000000000..ac3ff9423e Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_9.png differ diff --git a/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_9_night.webp b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_9_night.webp new file mode 100644 index 0000000000..5787c73244 Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/ic_menu_location_pending_9_night.webp differ diff --git a/android/app/src/main/res/drawable/ic_menu_location_pending.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_1.png similarity index 100% rename from android/app/src/main/res/drawable/ic_menu_location_pending.png rename to android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_1.png diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_10.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_10.png new file mode 100644 index 0000000000..9206b16951 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_10.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_10_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_10_night.png new file mode 100644 index 0000000000..357e054ffa Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_10_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_11.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_11.png new file mode 100644 index 0000000000..b38d701510 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_11.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_11_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_11_night.png new file mode 100644 index 0000000000..5fc978616f Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_11_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_12.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_12.png new file mode 100644 index 0000000000..64f2d04f68 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_12.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_12_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_12_night.png new file mode 100644 index 0000000000..2f951a149c Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_12_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_13.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_13.png new file mode 100644 index 0000000000..f5615d8d31 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_13.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_13_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_13_night.png new file mode 100644 index 0000000000..375a7bfe88 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_13_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_14.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_14.png new file mode 100644 index 0000000000..ad12076e55 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_14.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_14_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_14_night.png new file mode 100644 index 0000000000..2da9088b76 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_14_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_15.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_15.png new file mode 100644 index 0000000000..4767b435b1 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_15.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_15_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_15_night.png new file mode 100644 index 0000000000..14e9a109e1 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_15_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_16.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_16.png new file mode 100644 index 0000000000..ecb9c956f9 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_16.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_16_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_16_night.png new file mode 100644 index 0000000000..83c011e21f Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_16_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_17.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_17.png new file mode 100644 index 0000000000..359ac1b0da Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_17.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_17_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_17_night.png new file mode 100644 index 0000000000..3a951447f3 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_17_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_18.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_18.png new file mode 100644 index 0000000000..438283abae Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_18.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_18_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_18_night.png new file mode 100644 index 0000000000..c9a2cb21d1 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_18_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_19.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_19.png new file mode 100644 index 0000000000..97fc040a01 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_19.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_19_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_19_night.png new file mode 100644 index 0000000000..d607331b39 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_19_night.png differ diff --git a/android/app/src/main/res/drawable/ic_menu_location_pending_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_1_night.png similarity index 100% rename from android/app/src/main/res/drawable/ic_menu_location_pending_night.png rename to android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_1_night.png diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_2.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_2.png new file mode 100644 index 0000000000..3f9ede1127 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_2.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_20.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_20.png new file mode 100644 index 0000000000..fa4f15fdc5 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_20.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_20_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_20_night.png new file mode 100644 index 0000000000..98e694ed15 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_20_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_2_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_2_night.png new file mode 100644 index 0000000000..5606da928f Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_2_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_3.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_3.png new file mode 100644 index 0000000000..53ba58b113 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_3.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_3_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_3_night.png new file mode 100644 index 0000000000..39837d360b Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_3_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_4.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_4.png new file mode 100644 index 0000000000..90de06ede3 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_4.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_4_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_4_night.png new file mode 100644 index 0000000000..50e0e1688f Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_4_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_5.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_5.png new file mode 100644 index 0000000000..b8a7046fc2 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_5.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_5_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_5_night.png new file mode 100644 index 0000000000..0937c5093c Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_5_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_6.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_6.png new file mode 100644 index 0000000000..2c0e4290dd Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_6.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_6_night.webp b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_6_night.webp new file mode 100644 index 0000000000..befb53ed4a Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_6_night.webp differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_7.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_7.png new file mode 100644 index 0000000000..2d671190f8 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_7.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_7_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_7_night.png new file mode 100644 index 0000000000..1e35db8712 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_7_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_8.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_8.png new file mode 100644 index 0000000000..21ff200cdc Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_8.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_8_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_8_night.png new file mode 100644 index 0000000000..3db32663de Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_8_night.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_9.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_9.png new file mode 100644 index 0000000000..62982a227c Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_9.png differ diff --git a/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_9_night.png b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_9_night.png new file mode 100644 index 0000000000..3d66219043 Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/ic_menu_location_pending_9_night.png differ diff --git a/android/app/src/main/res/drawable/anim_myposition_pending.xml b/android/app/src/main/res/drawable/anim_myposition_pending.xml new file mode 100644 index 0000000000..b0bb74f572 --- /dev/null +++ b/android/app/src/main/res/drawable/anim_myposition_pending.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/anim_myposition_pending_night.xml b/android/app/src/main/res/drawable/anim_myposition_pending_night.xml new file mode 100644 index 0000000000..00552737d0 --- /dev/null +++ b/android/app/src/main/res/drawable/anim_myposition_pending_night.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/button_visibility_centre_inset.xml b/android/app/src/main/res/drawable/button_visibility_centre_inset.xml deleted file mode 100644 index 938c374006..0000000000 --- a/android/app/src/main/res/drawable/button_visibility_centre_inset.xml +++ /dev/null @@ -1,4 +0,0 @@ - - \ No newline at end of file diff --git a/android/app/src/main/res/drawable/visibility_selector.xml b/android/app/src/main/res/drawable/visibility_selector.xml deleted file mode 100644 index 8bbd9aa68f..0000000000 --- a/android/app/src/main/res/drawable/visibility_selector.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/android/app/src/main/res/layout/fragment_bookmark_list.xml b/android/app/src/main/res/layout/fragment_bookmark_list.xml index f73ee56f96..b7e2b56b4b 100644 --- a/android/app/src/main/res/layout/fragment_bookmark_list.xml +++ b/android/app/src/main/res/layout/fragment_bookmark_list.xml @@ -19,9 +19,9 @@ diff --git a/android/app/src/main/res/layout/item_bookmark_category.xml b/android/app/src/main/res/layout/item_bookmark_category.xml index bc68ef368c..972cdc56a5 100644 --- a/android/app/src/main/res/layout/item_bookmark_category.xml +++ b/android/app/src/main/res/layout/item_bookmark_category.xml @@ -4,19 +4,20 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="@dimen/height_item_edit_bookmark" - android:background="?clickableBackground"> + android:layout_height="wrap_content" + android:background="?clickableBackground" + android:gravity="center_vertical"> + android:id="@+id/checkbox" + android:layout_width="48dp" + android:layout_height="48dp" + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/margin_half_plus" + android:layout_marginEnd="0dp" + android:minWidth="@dimen/bookmark_category_checkbox_width" /> + app:tint="?secondary" /> diff --git a/android/app/src/main/res/layout/item_bookmark_create_group.xml b/android/app/src/main/res/layout/item_bookmark_create_group.xml new file mode 100644 index 0000000000..a69f6faa77 --- /dev/null +++ b/android/app/src/main/res/layout/item_bookmark_create_group.xml @@ -0,0 +1,30 @@ + + + + + diff --git a/android/app/src/main/res/layout/item_bookmark_export.xml b/android/app/src/main/res/layout/item_bookmark_export.xml new file mode 100644 index 0000000000..627accc114 --- /dev/null +++ b/android/app/src/main/res/layout/item_bookmark_export.xml @@ -0,0 +1,30 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/layout/item_bookmark_button.xml b/android/app/src/main/res/layout/item_bookmark_import.xml similarity index 68% rename from android/app/src/main/res/layout/item_bookmark_button.xml rename to android/app/src/main/res/layout/item_bookmark_import.xml index c2089ed6a6..b301e7fb2b 100644 --- a/android/app/src/main/res/layout/item_bookmark_button.xml +++ b/android/app/src/main/res/layout/item_bookmark_import.xml @@ -2,27 +2,28 @@ + android:paddingStart="@dimen/margin_base" + android:paddingEnd="@dimen/margin_base" + android:paddingBottom="@dimen/margin_half_plus" + android:paddingTop="@dimen/margin_half_plus"> diff --git a/android/app/src/main/res/layout/map_buttons_layout_planning.xml b/android/app/src/main/res/layout/map_buttons_layout_planning.xml index 9549e63416..4738b13e3c 100644 --- a/android/app/src/main/res/layout/map_buttons_layout_planning.xml +++ b/android/app/src/main/res/layout/map_buttons_layout_planning.xml @@ -60,7 +60,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintBottom_toBottomOf="parent" /> \ No newline at end of file diff --git a/android/app/src/main/res/layout/show_on_map_fab.xml b/android/app/src/main/res/layout/show_on_map_fab.xml index 2d1e27803f..ef5fc508ec 100644 --- a/android/app/src/main/res/layout/show_on_map_fab.xml +++ b/android/app/src/main/res/layout/show_on_map_fab.xml @@ -1,14 +1,13 @@ - + app:fabSize="normal"/> diff --git a/android/app/src/main/res/values-ar/strings.xml b/android/app/src/main/res/values-ar/strings.xml index d5e5a5eab2..a7440f4e6b 100644 --- a/android/app/src/main/res/values-ar/strings.xml +++ b/android/app/src/main/res/values-ar/strings.xml @@ -222,6 +222,10 @@ عرض على الشاشة الوضع الليلي + + فاتح + + داكن تعطيل diff --git a/android/app/src/main/res/values-az/strings.xml b/android/app/src/main/res/values-az/strings.xml index 6a16bbd6ab..f3a15e0527 100644 --- a/android/app/src/main/res/values-az/strings.xml +++ b/android/app/src/main/res/values-az/strings.xml @@ -221,6 +221,10 @@ Xəritədə göstər Gecə rejimi + + Parlaq + + Tünd Bağlı diff --git a/android/app/src/main/res/values-be/strings.xml b/android/app/src/main/res/values-be/strings.xml index 699eb84873..7434cd99f6 100644 --- a/android/app/src/main/res/values-be/strings.xml +++ b/android/app/src/main/res/values-be/strings.xml @@ -220,6 +220,10 @@ Паказаць на мапе Начны рэжым + + Светлы + + Цемны Выключаны diff --git a/android/app/src/main/res/values-bg/strings.xml b/android/app/src/main/res/values-bg/strings.xml index 8b8067f62e..dc1608c78a 100644 --- a/android/app/src/main/res/values-bg/strings.xml +++ b/android/app/src/main/res/values-bg/strings.xml @@ -209,6 +209,10 @@ Показване на картата Нощен режим + + Светъл + + Тъмен Изключен diff --git a/android/app/src/main/res/values-ca/strings.xml b/android/app/src/main/res/values-ca/strings.xml index ac43f909a6..91435185c6 100644 --- a/android/app/src/main/res/values-ca/strings.xml +++ b/android/app/src/main/res/values-ca/strings.xml @@ -213,6 +213,10 @@ Mostra\'ls al mapa Mode nocturn + + Clar + + Fosc Desactivat diff --git a/android/app/src/main/res/values-cs/strings.xml b/android/app/src/main/res/values-cs/strings.xml index 964d60ffe5..f45887df1a 100644 --- a/android/app/src/main/res/values-cs/strings.xml +++ b/android/app/src/main/res/values-cs/strings.xml @@ -206,6 +206,10 @@ Zobrazit na obrazovce Noční režim + + Světlý + + Tmavý Vypnuto diff --git a/android/app/src/main/res/values-da/strings.xml b/android/app/src/main/res/values-da/strings.xml index 0ba0e41f07..275758c878 100644 --- a/android/app/src/main/res/values-da/strings.xml +++ b/android/app/src/main/res/values-da/strings.xml @@ -202,6 +202,10 @@ Vis på skærmen Nattilstand + + Lys + + Mørk Fra diff --git a/android/app/src/main/res/values-de/strings.xml b/android/app/src/main/res/values-de/strings.xml index 80a14e6b41..e41cda01bc 100644 --- a/android/app/src/main/res/values-de/strings.xml +++ b/android/app/src/main/res/values-de/strings.xml @@ -219,6 +219,10 @@ Auf dem Bildschirm anzeigen Nachtmodus + + Hell + + Dunkel Aus diff --git a/android/app/src/main/res/values-el/strings.xml b/android/app/src/main/res/values-el/strings.xml index 310d8b7f52..cfafee5136 100644 --- a/android/app/src/main/res/values-el/strings.xml +++ b/android/app/src/main/res/values-el/strings.xml @@ -203,6 +203,10 @@ Εμφάνιση στο χάρτη Νυχτερινή λειτουργία + + Ανοιχτόχρωμη + + Σκουρόχρωμη Απενεργ. diff --git a/android/app/src/main/res/values-es/strings.xml b/android/app/src/main/res/values-es/strings.xml index d40e674908..404eca08ee 100644 --- a/android/app/src/main/res/values-es/strings.xml +++ b/android/app/src/main/res/values-es/strings.xml @@ -219,6 +219,10 @@ Visualización en la pantalla Modo nocturno + + Claro + + Oscuro Desactivado diff --git a/android/app/src/main/res/values-et/strings.xml b/android/app/src/main/res/values-et/strings.xml index bbc99b03a1..f86fe18aec 100644 --- a/android/app/src/main/res/values-et/strings.xml +++ b/android/app/src/main/res/values-et/strings.xml @@ -213,6 +213,10 @@ Kuva kaardil Öörežiim + + Valgus + + Tume Väljas diff --git a/android/app/src/main/res/values-eu/strings.xml b/android/app/src/main/res/values-eu/strings.xml index e6dcd861d0..e05380d889 100644 --- a/android/app/src/main/res/values-eu/strings.xml +++ b/android/app/src/main/res/values-eu/strings.xml @@ -219,6 +219,10 @@ Erakutsi mapan Gaueko modua + + Argi + + Iluna Desgaituta diff --git a/android/app/src/main/res/values-fa/strings.xml b/android/app/src/main/res/values-fa/strings.xml index 0b49f7ceb6..c3cfbcf734 100644 --- a/android/app/src/main/res/values-fa/strings.xml +++ b/android/app/src/main/res/values-fa/strings.xml @@ -195,6 +195,10 @@ نمایش بر روی نقشه حالت شب + + نور + + تاریک خاموش diff --git a/android/app/src/main/res/values-fi/strings.xml b/android/app/src/main/res/values-fi/strings.xml index 5e00146dae..dd16395961 100644 --- a/android/app/src/main/res/values-fi/strings.xml +++ b/android/app/src/main/res/values-fi/strings.xml @@ -221,6 +221,10 @@ Näytä kartalla Yötila + + Vaalea + + Tumma Pois päältä diff --git a/android/app/src/main/res/values-fr/strings.xml b/android/app/src/main/res/values-fr/strings.xml index 5a919f879f..bca5f30bea 100644 --- a/android/app/src/main/res/values-fr/strings.xml +++ b/android/app/src/main/res/values-fr/strings.xml @@ -221,6 +221,10 @@ Afficher à l\'écran Mode nuit + + Claire + + Sombre Désactivé diff --git a/android/app/src/main/res/values-hi/strings.xml b/android/app/src/main/res/values-hi/strings.xml index 0114f5ffd8..c1ee406b29 100644 --- a/android/app/src/main/res/values-hi/strings.xml +++ b/android/app/src/main/res/values-hi/strings.xml @@ -220,6 +220,10 @@ मानचित्र पर बटन प्रदर्शित करें रात का मोड + + हल्का + + गहरा बंद @@ -288,15 +292,10 @@ डाउनलोड सभी डाउनलोड - डाउनलोड हो रहा है: Google Play स्थान सेवाएँ ब्लूटूथ, वाईफाई या मोबाइल नेटवर्क का उपयोग करके तुरंत अपना अनुमानित स्थान निर्धारित करें - - अपने मार्ग के सभी मानचित्र डाउनलोड करें - - मार्ग बनाने के लिए, हमें आपके स्थान से आपके गंतव्य तक के सभी मानचित्रों को डाउनलोड और अपडेट करना होगा। कृपया स्थान सेवाएँ सक्षम करें सहेजें @@ -304,22 +303,8 @@ मार्ग का अनुसरण करते समय कृपया ध्यान रखें: - — सड़क की स्थिति, यातायात कानून और सड़क संकेत हमेशा नेविगेशन संकेतों पर प्राथमिकता देते हैं; - — नक्शा गलत हो सकता है, और सुझाया गया मार्ग हमेशा गंतव्य तक पहुंचने का सबसे इष्टतम तरीका नहीं हो सकता है; - — सुझाए गए मार्गों को केवल अनुशंसाओं के रूप में समझा जाना चाहिए; - — सीमावर्ती क्षेत्रों में मार्गों के साथ सावधानी बरतें: हमारे ऐप द्वारा बनाए गए मार्ग कभी-कभी अनधिकृत स्थानों पर देश की सीमाओं को पार कर सकते हैं। - कृपया सड़कों पर सतर्क और सुरक्षित रहें! - मार्ग बनाने में असमर्थ. वर्तमान जीपीएस निर्देशांक की पहचान नहीं की जा सकी. - वर्तमान जीपीएस निर्देशांक का पता लगाने में असमर्थ. मार्ग की गणना करने के लिए स्थान सेवाएँ सक्षम करें। - मार्ग ढूंढने में असमर्थ - मार्ग बनाने में असमर्थ. - रूट नहीं बनाया गया. प्रारंभिक बिंदु का पता लगाने में असमर्थ. - रूट नहीं बनाया गया. गंतव्य का पता लगाने में असमर्थ. - सिस्टम त्रुटि - एप्लिकेशन त्रुटि के कारण मार्ग बनाने में असमर्थ. - मार्ग खोजना और बनाना शुरू करने के लिए, कृपया मानचित्र डाउनलोड करें। इसके बाद आपको इंटरनेट कनेक्शन की जरूरत नहीं पड़ेगी. छिपाना श्रेणियाँ @@ -343,10 +328,8 @@ मानचित्र स्वतः डाउनलोड करें दैनिक - %s में खुल जाएगा %s में बंद हो जाता है बंद - व्यावसायिक घंटे संपादित करें आपके पास अभी तक OpenStreetMap खाता नहीं है? Openstreetmap पर पंजीकरण करें स्थान संपादित करें @@ -359,14 +342,12 @@ उपयोगकर्ता नाम फोन नंबर डालें मंजिल - मार्ग बनाने के लिए, आपको सभी मानचित्र अपडेट करने होंगे और फिर मार्ग की दोबारा योजना बनानी होगी। मानचित्र ढूंढें लॉगिन त्रुटि ऑब्जेक्ट का सही स्थान चुनने के लिए मानचित्र को खींचें। जोड़ना स्थान का नाम वर्ग - व्यवसाय जोड़ें समुदाय-निर्मित OpenStreetMap डेटा %s तक। OpenStreetMap.org पर मानचित्र को संपादित और अपडेट करने के तरीके के बारे में और जानें अपने परिवर्तनों को दुनिया के सामने प्रकाशित करने के लिए openingstreetmap.org पर लॉग इन करें। @@ -394,23 +375,14 @@ मिटाना जगह मौजूद नहीं है OpenStreetMap में स्थान जोड़ें - - मुझे स्वीकार है - - मैंने गिराया - हमेशा उपयोग करें मोबाइल इंटरनेट मानचित्र अद्यतन अधिसूचनाओं और संपादन अपलोड करने के लिए मोबाइल इंटरनेट आवश्यक है। - कभी उपयोग न करो - हमेशा पूछिये मानचित्र लेबल के लिए आकार बढ़ाएँ लॉगिंग करने देना कुछ भाषाओं के लिए, आपको ऐप स्टोर (Google Play, Galaxy Store, App Gallery, FDroid) से एक स्पीच सिंथेसाइज़र या एक अतिरिक्त भाषा पैक इंस्टॉल करना होगा।\nअपने डिवाइस की सेटिंग्स खोलें → भाषा और इनपुट → स्पीच → टेक्स्ट टू स्पीच आउटपुट.\nयहां आप वाक् संश्लेषण के लिए सेटिंग्स प्रबंधित कर सकते हैं (उदाहरण के लिए, ऑफ़लाइन उपयोग के लिए भाषा पैक डाउनलोड करें) और एक अन्य टेक्स्ट-टू-स्पीच इंजन का चयन कर सकते हैं। अधिक जानकारी के लिए कृपया इस गाइड को देखें। लैटिन में लिप्यंतरण - मार्ग की योजना बनाने के लिए एक प्रारंभिक बिंदु जोड़ें - मार्ग की योजना बनाने के लिए एक गंतव्य जोड़ें गंतव्य जोड़ें सूचियों @@ -420,7 +392,6 @@ बुकमार्क और सेटिंग्स आयात करें एप्लिकेशन त्रुटि के कारण साझा करने में असमर्थ - साझा करने में त्रुटि नाम खाली नहीं हो सकता कृपया सूची का नाम दर्ज करें नई सूची @@ -429,10 +400,6 @@ कृपया प्रतीक्षा करें… फ़ोन नंबर OpenStreetMap प्रोफ़ाइल - - %d वस्तु - %d वस्तुएं - %d स्थान @@ -446,9 +413,6 @@ गति कैमरा बिजली की बचत अवस्थाt कुछ कार्यक्षमता की कीमत पर बिजली के उपयोग को कम करने का प्रयास करें। - कभी नहीं - जब बैटरी कम हो - हमेशा सहायता संवाद में \"बग की रिपोर्ट करें\" का उपयोग करके हमें अपनी समस्या के बारे में विस्तृत डायग्नोस्टिक लॉग रिकॉर्ड करने और मैन्युअल रूप से भेजने के लिए इस विकल्प को अस्थायी रूप से सक्षम करें। लॉग में स्थान की जानकारी शामिल हो सकती है. रूटिंग विकल्प @@ -458,8 +422,6 @@ नौकाओं से बचें फ़्रीवेज़ से बचें - मार्ग की गणना करने में असमर्थ - कोई मार्ग नहीं मिल सका. यह आपके रूटिंग विकल्पों या अधूरे OpenStreetMap डेटा के कारण हो सकता है। कृपया अपने रूटिंग विकल्प बदलें और पुनः प्रयास करें। बचने के लिए सड़कों को परिभाषित करें हॉं @@ -479,8 +441,6 @@ कृपया सबवे स्टेशन के निकट प्रारंभ या समाप्ति बिंदु चुनें रूप रेखा लाइंस विश्व मानचित्र डाउनलोड करें - - डिस्क त्रुटि स्क्रीन ऑन करो सक्षम होने पर,मानचित्ररप्रदर्शिततकरतेतेसमययस्क्रीननहमेशााचालूलूरहेगी।। @@ -638,7 +598,6 @@ रीसाइक्लिंग कंटेनर रीसाइक्लिंग कंटेनर रेस्तरां - सेनेटरी डंप स्टेशन विद्यालय आश्रय फुहारा @@ -666,7 +625,6 @@ कूडेदान कचरे के डिब्बे कचरा स्थानांतरण स्टेशन - पानी की टंकी पुनः भरने का स्थान शहर की दीवार दीवार स्वदेशी भूमि @@ -678,20 +636,13 @@ रेलवे स्टेशन मालगोदाम कब्र - शहर की मक्खियां पालनेवाला लोहार - शराब की भठ्ठी बढ़ई - बिजली मिस्त्री - इलेक्ट्रॉनिक्स मरम्मत हस्तशिल्प तापन, संवातन तथा वातानुकूलन फोटोग्राफर - कैमरे की दुकान - नलसाज आरा मिल - जूते की मरम्मत दर्जी अफ्रीकी व्यंजन अमेरिकी व्यंजन @@ -782,14 +733,6 @@ प्रवेश द्वार प्रयोगशाला भौतिक चिकित्सा - वैकल्पिक चिकित्सा - ऑडियोलॉजिस्ट - रक्तदान केंद्र - दृष्टिमापी - पोडियाट्रिस्ट - मनोचिकित्सक - नमूना संग्रह केंद्र - वाक उपचार राजमार्ग @@ -826,7 +769,6 @@ प्राथमिक सड़क प्राथमिक सड़क दौड़ का मैदान - बाकी क्षेत्र सड़क माध्यमिक सड़क माध्यमिक सड़क @@ -897,32 +839,22 @@ मिश्रित वन घास अवकाश - श्वान पार्क - फिटनेस सेंटर - फिटनेस स्टेशन बाग बाग हैकर्सस्पेस - मरीना संरक्षित प्रकृतिक्षेत्र उद्यान उद्यान उद्यान उद्यान - पिकनिक मेज - खेल का मैदान - सॉना योग क्रीडांगन - वाटर पार्क तरंगरोध स्तूप धुआँकश प्रकाशस्तम्भ बुर्ज अपशिष्ट जलोपचार - पानी का नल - पानी का टावर कुआँ पवनचक्की दर्रा @@ -955,13 +887,7 @@ आर्द्रभूमि कच्छभूमि कार्यालय - कंपनी कार्यालय - संपत्ति एजेंट - सरकारी कार्यालय - बीमा कार्यालय - वकील अशासकीय संस्था - दूरसंचार कंपनी शहर राजधानी शहर @@ -1053,7 +979,6 @@ फल-सब्ज़ियों की दुकान किराने की दुकान नाई - लौह वस्तुओं की दुकान स्वस्थ भोजन की दुकान घरेलू सामान की दुकान ज्वैलरी @@ -1062,7 +987,6 @@ धोबी की दुकान शॉपिंग मॉल मालिश घर - सेल फोन की दुकान हवलदार मोटरसाइकिल की दुकान रिकॉर्ड की दुकान @@ -1072,7 +996,6 @@ बाहरी उपकरण पेस्ट्री का दुकान महाजन - पालतू जानवर की दुकान छायाचित्रण की दुकान समुद्री भोजन की दुकान पुराने सामान की दुकान @@ -1138,23 +1061,14 @@ मैदानी हॉकी बैडमिंटन पर्यटन - अवकाश अपार्टमेंट कलाकृति प्रतिमा पर्यटन स्थल पर्यटन स्थल पर्यटन स्थल - कारवां स्थल - षाले - आर्ट गैलरी - अतिथि गृह शयनागार होटल - पर्यटक सूचना - मोटेल संग्रहालय - पिकनिक स्थल - दृष्टिकोण चिड़ियाघर नहर नहर diff --git a/android/app/src/main/res/values-hu/strings.xml b/android/app/src/main/res/values-hu/strings.xml index ffa4936829..a57288c9b2 100644 --- a/android/app/src/main/res/values-hu/strings.xml +++ b/android/app/src/main/res/values-hu/strings.xml @@ -216,6 +216,10 @@ Mutassa a kijelzőn Éjszakai üzemmód + + Világos + + Sötét Ki diff --git a/android/app/src/main/res/values-in/strings.xml b/android/app/src/main/res/values-in/strings.xml index 9745548d07..880afd2bbb 100644 --- a/android/app/src/main/res/values-in/strings.xml +++ b/android/app/src/main/res/values-in/strings.xml @@ -204,6 +204,10 @@ Tampilkan pada layar Mode Malam + + Terang + + Gelap Tidak Aktif diff --git a/android/app/src/main/res/values-it/strings.xml b/android/app/src/main/res/values-it/strings.xml index 2a08b29bec..620803e58c 100644 --- a/android/app/src/main/res/values-it/strings.xml +++ b/android/app/src/main/res/values-it/strings.xml @@ -207,6 +207,10 @@ Mostra sulla mappa Modalità notturna + + Chiaro + + Scuro Spento diff --git a/android/app/src/main/res/values-iw/strings.xml b/android/app/src/main/res/values-iw/strings.xml index f4dcfc9a1b..77071793c1 100644 --- a/android/app/src/main/res/values-iw/strings.xml +++ b/android/app/src/main/res/values-iw/strings.xml @@ -217,6 +217,10 @@ הצג על המסך מצב לילה + + בהיר + + כהה כבוי diff --git a/android/app/src/main/res/values-ja/strings.xml b/android/app/src/main/res/values-ja/strings.xml index 6c4d548d92..5a29b6a933 100644 --- a/android/app/src/main/res/values-ja/strings.xml +++ b/android/app/src/main/res/values-ja/strings.xml @@ -219,6 +219,10 @@ 画面上に表示 夜間モード + + ライト + + ダーク オフ diff --git a/android/app/src/main/res/values-ko/strings.xml b/android/app/src/main/res/values-ko/strings.xml index 548dcbbd95..5f59e71cfe 100644 --- a/android/app/src/main/res/values-ko/strings.xml +++ b/android/app/src/main/res/values-ko/strings.xml @@ -202,6 +202,10 @@ 화면에 표시 나이트 모드 + + 라이트 + + 다크 끄기 diff --git a/android/app/src/main/res/values-mr/strings.xml b/android/app/src/main/res/values-mr/strings.xml index 5767296193..40e4aa1d33 100644 --- a/android/app/src/main/res/values-mr/strings.xml +++ b/android/app/src/main/res/values-mr/strings.xml @@ -197,6 +197,10 @@ नकाशावर दाखवा रात्र मोड + + प्रकाश + + अंधार बंद diff --git a/android/app/src/main/res/values-nb/strings.xml b/android/app/src/main/res/values-nb/strings.xml index c13f01f2ab..248ba4c02b 100644 --- a/android/app/src/main/res/values-nb/strings.xml +++ b/android/app/src/main/res/values-nb/strings.xml @@ -221,6 +221,10 @@ Vis på skjermen Nattmodus + + Lys + + Mørke Av diff --git a/android/app/src/main/res/values-nl/strings.xml b/android/app/src/main/res/values-nl/strings.xml index 0701a76dbf..ec7b5e872d 100644 --- a/android/app/src/main/res/values-nl/strings.xml +++ b/android/app/src/main/res/values-nl/strings.xml @@ -219,6 +219,10 @@ Weergave op het scherm Nachtmodus + + Licht + + Donker Uit diff --git a/android/app/src/main/res/values-pl/strings.xml b/android/app/src/main/res/values-pl/strings.xml index 26fb2a968b..3de685f702 100644 --- a/android/app/src/main/res/values-pl/strings.xml +++ b/android/app/src/main/res/values-pl/strings.xml @@ -219,6 +219,10 @@ Wyświetla na ekranie Tryb nocny + + Jasny + + Ciemny Wyłączony diff --git a/android/app/src/main/res/values-pt-rBR/strings.xml b/android/app/src/main/res/values-pt-rBR/strings.xml index 27ba73d19c..7396809a15 100644 --- a/android/app/src/main/res/values-pt-rBR/strings.xml +++ b/android/app/src/main/res/values-pt-rBR/strings.xml @@ -215,6 +215,10 @@ Mostrar na tela Modo noturno + + Clara + + Escura Desligado diff --git a/android/app/src/main/res/values-pt/strings.xml b/android/app/src/main/res/values-pt/strings.xml index b0a457ca07..b30a2aa423 100644 --- a/android/app/src/main/res/values-pt/strings.xml +++ b/android/app/src/main/res/values-pt/strings.xml @@ -207,6 +207,10 @@ Mostrar no ecrã Modo noturno + + Tons claros + + Tons escuros Desligado diff --git a/android/app/src/main/res/values-ro/strings.xml b/android/app/src/main/res/values-ro/strings.xml index 97d5e317b0..0ae2f532d1 100644 --- a/android/app/src/main/res/values-ro/strings.xml +++ b/android/app/src/main/res/values-ro/strings.xml @@ -207,6 +207,10 @@ Arată pe hartă Mod nocturn + + Luminos + + Întunecat Oprit diff --git a/android/app/src/main/res/values-ru/strings.xml b/android/app/src/main/res/values-ru/strings.xml index 3af1abc6c9..b75cc00394 100644 --- a/android/app/src/main/res/values-ru/strings.xml +++ b/android/app/src/main/res/values-ru/strings.xml @@ -222,6 +222,10 @@ Показать на карте Ночной режим + + Светлое + + Темное Выключен diff --git a/android/app/src/main/res/values-sk/strings.xml b/android/app/src/main/res/values-sk/strings.xml index a865b05e7b..b85962af8d 100644 --- a/android/app/src/main/res/values-sk/strings.xml +++ b/android/app/src/main/res/values-sk/strings.xml @@ -219,6 +219,10 @@ Zobraziť na obrazovke Nočný režim + + Svetlý + + Tmavý Vypnúť diff --git a/android/app/src/main/res/values-sv/strings.xml b/android/app/src/main/res/values-sv/strings.xml index dc52138fbd..b2b71c48f6 100644 --- a/android/app/src/main/res/values-sv/strings.xml +++ b/android/app/src/main/res/values-sv/strings.xml @@ -200,6 +200,10 @@ Visa på skärmen Nattläge + + Ljust + + Mörkt Av diff --git a/android/app/src/main/res/values-th/strings.xml b/android/app/src/main/res/values-th/strings.xml index 3ae1ea9fb6..72ac43aa84 100644 --- a/android/app/src/main/res/values-th/strings.xml +++ b/android/app/src/main/res/values-th/strings.xml @@ -204,6 +204,10 @@ แสดงบนหน้าจอ โหมดกลางคืน + + สว่าง + + มืด ปิด diff --git a/android/app/src/main/res/values-tr/strings.xml b/android/app/src/main/res/values-tr/strings.xml index 8a39aab322..16411e481f 100644 --- a/android/app/src/main/res/values-tr/strings.xml +++ b/android/app/src/main/res/values-tr/strings.xml @@ -221,6 +221,10 @@ Haritada göster Gece Modu + + Açık + + Koyu Kapalı diff --git a/android/app/src/main/res/values-uk/strings.xml b/android/app/src/main/res/values-uk/strings.xml index f99f4cd947..f588f98f7a 100644 --- a/android/app/src/main/res/values-uk/strings.xml +++ b/android/app/src/main/res/values-uk/strings.xml @@ -222,6 +222,10 @@ Відображення на екрані Нічний режим + + Світлий + + Темний Вимкнуто diff --git a/android/app/src/main/res/values-vi/strings.xml b/android/app/src/main/res/values-vi/strings.xml index 0328ba9461..3627a35690 100644 --- a/android/app/src/main/res/values-vi/strings.xml +++ b/android/app/src/main/res/values-vi/strings.xml @@ -202,6 +202,10 @@ Hiển thị trên màn hình Chế độ ban đêm + + Sáng + + Tối Tắt diff --git a/android/app/src/main/res/values-zh-rTW/strings.xml b/android/app/src/main/res/values-zh-rTW/strings.xml index eef01fe776..4823d4ff89 100644 --- a/android/app/src/main/res/values-zh-rTW/strings.xml +++ b/android/app/src/main/res/values-zh-rTW/strings.xml @@ -207,6 +207,10 @@ 在螢幕上顯示 夜間模式 + + 淺色 + + 深色 關閉 diff --git a/android/app/src/main/res/values-zh/strings.xml b/android/app/src/main/res/values-zh/strings.xml index 8971588132..3283de465a 100644 --- a/android/app/src/main/res/values-zh/strings.xml +++ b/android/app/src/main/res/values-zh/strings.xml @@ -206,6 +206,10 @@ 在屏幕上显示 夜间模式 + + 浅色 + + 深色 关闭 diff --git a/android/app/src/main/res/values/strings-tts.xml b/android/app/src/main/res/values/strings-tts.xml index 6436c34d52..26d9a6ac42 100644 --- a/android/app/src/main/res/values/strings-tts.xml +++ b/android/app/src/main/res/values/strings-tts.xml @@ -46,7 +46,6 @@ el be ru - sr uk ar fa @@ -89,7 +88,6 @@ Ελληνικά Беларуская Русский - Српски Українська العربية فارسی diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 621026037a..db48491553 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -222,6 +222,10 @@ Display on the map Night Mode + + Light + + Dark Off diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index 87667859a4..381e3bd4d2 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -345,27 +345,4 @@ false - - diff --git a/android/app/src/main/res/values/themes-base.xml b/android/app/src/main/res/values/themes-base.xml index deb612c1a5..667d553d1f 100644 --- a/android/app/src/main/res/values/themes-base.xml +++ b/android/app/src/main/res/values/themes-base.xml @@ -67,7 +67,7 @@ @color/bg_menu - @drawable/ic_menu_location_pending + @drawable/anim_myposition_pending @drawable/anim_spinner_pending @drawable/anim_traffic_loading @@ -201,7 +201,7 @@ @color/bg_menu_night - @drawable/ic_menu_location_pending_night + @drawable/anim_myposition_pending_night @drawable/anim_spinner_pending @drawable/anim_traffic_loading_night diff --git a/data/categories.txt b/data/categories.txt index 04ca785995..ec1ee25a58 100644 --- a/data/categories.txt +++ b/data/categories.txt @@ -1313,7 +1313,6 @@ nl:4Mobiele telefoonwinkel|elektronicawinkel fi:Elektroniikkakauppa fr:Magasin de téléphonie|magasin d'électronique de:4Handyladen|Eletronikgeschäft|Mobiltelefone -hi:2सेल फोन की दुकान hu:Mobiltelefon üzlet|elektronikai szaküzlet id:Toko telepon it:Negozio di telefonia mobile|negozio di elettronica|Negozio di cellulari @@ -2933,7 +2932,6 @@ nl:4Uitzicht|panorama fi:3Näköalatasanne fr:4Belvédère|4point de vue|4panorama de:3Panorama|Ausblick|4Aussichtspunkt -hi:4दृष्टिकोण hu:4Kilátó|Panoráma id:Titik pandang it:3Panorama|Punto panoramico @@ -2971,7 +2969,6 @@ nl:4Toeristische informatie|3VVV|4informatie fi:3Turisti-informaatio fr:4Informations touristiques|4informations de:4Tourist-Information|Information|7Touristeninformation -hi:4पर्यटक सूचना hu:4Turistainformáció|4információ id:3Informasi turis it:4Informazione @@ -3009,7 +3006,7 @@ nl:3Picknickplaats|picknickweide|picknicktafel fi:3Piknikpaikat fr:3Terrain de pique-nique|3aire de pique-nique de:3Picknickplatz|5Grillplatz -hi:4बार्बीक्यू|4पिकनिक स्थल|4पिकनिक मेज +hi:4बार्बीक्यू hu:3Piknikezőhely id:3Lokasi piknik it:3Picnic @@ -4267,7 +4264,7 @@ cs:3Psí hřiště es:Parque para perros et:3Koerte ala|koerte park fr:Parc canin -hi:श्वान पार्क +hi:4उद्यान nl:4Hondenpark|Hondengebied ko:개 놀이 공원|도그 파크 pl:Park dla psów|Wyprowadzanie psów @@ -5303,7 +5300,6 @@ fa:طب جایگزین fi:Vaihtoehtoinen lääketiede fr:Médecine alternative he:רפואה אלטרנטיבית -hi:वैकल्पिक चिकित्सा hu:Alternatív gyógyászat id:Pengobatan alternatif it:Medicina alternativa @@ -5343,7 +5339,6 @@ fa:شنوایی شناس|شنوایی شناسی fi:Audiologia|Audiologi fr:Audiologie|Audiologiste he:אודיולוג|אודיולוגיה -hi:ऑडियोलॉजिस्ट hu:Audiológia|Audiológus id:Audiologi|Audiologis it:Audiologia|Audiologo @@ -5380,7 +5375,6 @@ fa:مرکز اهدای خون fi:Verenluovutuskeskus|Verenluovutus fr:Don de sang he:מרכז תרומת דם -hi:रक्तदान केंद्र hu:Véradás id:Donor darah it:Donazione di sangue @@ -5420,7 +5414,6 @@ fa:بینایی سنجی|اپتومتریست fi:Optometria|Optometristi fr:Optométrie|Optométriste he:אופטומטריה|אופטומטריסט -hi:दृष्टिमापी hu:Optometria|Optometrista id:Optometri|Ahli kacamata it:Optometria|Optometrista @@ -5460,7 +5453,6 @@ fa:پزشکی پا|متخصص پا fi:Jalkaterapia|Jalkaterapeutti fr:Podologie|Podologue he:פודיאטריה|פודיאטר -hi:पोडियाट्रिस्ट hu:Podiatria|Podiatrist id:Podiatri|Ahli penyakit kaki it:Podologia|Podologo @@ -5500,7 +5492,6 @@ fa:روان درمانی|روان درمانگر fi:Psykoterapia|Psykoterapeutti fr:Psychothérapie|Psychothérapeute he:פסיכותרפיה|פסיכותרפיסט -hi:मनोचिकित्सक hu:Pszichoterápia|Pszichoterapeuta id:Psikoterapi|Psikoterapis it:Psicoterapia|Psicoterapeuta @@ -5527,7 +5518,6 @@ zh-Hant:心理治療|心理治療師 healthcare-sample_collection en:Sample collection be:Аналізы -hi:नमूना संग्रह केंद्र ru:Анализы uk:Аналізи @@ -5547,7 +5537,6 @@ fa:گفتار درمانی|متخصص گفتار درمانی fi:Logopedia|Puheterapeutti|Logopedit fr:Logopédie|Orthophoniste he:ריפוי בדיבור|קלינאי תקשורת -hi:वाक उपचार hu:Logopédia|Logopédus id:Logopedik|Terapis bicara it:Logopedia|Logopedista @@ -7632,7 +7621,6 @@ nl:Gasthuis|B&B|bed and breakfast|hostel fi:Majatalo fr:Maison d'hôtes|chambre d'hôtes de:Gästehaus|Wohnheim|Unterkunft|Herberge -hi:3अतिथि गृह hu:Vendégház|panzió id:Wisma tamu it:Guest house|albergo|ostello|pensione|affittacamere @@ -7670,7 +7658,6 @@ nl:3Motel|hostel fi:Motelli fr:3Motel|auberge de jeunesse de:3Motel|Gasthaus|Wohnheim -hi:3मोटेल hu:3Motel|szállás id:Motel it:3Motel|albergo|ostello @@ -7855,7 +7842,6 @@ nl:Speeltuin|speelplaats fi:Leikkikenttä fr:Terrain de jeu|aire de jeu de:Spielplatz -hi:खेल का मैदान hu:Játszótér id:Taman bermain it:Campo giochi @@ -9434,7 +9420,6 @@ es:Toma de agua eu:Ura hartzea fi:Vesihana fr:Robinet d'eau|point d'eau -hi:3पानी का नल hu:Vízcsap id:Keran Air it:Rubinetto dell'acqua @@ -9825,7 +9810,6 @@ nl:4Caravan site|camping|woonwagenkamp fi:Asuntovaunupaikka|Retkeily fr:4Parc caravanier|VR|caravane|camping-car de:4Wohnmobilstellplatz|Wohnmobilpark|Wohnwagenstellplatz|Wohnwagenplatz|Campingplatz -hi:4कारवां स्थल hu:4Lakókocsihely|kemping id:Lokasi perkemahan it:Area per campeggiatori @@ -9899,7 +9883,6 @@ nl:Bedrijfskantoor|bedrijfspand fi:Yhtiön toimisto fr:Bureaux d'entreprise de:Niederlassung -hi:कंपनी कार्यालय hu:Vállalati iroda id:Kantor perusahaan it:Ufficio aziendale @@ -9936,7 +9919,6 @@ nl:Overheidskantoor|overheidspand|regeringskantoor fi:Viranomaistoimisto fr:Administration publique de:3Regierungsstelle|Amt|3Behörde|4Verwaltung -hi:4सरकारी कार्यालय hu:Kormányzati iroda id:Kantor pemerintah it:Ufficio governativo|ufficio amministrativo @@ -9974,7 +9956,6 @@ nl:4Advocatenkantoor|advocaat fi:Lakitoimisto fr:Cabinet d'avocat de:5Anwaltskanzlei|Anwaltsbüro|Anwalt|Rechtsanwalt|Jurist|Gerichtsanwalt|Rechtsbeistand|Rechtsberater|Verteidiger -hi:3वकील hu:Ügyvéd|Ügyvédi iroda id:Kantor pengacara it:Studio legale @@ -10011,7 +9992,6 @@ nl:Mobiele provider|provider fi:Matkapuhelinoperaattori fr:Opérateur mobile de:5Mobilfunkbetreiber|Mobilfunkanbieter -hi:4दूरसंचार कंपनी hu:Mobiltelefon-társaság id:Operator seluler it:Operatore di telefonia mobile @@ -10053,7 +10033,6 @@ fa:زنبوردار fi:Mehiläishoitaja fr:Apiculteur he:כוורן -hi:शहर की मक्खियां पालनेवाला hu:Méhész id:Peternak lebah it:Apicoltore @@ -10131,7 +10110,6 @@ fa:کارخانه ابجوسازی fi:Panimo fr:Brasserie artisanale|Brasseur he:מבשלה -hi:शराब की भठ्ठी hu:Sörfőzde|sör id:Toko minuman it:4Birrificio @@ -10288,7 +10266,6 @@ fa:برق کار fi:5Sähkömies fr:4Électricien he:חשמלאי -hi:4बिजली मिस्त्री hu:Villanyszerelő id:Tukang listrik it:4Elettricista @@ -10327,7 +10304,6 @@ fa:تعمیرات الکترونیک fi:Elektroniikan korjaus fr:Réparation d'appareils électroniques he:תיקון אלקטרוניקה -hi:4इलेक्ट्रॉनिक्स मरम्मत hu:Elektronikai javítás id:Perbaikan Elektronik it:Riparazioni elettroniche @@ -10718,7 +10694,6 @@ fa:لوله کش fi:Putkimies fr:Plombier he:שרברב -hi:4नलसाज hu:Vízvezeték-szerelő id:Tukang pipa it:Idraulico @@ -10797,7 +10772,6 @@ fa:کفاش fi:Suutari fr:Cordonnier he:סנדלר -hi:जूते की मरम्मत|जूते बनाने वाले hu:Cipész id:Tukang sepatu it:Calzolaio|Riparazione di calzature @@ -11349,7 +11323,6 @@ fa:فروشگاه دوربین fi:Kamerakauppa fr:Boutique d'appareils photo he:חנות מצלמות -hi:कैमरे की दुकान hu:Fényképezőgép bolt id:Toko Kamera it:Negozio di macchine fotografiche @@ -11814,7 +11787,6 @@ nl:3Fitnesscentrum|sportschool|gym|fitness|workout fi:Kuntosali fr:Centre fitness|salle de gym de:3Fitnessstudio|Fitnesscenter|Fitness|Fitnessraum|Fitnessclub|Gesundheitsclub|Training|Trainingsraum|Turnhalle -hi:4फिटनेस सेंटर hu:Edzőterem|Konditerem|Fitneszterem id:Pusat kebugaran|senam it:Centro benessere|palestra @@ -11851,7 +11823,6 @@ nl:3Sauna fi:3Sauna fr:3Sauna de:3Sauna|Schwitzbad|Schwitzhütte|Dampfbad|Dampfsauna|Saunakabine -hi:सॉना hu:3Szauna id:3Sauna it:3Sauna @@ -12573,7 +12544,6 @@ et:Kiirtee puhkepeatus eu:Atseden gunea fi:Levähdyspaikka fr:Aire de repos -hi:3बाकी क्षेत्र hu:Pihenőzóna id:Tempat istirahat it:Area di sosta @@ -12962,7 +12932,6 @@ nl:4Chalet fi:Mökki fr:4Chalet|Meublé de tourisme de:Hütte -hi:3षाले hu:Nyaralóház|Kulcsosház id:4Chalet it:4Chalet @@ -13176,7 +13145,6 @@ nl:5Waterpark fi:5Vesipuisto fr:Centre aquatique de:Wasserpark|Freizeitbad|3Aquapark -hi:3वाटर पार्क hu:Strand|Élményfürdő|3Aquapark id:Taman air it:Parco acquatico @@ -13213,7 +13181,6 @@ nl:Watertoren fi:Vesitorni fr:Château d'eau de:Wasserturm -hi:पानी का टावर hu:Víztorony id:Menara air it:Cisterna per acqua @@ -13400,7 +13367,6 @@ nl:Makelaar fi:Kiinteistönvälittäjä fr:Agence immobilière|agent immobilier de:4Immobilienmakler -hi:संपत्ति एजेंट hu:Ingatlaniroda id:Agen ril estat it:Agenzia immobiliare @@ -13655,7 +13621,6 @@ nl:5Appartementen fi:Loma-asunnot fr:5Appart'hôtel|Meublé de tourisme de:5Appartements -hi:4अवकाश अपार्टमेंट hu:5Apartmanok id:5Apartemen it:Residence @@ -14306,7 +14271,6 @@ et:Välivõimla eu:Gimnasioa fi:Kuntokeskus fr:Station de fitness|Parcours de santé -hi:4फिटनेस स्टेशन hu:3Fitneszpark id:Stasiun Kebugaran it:Centro fitness @@ -14345,7 +14309,6 @@ et:Kindlustusasutus eu:Aseguru bulegoa fi:Vakuutuslaitos fr:Bureau d’assurance|assureur -hi:बीमा कार्यालय hu:Biztosító id:Kantor Asuransi it:Ufficio assicurazioni @@ -14872,7 +14835,6 @@ es:3Galería de arte|museo et:3Galerii|muuseum eu:3Arte galeria|museoa fr:3Galerie d'art|musée d'art -hi:आर्ट गैलरी ko:갤러리|박물관 nb:3Galleri|museum nl:3Galerij|museum @@ -15131,7 +15093,6 @@ en:3Marina be:4Прычал|3Марына de:5Jachthafen et:Randumiskoht -hi:मरीना ja:マリーナ pt:3Marina pt-BR:3Marina diff --git a/data/editor.config b/data/editor.config index 3f5d9f4797..b1edcd82f5 100644 --- a/data/editor.config +++ b/data/editor.config @@ -3,13 +3,8 @@ - - @@ -446,18 +441,6 @@ - - - - - - - - - - - - @@ -813,75 +796,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -932,10 +846,7 @@ - - - @@ -1006,25 +917,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1071,19 +963,6 @@ - - - - - - - - - - - - - @@ -1250,5 +1129,12 @@ + + + + + + + diff --git a/data/sound-strings/sr.json/localize.json b/data/sound-strings/sr.json/localize.json deleted file mode 100644 index cf4cc0cf5b..0000000000 --- a/data/sound-strings/sr.json/localize.json +++ /dev/null @@ -1,67 +0,0 @@ -{ -"make_a_slight_right_turn":"Држите се десно.", -"make_a_right_turn":"Скрените десно.", -"make_a_sharp_right_turn":"Оштро десно.", -"enter_the_roundabout":"Уђите у кружни ток.", -"leave_the_roundabout":"Изађите из кружног тока.", -"make_a_slight_left_turn":"Држите се лево.", -"make_a_left_turn":"Скрените лево.", -"make_a_sharp_left_turn":"Оштро лево.", -"make_a_u_turn":"Урадите полукружно окретање, када буде могуће.", -"go_straight":"Наставите право.", -"exit":"Излаз.", -"destination":"Стижете на одредиште.", -"you_have_reached_the_destination":"Стигли сте.", -"in_50_meters":"За педесет метара", -"in_100_meters":"За сто метара", -"in_200_meters":"За двеста метара", -"in_250_meters":"За двеста педесет метара", -"in_300_meters":"За триста метара", -"in_400_meters":"За четристо метара", -"in_500_meters":"За петсто метара", -"in_600_meters":"За шестсто метара", -"in_700_meters":"За седамсто метара", -"in_750_meters":"За седамсто педесет метара", -"in_800_meters":"За осамсто метара", -"in_900_meters":"За деветсто метара", -"in_1_kilometer":"За један километар", -"in_1_5_kilometers":"За један и по километар", -"in_2_kilometers":"За два километра", -"in_2_5_kilometers":"За два а по километра", -"in_3_kilometers":"За три километра", -"then":"Затим", -"take_the_1_exit":"Изађите на први излаз.", -"take_the_2_exit":"Изађите на други излаз.", -"take_the_3_exit":"Изађите на трећи излаз.", -"take_the_4_exit":"Изађите на четврти излаз.", -"take_the_5_exit":"Изађите на пети излаз.", -"take_the_6_exit":"Изађите на шести излаз.", -"take_the_7_exit":"Изађите на седми излаз.", -"take_the_8_exit":"Изађите на осми излаз.", -"take_the_9_exit":"Изађите на девети излаз.", -"take_the_10_exit":"Изађите на десети излаз.", -"take_the_11_exit":"Изађите на једанаести излаз.", -"in_50_feet":"За педесет стопа", -"in_100_feet":"За сто стопа", -"in_200_feet":"За двеста стопа", -"in_300_feet":"За триста стопа", -"in_400_feet":"За четристо стопа", -"in_500_feet":"За петсто стопа", -"in_600_feet":"За шестсто стопа", -"in_700_feet":"За седамсто стопа", -"in_800_feet":"За осамсто стопа", -"in_900_feet":"За деветсто стопа", -"in_1000_feet":"За хиљаду стопа", -"in_1500_feet":"За хиљаду петсто стопа", -"in_2000_feet":"За две хиљаде стопа", -"in_2500_feet":"За две хиљаде петсто стопа", -"in_3000_feet":"За три хиљаде стопа", -"in_3500_feet":"За три хиљаде петсто стопа", -"in_4000_feet":"За четири хиљаде стопа", -"in_4500_feet":"За четири хиљаде петсто стопа", -"in_5000_feet":"За пет хиљада стопа", -"in_1_mile":"За једну миљу", -"in_1_5_miles":"За једну и по миљу", -"in_2_miles":"За две миље", -"unknown_camera":"Пажња, радар!" -} diff --git a/data/strings/sound.txt b/data/strings/sound.txt index 13134034cd..fa909ccdcf 100644 --- a/data/strings/sound.txt +++ b/data/strings/sound.txt @@ -30,7 +30,6 @@ ro = Păstrați la dreapta. ru = Держитесь правее. sk = Držte sa vpravo. - sr = Држите се десно. sv = Håll höger. sw = Kaa kuria. th = ชิดขวาไว้ @@ -70,7 +69,6 @@ ro = Virați la dreapta. ru = Поверните направо. sk = Odbočte doprava. - sr = Скрените десно. sv = Sväng höger. sw = Zunguka upande wa kulia. th = เลี้ยวขวา @@ -110,7 +108,6 @@ ro = Virați strâns la dreapta. ru = Резко поверните направо. sk = Ostro doprava. - sr = Оштро десно. sv = Skarpt höger. sw = Fanya kulia mkali. th = หักมุมขวา @@ -150,7 +147,6 @@ ro = Intrați în sensul giratoriu. ru = Поверните на кольцо. sk = Vojdite na kruhový objazd. - sr = Уђите у кружни ток. sv = Kör in i rondellen. sw = Ingia kwenye mzunguko. th = เข้าสู่วงเวียน @@ -190,7 +186,6 @@ ro = Ieșiți din sensul giratoriu. ru = Сверните с кольца. sk = Opustite kruhový objazd. - sr = Изађите из кружног тока. sv = Lämna rondellen. sw = Toka kwenye mzunguko wa barabara. th = ออกจากวงเวียน @@ -230,7 +225,6 @@ ro = Păstrați la stânga. ru = Держитесь левее. sk = Držte sa vľavo. - sr = Држите се лево. sv = Håll vänster. sw = Kaa kushoto. th = ชิดซ้ายไว้ @@ -270,7 +264,6 @@ ro = Virați la stânga. ru = Поверните налево. sk = Odbočte doľava. - sr = Скрените лево. sv = Sväng vänster. sw = Zunguka upande wa kushoto. th = เลี้ยวซ้าย @@ -310,7 +303,6 @@ ro = Virați strâns la stânga. ru = Резко поверните налево. sk = Ostro doľava. - sr = Оштро лево. sv = Skarpt vänster. sw = Fanya kushoto mkali. th = หักมุมซ้าย @@ -350,7 +342,6 @@ ro = Întoarceți-vă o sută optzeci de grade. ru = Развернитесь. sk = Otočte sa o stoosemdesiat stupňov. - sr = Урадите полукружно окретање, када буде могуће. sv = Gör en U-sväng. sw = Geuka urudi ulikotoka. th = กลับรถ @@ -390,7 +381,6 @@ ro = Mergeți înainte. ru = Двигайтесь прямо. sk = Choďte rovno. - sr = Наставите право. sv = Åk rakt framåt. sw = Pita kabisa. th = ตรงไป @@ -430,7 +420,6 @@ ro = Ieșire. ru = Съезд. sk = Použite výjazd. - sr = Излаз. sv = Utgång. sw = Kuondoka. th = ทางออก. @@ -470,7 +459,6 @@ ro = Veți sosi. ru = Вы прибудете в пункт назначения. sk = Dorazíte do cieľa. - sr = Стижете на одредиште. sv = Är du framme. sw = Utawasili. th = คุณจะถึง @@ -510,7 +498,6 @@ ro = Ați ajuns. ru = Вы прибыли в пункт назначения. sk = Dorazili ste do cieľa. - sr = Стигли сте. sv = Du har anlänt. sw = Umewasili mwisho wa safari. th = คุณมาถึงแล้ว @@ -550,7 +537,6 @@ ro = După cincizeci de metri ru = Через пятьдесят метров sk = Po päťdesiatich metroch - sr = За педесет метара sv = Om femtio meter sw = Kabla ya mita hamsini th = อีกห้าสิบเมตร @@ -590,7 +576,6 @@ ro = După o sută de metri ru = Через сто метров sk = Po sto metroch - sr = За сто метара sv = Om ett hundra meter sw = Kabla ya mita mia moja th = อีกหนึ่งร้อยเมตร @@ -630,7 +615,6 @@ ro = După două sute de metri ru = Через двести метров sk = Po dvesto metroch - sr = За двеста метара sv = Om två hundra meter sw = Kabla ya mita mia mbili th = อีกสองร้อยเมตร @@ -670,7 +654,6 @@ ro = După două sute cincizeci de metri ru = Через двести пятьдесят метров sk = Po dvestopäťdesiatich metroch - sr = За двеста педесет метара sv = Om två hundra femtio meter sw = Kabla ya mita mia mbili hamsini th = อีกสองร้อยห้าสิบเมตร @@ -710,7 +693,6 @@ ro = După trei sute de metri ru = Через триста метров sk = Po tristo metroch - sr = За триста метара sv = Om tre hundra meter sw = Kabla ya mita mia tatu th = อีกสามร้อยเมตร @@ -750,7 +732,6 @@ ro = După patru sute de metri ru = Через четыреста метров sk = Po štyristo metroch - sr = За четристо метара sv = Om fyra hundra meter sw = Kabla ya mita mia nne th = อีกสี่ร้อยเมตร @@ -790,7 +771,6 @@ ro = După cinci sute de metri ru = Через пятьсот метров sk = Po päťsto metroch - sr = За петсто метара sv = Om fem hundra meter sw = Kabla ya mita mia tano th = อีกห้าร้อยเมตร @@ -830,7 +810,6 @@ ro = După șase sute de metri ru = Через шестьсот метров sk = Po šesťsto metroch - sr = За шестсто метара sv = Om sex hundra meter sw = Kabla ya mita mia sita th = อีกหกร้อยเมตร @@ -870,7 +849,6 @@ ro = După șapte sute de metri ru = Через семьсот метров sk = Po sedemsto metroch - sr = За седамсто метара sv = Om sju hundra meter sw = Kabla ya mita mia saba th = อีกเจ็ดร้อยเมตร @@ -910,7 +888,6 @@ ro = După șapte sute cincizeci de metri ru = Через семьсот пятьдесят метров sk = Po sedemstopäťdesiatich metroch - sr = За седамсто педесет метара sv = Om sju hundra femtio meter sw = Kabla ya mita mia saba hamsini th = อีกเจ็ดร้อยห้าสิบเมตร @@ -950,7 +927,6 @@ ro = După opt sute de metri ru = Через восемьсот метров sk = Po osemsto metroch - sr = За осамсто метара sv = Om åtta hundra meter sw = Kabla ya mita mia nane th = อีกแปดร้อยเมตร @@ -990,7 +966,6 @@ ro = După nouă sute de metri ru = Через девятьсот метров sk = Po deväťsto metroch - sr = За деветсто метара sv = Om nio hundra meter sw = Kabla ya mita mia tisa th = อีกเก้าร้อยเมตร @@ -1030,7 +1005,6 @@ ro = După un kilometru ru = Через километр sk = Po jednom kilometri - sr = За један километар sv = Om en kilometer sw = Kabla ya kilomita moja th = อีกหนึ่งกิโลเมตร @@ -1070,7 +1044,6 @@ ro = După un kilometru și jumătate ru = Через полтора километра sk = Po jeden a pol kilometri - sr = За један и по километар sv = Om en och en halv kilometer sw = Kabla ya kilomita moja na nusu th = อีกหนึ่งกิโลเมตรครึ่ง @@ -1110,7 +1083,6 @@ ro = După doi kilometri ru = Через два километра sk = Po dvoch kilometroch - sr = За два километра sv = Om två kilometer sw = Kabla ya kilomita mbili th = อีกสองกิโลเมตร @@ -1150,7 +1122,6 @@ ro = După doi kilometri și jumătate ru = Через два с половиной километра sk = Po dva a pol kilometri - sr = За два а по километра sv = Om två och en halv kilometer sw = Kabla ya kilomita mbili na nusu th = อีกสองกิโลเมตรครึ่ง @@ -1190,7 +1161,6 @@ ro = După trei kilometri ru = Через три километра sk = Po troch kilometroch - sr = За три километра sv = Om tre kilometer sw = Kabla ya kilomita tatu th = อีกสามกิโลเมตร @@ -1230,7 +1200,6 @@ ro = Apoi ru = Затем sk = Potom - sr = Затим sv = Efter det sw = Kisha th = จากนั้น @@ -1270,7 +1239,6 @@ ro = Folosiți prima ieșire. ru = Сверните на первый съезд. sk = Opustite kruhový objazd prvým výjazdom. - sr = Изађите на први излаз. sv = Ta första avfarten. sw = Ingia barabara ya kwanza ya kutoka. th = ออกทางออกที่หนึ่ง @@ -1310,7 +1278,6 @@ ro = Folosiți a doua ieșire. ru = Сверните на второй съезд. sk = Opustite kruhový objazd druhým výjazdom. - sr = Изађите на други излаз. sv = Ta andra avfarten. sw = Ingia barabara ya pili ya kutoka. th = ออกทางออกที่สอง @@ -1350,7 +1317,6 @@ ro = Folosiți a treia ieșire. ru = Сверните на третий съезд. sk = Opustite kruhový objazd tretím výjazdom. - sr = Изађите на трећи излаз. sv = Ta tredje avfarten. sw = Ingia barabara ya tatu ya kutoka. th = ออกทางออกที่สาม @@ -1390,7 +1356,6 @@ ro = Folosiți a patra ieșire. ru = Сверните на четвертый съезд. sk = Opustite kruhový objazd štvrtým výjazdom. - sr = Изађите на четврти излаз. sv = Ta fjärde avfarten. sw = Ingia barabara ya nne ya kutoka. th = ออกทางออกที่สี่ @@ -1430,7 +1395,6 @@ ro = Folosiți a cincea ieșire. ru = Сверните на пятый съезд. sk = Opustite kruhový objazd piatym výjazdom. - sr = Изађите на пети излаз. sv = Ta femte avfarten. sw = Ingia barabara ya tano ya kutoka. th = ออกทางออกที่ห้า @@ -1470,7 +1434,6 @@ ro = Folosiți a șasea ieșire. ru = Сверните на шестой съезд. sk = Opustite kruhový objazd šiestym výjazdom. - sr = Изађите на шести излаз. sv = Ta sjätte avfarten. sw = Ingia barabara ya sita ya kutoka. th = ออกทางออกที่หก @@ -1510,7 +1473,6 @@ ro = Folosiți a șaptea ieșire. ru = Сверните на седьмой съезд. sk = Opustite kruhový objazd siedmym výjazdom. - sr = Изађите на седми излаз. sv = Ta sjunde avfarten. sw = Ingia barabara ya saba ya kutoka. th = ออกทางออกที่เจ็ด @@ -1550,7 +1512,6 @@ ro = Folosiți a opta ieșire. ru = Сверните на восьмой съезд. sk = Opustite kruhový objazd ôsmym výjazdom. - sr = Изађите на осми излаз. sv = Ta åttonde avfarten. sw = Ingia barabara ya nane ya kutoka. th = ออกทางออกที่แปด @@ -1590,7 +1551,6 @@ ro = Folosiți a noua ieșire. ru = Сверните на девятый съезд. sk = Opustite kruhový objazd deviatym výjazdom. - sr = Изађите на девети излаз. sv = Ta nionde avfarten. sw = Ingia barabara ya tisa ya kutoka. th = ออกทางออกที่เก้า @@ -1630,7 +1590,6 @@ ro = Folosiți a zecea ieșire. ru = Сверните на десятый съезд. sk = Opustite kruhový objazd desiatym výjazdom. - sr = Изађите на десети излаз. sv = Ta tionde avfarten. sw = Ingia barabara ya kumi ya kutoka. th = ออกทางออกที่สิบ @@ -1670,7 +1629,6 @@ ro = Folosiți a unsprezecea ieșire. ru = Сверните на одиннадцатый съезд. sk = Opustite kruhový objazd jedenástym výjazdom. - sr = Изађите на једанаести излаз. sv = Ta elfte avfarten. sw = Ingia barabara ya kumi na moja ya kutoka. th = ออกทางออกที่สิบเอ็ด @@ -1710,7 +1668,6 @@ ro = După cincizeci de picioare ru = Через пятьдесят футов sk = Po päťdesiatich stopách - sr = За педесет стопа sv = Om femtio fot sw = Kabla ya futi hamsini th = อีกห้าสิบฟุต @@ -1750,7 +1707,6 @@ ro = După o sută de picioare ru = Через сто футов sk = Po sto stopách - sr = За сто стопа sv = Om ett hundra fot sw = Kabla ya futi mia moja th = อีกหนึ่งร้อยฟุต @@ -1790,7 +1746,6 @@ ro = După două sute de picioare ru = Через двести футов sk = Po dvesto stopách - sr = За двеста стопа sv = Om två hundra fot sw = Kabla ya futi mia mbili th = อีกสองร้อยฟุต @@ -1830,7 +1785,6 @@ ro = După trei sute de picioare ru = Через триста футов sk = Po tristo stopách - sr = За триста стопа sv = Om tre hundra fot sw = Kabla ya futi mia tatu th = อีกสามร้อยฟุต @@ -1870,7 +1824,6 @@ ro = După patru sute de picioare ru = Через четыреста футов sk = Po štyristo stopách - sr = За четристо стопа sv = Om fyra hundra fot sw = Kabla ya futi mia nne th = อีกสี่ร้อยฟุต @@ -1910,7 +1863,6 @@ ro = După cinci sute de picioare ru = Через пятьсот футов sk = Po päťsto stopách - sr = За петсто стопа sv = Om fem hundra fot sw = Kabla ya futi mia tano th = อีกห้าร้อยฟุต @@ -1950,7 +1902,6 @@ ro = După șase sute de picioare ru = Через шестьсот футов sk = Po šesťsto stopách - sr = За шестсто стопа sv = Om sex hundra fot sw = Kabla ya futi mia sita th = อีกหกร้อยฟุต @@ -1990,7 +1941,6 @@ ro = După șapte sute de picioare ru = Через семьсот футов sk = Po sedemsto stopách - sr = За седамсто стопа sv = Om sju hundra fot sw = Kabla ya futi mia saba th = อีกเจ็ดร้อยฟุต @@ -2030,7 +1980,6 @@ ro = După opt sute de picioare ru = Через восемьсот футов sk = Po osemsto stopách - sr = За осамсто стопа sv = Om åtta hundra fot sw = Kabla ya futi mia nane th = อีกแปดร้อยฟุต @@ -2070,7 +2019,6 @@ ro = După nouă sute de picioare ru = Через девятьсот футов sk = Po deväťsto stopách - sr = За деветсто стопа sv = Om nio hundra fot sw = Kabla ya futi mia tisa th = อีกเก้าร้อยฟุต @@ -2110,7 +2058,6 @@ ro = După o mie de picioare ru = Через тысячу футов sk = Po tisíc stopách - sr = За хиљаду стопа sv = Om ett tusen fot sw = Kabla ya futi elfu moja th = อีกหนึ่งพันฟุต @@ -2150,7 +2097,6 @@ ro = După o mie cinci sute de picioare ru = Через тысячу пятьсот футов sk = Po tisícpäťsto stopách - sr = За хиљаду петсто стопа sv = Om ett tusen fem hundra fot sw = Kabla ya futi elfu moja na mia tano th = อีกหนึ่งพันห้าร้อยฟุต @@ -2190,7 +2136,6 @@ ro = După două mii de picioare ru = Через две тысячи футов sk = Po dvetisíc stopách - sr = За две хиљаде стопа sv = Om två tusen fot sw = Kabla ya futi elfu mbili th = อีกสองพันฟุต @@ -2230,7 +2175,6 @@ ro = După două mii cinci sute de picioare ru = Через две тысячи пятьсот футов sk = Po dvetisícpäťsto stopách - sr = За две хиљаде петсто стопа sv = Om två tusen fem hundra fot sw = Kabla ya futi elfu mbili na mia tano th = อีกสองพันห้าร้อยฟุต @@ -2270,7 +2214,6 @@ ro = După trei mii de picioare ru = Через три тысячи футов sk = Po tritisíc stopách - sr = За три хиљаде стопа sv = Om tre tusen fot sw = Kabla ya futi elfu tatu th = อีกสามพันฟุต @@ -2310,7 +2253,6 @@ ro = După trei mii cinci sute de picioare ru = Через три тысячи пятьсот футов sk = Po tritisícpäťsto stopách - sr = За три хиљаде петсто стопа sv = Om tre tusen fem hundra fot sw = Kabla ya futi elfu tatu na mia tano th = อีกสามพันห้าร้อยฟุต @@ -2350,7 +2292,6 @@ ro = După patru mii de picioare ru = Через четыре тысячи футов sk = Po štyritisíc stopách - sr = За четири хиљаде стопа sv = Om fyra tusen fot sw = Kabla ya futi elfu nne th = อีกสี่พันฟุต @@ -2390,7 +2331,6 @@ ro = După patru mii cinci sute de picioare ru = Через четыре тысячи пятьсот футов sk = Po štyritisícpäťsto stopách - sr = За четири хиљаде петсто стопа sv = Om fyra tusen fem hundra fot sw = Kabla ya futi elfu nne na mia tano th = อีกสี่พันห้าร้อยฟุต @@ -2430,7 +2370,6 @@ ro = După cinci mii de picioare ru = Через пять тысяч футов sk = Po päťtisíc stopách - sr = За пет хиљада стопа sv = Om fem tusen fot sw = Kabla ya futi elfu tano th = อีกห้าพันฟุต @@ -2470,7 +2409,6 @@ ro = După o milă ru = Через одну милю sk = Po jednej míli - sr = За једну миљу sv = Om en mile sw = Kabla ya maili moja th = อีกหนึ่งไมล์ @@ -2510,7 +2448,6 @@ ro = După o milă și jumătate ru = Через полторы мили sk = Po jeden a pol míli - sr = За једну и по миљу sv = Om en och en halv mile sw = Kabla ya maili moja na nusu th = อีกหนึ่งไมล์ครึ่ง @@ -2550,7 +2487,6 @@ ro = După două mile ru = Через две мили sk = Po dvoch míľach - sr = За две миље sv = Om två mile sw = Kabla ya maili mbili th = อีกสองไมล์ @@ -2590,7 +2526,6 @@ ro = Cameră frontală ru = Впереди камера sk = Pozor, radar! - sr = Пажња, радар! sv = Kamera framför sw = Kamera Mbele th = มีกล้องอยู่ข้างหน้า diff --git a/data/strings/strings.txt b/data/strings/strings.txt index 354835119a..515157a9f7 100644 --- a/data/strings/strings.txt +++ b/data/strings/strings.txt @@ -937,7 +937,7 @@ zh-Hant = 再試一次 [about_menu_title] - tags = android + tags = android,ios en = About Organic Maps af = Oor Organic Maps ar = حول Organic Maps @@ -1869,7 +1869,7 @@ [bookmark_color] comment = Bookmark Color dialog title - tags = android + tags = android,ios en = Bookmark Color en-GB = Bookmark Colour af = Boekmerkkleur @@ -4825,7 +4825,7 @@ [data_version] comment = Data version in «About» screen, %@ is replaced by a local, human readable date. - tags = android + tags = android,ios en = OpenStreetMap data: %@ af = OpenStreetMap-data: %@ ar = بيانات خريطة الشارع المفتوحة: %@ @@ -5346,7 +5346,7 @@ [pref_appearance_light] comment = Settings "Appearance" category: "Light" title, should be consistent with the pref_appearance_title translation. - tags = ios + tags = android,ios en = Light ar = فاتح az = Parlaq @@ -5390,7 +5390,7 @@ [pref_appearance_dark] comment = Settings "Appearance" category: "Dark" title, should be consistent with the pref_appearance_title translation. - tags = ios + tags = android,ios en = Dark ar = داكن az = Tünd @@ -6570,25 +6570,25 @@ [github] comment = Text in menu - tags = android + tags = android,ios en = GitHub hi = गिटहब [telegram] comment = Text in menu - tags = android + tags = android,ios en = Telegram ar = تيليجرام hi = टेलीग्राम [matrix] comment = Text in menu - tags = android + tags = android,ios en = [Matrix] [mastodon] comment = Text in menu - tags = android + tags = android,ios en = Mastodon [facebook] @@ -6628,7 +6628,7 @@ [openstreetmap] comment = Text in menu - tags = android + tags = android,ios en = OpenStreetMap ar = خريطة الشارع المفتوحة zh-Hant = 開放街圖 @@ -6908,7 +6908,7 @@ [how_to_support_us] comment = Button in the main Help dialog - tags = android + tags = android,ios en = Support the project af = Ondersteun die projek ar = دعم المشروع @@ -7203,7 +7203,6 @@ fi = Sähköpostisovellusta ei ole asetettu. Ole hyvä ja määritä sähköpostiasetukset tai ota meihin yhteyttä toista kautta osoitteessa %@ fr = Le client de courriel n'a pas été configuré. Veuillez le configurer ou nous contacter à %@ he = יישום הדוא"ל לא הוגדר. אנא הגדירו אותו או השתמשו בכל דרך אחרת על מנת ליצור עמנו קשר בכתובת %@ - hi = ईमेल क्लाइंट सेट अप नहीं किया गया है. कृपया इसे कॉन्फ़िगर करें या %@ पर हमसे संपर्क करें hu = Az email kliens nincs beállítva. Kérjük, konfiguráld vagy próbálj meg valamilyen más módon kapcsolatba lépni velünk a %@ email címen keresztül. id = Surel pelanggan belum diatur. Mohon konfigurasikan atau gunakan cara lain untuk menghubungi kami di %@ it = L'app per e-mail non è stata configurata. Si prega di configurarla o di usare altro metodo per contattarci all'indirizzo %@ @@ -7248,7 +7247,6 @@ fi = Virhe lähetettäessä viestiä fr = Erreur d'envoi de courriel he = שגיאה בשליחת דוא"ל - hi = ईमेल भेजने में त्रुटि hu = Hiba az email küldése során id = Gangguan pengiriman surel it = Errore invio e-mail @@ -7777,7 +7775,6 @@ fi = Ladataan: fr = Téléchargement en cours : he = מוריד: - hi = डाउनलोड हो रहा है: hu = Letöltés: id = Mengunduh: it = In scaricamento: @@ -8309,7 +8306,6 @@ fi = Lataa karttoja matkalla fr = Téléchargez toutes les cartes le long de votre itinéraire he = הורד את כל המפות במסלול שלך - hi = अपने मार्ग के सभी मानचित्र डाउनलोड करें hu = Tölts le térképeket az útvonal mellett id = Unduh peta bersama rute it = Scarica le mappe lungo il percorso @@ -8354,7 +8350,6 @@ fi = Reitin luominen vaatii karttojen lataamisen ja päivityksen oman sijaintisi ja kohteeen väliltä. fr = La création d'un itinéraire nécessite que toutes les cartes de votre localisation vers votre destination soient téléchargées et actualisées. he = כדי ליצור מסלול, יש להוריד ולעדכן את כל המפות מהמיקום שלך ועד ליעד. - hi = मार्ग बनाने के लिए, हमें आपके स्थान से आपके गंतव्य तक के सभी मानचित्रों को डाउनलोड और अपडेट करना होगा। hu = Útvonal tervezéséhez a kiindulási pont és a célútvonal összes térképét szükséges letölteni és frissíteni. id = Membuat rute memerlukan semua peta dari lokasi Anda ke tujuan yang diunduh dan diperbarui. it = Creare un percorso necessita la presenza di tutte le mappe scaricate e aggiornate dalla tua posizione alla destinazione. @@ -9427,7 +9422,6 @@ fi = — Tien kunto, liikennesäännöt ja tiekyltit ovat aina tärkeämpiä kuin navigointilaitteen ohjeet; fr = — Les conditions de circulation, le code de la route et les panneaux de signalisation ont la priorité sur l'appareil de navigation; he = — תנאי הכביש, חוקי התנועה והתמרורים תמיד מקבלים עדיפות על פני הנחיות הניווט; - hi = — सड़क की स्थिति, यातायात कानून और सड़क संकेत हमेशा नेविगेशन संकेतों पर प्राथमिकता देते हैं; hu = — Az útviszonyok, forgalmi törvények és jelzőtáblák mindig elsőbbséget élveznek a navigációs útmutatásokkal szemben; id = — Kondisi jalan, peraturan lalu lintas, dan marka jalan harus selalu didahulukan daripada saran navigasi; it = — Le condizioni stradali, il codice della strada e la segnaletica stradale hanno sempre precedenza sulle indicazioni del navigatore; @@ -9471,7 +9465,6 @@ fi = — Kartta saattaa olla epätarkka, joten ehdotettu reitti ei välttämättä ole paras mahdollinen tapa päästä määränpäähän; fr = — La carte peut être imprécise et l'itinéraire proposé n'est pas forcément le plus direct pour arriver à destination; he = — ייתכנו אי-דיוקים במפה, וייתכן כי המסלול המוצע אינו תמיד הדרך המיטבית להגעה אל היעד; - hi = — नक्शा गलत हो सकता है, और सुझाया गया मार्ग हमेशा गंतव्य तक पहुंचने का सबसे इष्टतम तरीका नहीं हो सकता है; hu = — A térkép pontatlan lehet és a javasolt útvonal lehetséges, hogy nem mindig a legoptimálisabb módja a célállomás elérésének; id = — Peta mungkin tidak akurat dan rute yang disarankan tidak mutlak merupakan cara paling optimal untuk mencapai tujuan; it = — La mappa potrebbe essere imprecisa e il percorso suggerito potrebbe non essere sempre quello ottimale per raggiungere la destinazione; @@ -9515,7 +9508,6 @@ fi = — Ehdotettuja reittejä tulee pitää vain suosituksina; fr = — L'itinéraire proposé doit être considéré comme une simple recommandation; he = — יש לראות במסלולים המוצעים המלצה בלבד; - hi = — सुझाए गए मार्गों को केवल अनुशंसाओं के रूप में समझा जाना चाहिए; hu = — A javasolt útvonalakat mindössze javaslatoknak kell tekinteni; id = — Rute yang disarankan hanya untuk digunakan sebagai rekomendasi; it = — I percorsi suggeriti devono essere considerati solo come consigli; @@ -9560,7 +9552,6 @@ fi = — Ole varovainen reittien suhteen raja-alueilla: sovelluksemme luomat reitit voivat toisinaan ylittää maiden rajoja luvattomissa paikoissa; fr = — Faites attention aux itinéraires traversant des zones frontalières : les itinéraires générés par l'application peuvent parfois franchir des frontières étatiques dans des zones interdites; he = — יש להיות זהירים בשימוש במסלולים סביב גבולות: המסלולים המוצעים באפליקציה עשויים לחצות גבולות מדינה במקומות אסורים. - hi = — सीमावर्ती क्षेत्रों में मार्गों के साथ सावधानी बरतें: हमारे ऐप द्वारा बनाए गए मार्ग कभी-कभी अनधिकृत स्थानों पर देश की सीमाओं को पार कर सकते हैं। hu = — A határmenti útvonalakon közlekedjen óvatosan: az alkalmazásunk által létrehozott útvonalak néha olyan helyeken szelhetik át az országhatárokat, amelyek nem engedélyezettek; id = — Berhati-hatilah dengan rute di zona perbatasan: rute yang dibuat oleh aplikasi kami terkadang mungkin saja melintasi batas negara di lokasi yang tidak sah; it = — Fai attenzione ai percorsi nelle zone di confine: i percorsi creati dalla nostra app possono, a volte, attraversare i confini di stato in zone non autorizzate; @@ -9604,7 +9595,6 @@ fi = Pysy tarkkana ja liiku turvallisesti! fr = Restez vigilant et soyez prudent sur la route ! he = שמור על ערנות ועל הבטיחות בכביש! - hi = कृपया सड़कों पर सतर्क और सुरक्षित रहें! hu = Kérjük, mindig maradjon éber és vezessen biztonságosan az utakon! id = Jaga selalu kewaspadaan dan keselamatan di jalan! it = Fai sempre attenzione e guida con prudenza! @@ -9691,7 +9681,6 @@ fi = Reittiä ei voi luoda. Tämänhetkisiä GPS-koordinaatteja ei löydy. fr = Impossible de créer l'itinéraire. Les coordonnées GPS actuelles n'ont pas pu être identifiées. he = לא ניתן ליצור מסלול. לא ניתן לזהות את קואורדינטות ה-GPS הנוכחיות. - hi = मार्ग बनाने में असमर्थ. वर्तमान जीपीएस निर्देशांक की पहचान नहीं की जा सकी. hu = Nem sikerült létrehozni az útvonalat. A jelenlegi GPS koordináták nem azonosíthatók. id = Tidak dapat membuat rute. Koordinat GPS saat ini tidak dapat dikenali. it = Impossibile creare il percorso. Impossibile individuare le coordinate GPS attuali. @@ -9821,7 +9810,6 @@ fi = Tämänhetkisiä GPS-koordinaatteja ei löydy. Ota sijaintipalvelut käyttöön reitin laskemista varten. fr = Impossible d'identifier les coordonnées GPS actuelles. Activez les services de localisation pour calculer l'itinéraire. he = לא ניתן לאתר קואורדינטות GPS נוכחיות. הפעל שירותי מיקום כדי לחשב מסלול. - hi = वर्तमान जीपीएस निर्देशांक का पता लगाने में असमर्थ. मार्ग की गणना करने के लिए स्थान सेवाएँ सक्षम करें। hu = Nem sikerült lokalizálni a jelenlegi GPS koordinátákat. Az útvonaltervezéshez engedélyezze a helyszíni szolgáltatásokat. id = TIdak dapat menemukan koordinat GPS saat ini. Aktifkan layanan lokasi untuk mengalkulasi rute. it = Impossibile individuare le coordinate GPS attuali. Per calcolare il percorso, abilita i servizi di localizzazione. @@ -9907,7 +9895,6 @@ fi = Lataa ja päivitä kaikki suunnitellun reitin kartta- ja reititystiedot, jotta reitin voi laskea. fr = Téléchargez et mettez à jour les informations de carte et d'itinéraire de votre trajet pour calculer l'itinéraire. he = הורד ועדכן את כל המפות לאורך הדרך על מנת לחשב מסלול. - hi = मार्ग की गणना करने के लिए अनुमानित पथ के सभी मानचित्र डाउनलोड या अपडेट करें। hu = Útvonaltervezéshez töltse le és frissítse az összes térkép- és útvonal-információt a tervezett út mentén. id = Unduh dan perbarui semua informasi peta dan perutean di sepanjang proyeksi jalan untuk mengalkulasi rute. it = Per calcolare il percorso, scarica e aggiorna tutte le mappe e le informazioni di itinerario lungo la strada prevista. @@ -9951,7 +9938,6 @@ fi = Reitin paikannus ei onnistu fr = Impossible de localiser l'itinéraire he = לא ניתן לאתר מסלול - hi = मार्ग ढूंढने में असमर्थ hu = Nem sikerült meghatározni az útvonalat id = Tidak dapat menemukan rute it = Impossibile individuare il percorso @@ -9995,7 +9981,6 @@ fi = Reitin luonti ei onnistu. fr = Impossible de créer l'itinéraire. he = לא ניתן ליצור מסלול. - hi = मार्ग बनाने में असमर्थ. hu = Nem sikerült létrehozni az útvonalat. id = Tidak dapat membuat rute. it = Impossibile creare il percorso. @@ -10125,7 +10110,6 @@ fi = Reittiä ei luotu. Aloituskohdan paikannus ei onnistu. fr = Impossible de localiser le point de départ. L'itinéraire n'a pas pu être créé. he = לא נוצר מסלול. לא ניתן לאתר את נקודת ההתחלה. - hi = रूट नहीं बनाया गया. प्रारंभिक बिंदु का पता लगाने में असमर्थ. hu = Az útvonal nem lett létrehozva. Nem sikerült meghatározni az indulási helyet. id = Rute tidak dibuat. Tidak dapat menemukan titik mula. it = Percorso non creato. Impossibile individuare il punto di partenza. @@ -10255,7 +10239,6 @@ fi = Reittiä ei luotu. Määränpään paikannus ei onnistu. fr = Impossible de localiser la destination. L'itinéraire n'a pas pu être créé. he = לא נוצר מסלול. לא ניתן לאתר את היעד. - hi = रूट नहीं बनाया गया. गंतव्य का पता लगाने में असमर्थ. hu = Az útvonal nem lett létrehozva. Nem sikerült meghatározni a célállomást. id = Rute tidak dibuat. Tidak dapat menemukan tujuan. it = Percorso non creato. Impossibile individuare la destinazione. @@ -10429,7 +10412,6 @@ fi = Järjestelmävirhe fr = Erreur système he = שגיאת מערכת - hi = सिस्टम त्रुटि hu = Rendszerhiba id = Kesalahan sistem it = Errore di sistema @@ -10473,7 +10455,6 @@ fi = Reittiä ei voi luoda sovellusvirheen vuoksi. fr = Impossible de créer l'itinéraire à cause d'une erreur dans l'application. he = לא ניתן ליצור מסלול עקב שגיאת אפליקציה. - hi = एप्लिकेशन त्रुटि के कारण मार्ग बनाने में असमर्थ. hu = Egy alkalmazáshiba miatt nem sikerült az útvonal létrehozása. id = Tidak dapat membuat rute karena kesalahan aplikasi. it = Impossibile creare il percorso a causa di un errore dell'applicazione. @@ -10691,7 +10672,6 @@ fi = Lataa kartta jotta voit käyttää hakua ja luoda reittejä. Tämän jälkeen et tarvitse enää Internet-yhteyttä. fr = Pour commencer à rechercher et à créer des itinéraires, veuillez télécharger la carte. Après cela, vous n'aurez plus besoin d'une connexion Internet. he = על מנת להתחיל לחפש וליצור מסלולים, הורידו בבקשה את המפה. לאחר מכן לא תזדקקו יותר לחיבור לאינטרנט. - hi = मार्ग खोजना और बनाना शुरू करने के लिए, कृपया मानचित्र डाउनलोड करें। इसके बाद आपको इंटरनेट कनेक्शन की जरूरत नहीं पड़ेगी. hu = Útvonalak kereséséhez és létrehozásához, kérjük, töltsd le a térképet és többé nem lesz szükséged internetkapcsolatra. id = Untuk mulai mencari dan membuat rute, silakan unduh peta, dan Anda tidak akan membutuhkan koneksi internet lagi. it = Per iniziare a cercare e a creare i percorsi, scarica la mappa e non avrai più bisogno di una connessione a internet. @@ -10868,7 +10848,6 @@ fi = Reitin suunnittelu epäonnistui fr = La planification de l'itinéraire a échoué he = תכנון המסלול נכשל - hi = रूट योजना विफल hu = Sikertelen útvonaltervezés id = Sudah sampai di tujuan it = Pianificazione del percorso fallito @@ -10913,7 +10892,6 @@ fi = Saavut: %@ fr = Arrivée: %@ he = שעת הגעה: %@ - hi = आगमन का समय: %@ hu = Megérkezik: %@ id = Kedatangan: %@ it = Arrivo a %@ @@ -10955,7 +10933,6 @@ fi = Lataa ja päivitä kaikki kartat reitin varrella luodaksesi reitin. fr = Pour créer un trajet, veuillez télécharger et mettre à jour toutes les cartes concernant ce trajet. he = הורד ועדכן את כל המפות בדרך כדי לחשב מסלול. - hi = मार्ग की गणना करने के लिए अनुमानित पथ के साथ सभी मानचित्र डाउनलोड करें और अपडेट करें। hu = Útvonal létrehozásához kérjük, töltse le és frissítse az összes térképet az útvonal mentén. id = Untuk membuat rute, silakan unduh dan perbarui semua peta sepanjang rute. it = Per creare un percorso, scaricare e aggiornare tutte le mappe interessate dal percorso. @@ -12725,7 +12702,6 @@ fi = Suljettu nyt fr = Fermé actuellement he = סגור כעת - hi = अब बंद hu = Most zárva id = Sekarang Tutup it = Ora chiuso @@ -12980,7 +12956,6 @@ fi = Aukeaa huomenna kello %@ fr = Ouvre demain à %@ he = נפתח מחר ב-%@ - hi = कल सुबह %@ बजे खुलेगा it = Apre domani alle %@ ja = 明日の %@ から営業 lt = Atsidaro rytoj %@ @@ -13036,7 +13011,6 @@ fi = Aukeaa kello %@ fr = Ouvre à %@ he = נפתח מחר ב-%@ - hi = %@ बजे खुलता है it = Apre alle %@ ja = %@ から営業 lt = Atsidaro %@ @@ -13065,7 +13039,6 @@ fi = Avautuu %@ kuluttua fr = Ouvert dans %@ he = נפתח עוד %@ - hi = %@ में खुल जाएगा it = Apre tra %@ ja = あと %@ に営業 lt = Atsidaro už %@ @@ -13244,7 +13217,6 @@ fi = Muokkaa aukioloaikoja fr = Modifier les heures d'ouverture he = עריכת שעות פעילות - hi = व्यावसायिक घंटे संपादित करें hu = Nyitvatartás szerkesztése id = Sunting jam kerja it = Modifica orari di apertura @@ -14698,7 +14670,6 @@ fi = Sinun täytyy päivittää kaikki kartat ja suunnitella reitti uudelleen luodaksesi uuden reitin. fr = Pour créer un itinéraire, vous devez mettre à jour toutes les cartes puis reprogrammer l'itinéraire. he = ליצירת מסלול, יש לעדכן את כל המפות ולתכנן מסלול שנית. - hi = मार्ग बनाने के लिए, आपको सभी मानचित्र अपडेट करने होंगे और फिर मार्ग की दोबारा योजना बनानी होगी। hu = Útvonal létrehozásához frissítsd az összes térképet, majd tervezd meg újra az útvonalat. id = Untuk membuat rute, Anda perlu memperbarui semua peta dan kemudian merencanakan rute tersebut lagi. it = Per creare un percorso, devi aggiornare tutte le mappe e pianificare nuovamente il percorso. @@ -15480,7 +15451,6 @@ fi = Lisää organisaatio fr = Ajouter une entreprise he = הוסף בית עסק - hi = व्यवसाय जोड़ें hu = Szervezet hozzáadása id = Tambahkan organisasi it = Aggiungi attività @@ -16576,7 +16546,6 @@ fi = Tapahtui virhe määritettäessä sijaintiasi. Tarkista laitteesi ja yritä myöhemmin uudelleen. fr = Une erreur est survenue lors de la recherche de votre emplacement. Vérifiez que le périphérique fonctionne correctement et réessayez ultérieurement he = אירעה שגיאה בעת איתור המיקום שלך. יש לוודא שהמכשיר שלך פועל כראוי ולנסות שנית מאוחר יותר. - hi = आपका स्थान निर्धारित करते समय एक त्रुटि उत्पन्न हुई. जांचें कि आपका उपकरण ठीक से काम कर रहा है और बाद में पुनः प्रयास करें। hu = Hiba történt tartózkodási helye keresésekor. Ellenőrizze készüléke működését és próbálkozzon újra. id = Terjadi kesalahan saat mencari lokasi Anda. Periksa apakah perangkat Anda bekerja dengan benar dan coba lagi nanti. it = Si è verificato un errore durante la ricerca della tua posizione. Controlla che il tuo dispositivo funzioni correttamente e riprova più tardi. @@ -18693,7 +18662,6 @@ fi = Poistetaanko viimeisen matkareitin tallennus? fr = Souhaitez-vous désactiver l'enregistrement de vos itinéraires récents ? he = להשבית הקלטה של המסלול האחרון שלך? - hi = क्या आप हाल ही में यात्रा किए गए मार्ग की रिकॉर्डिंग अक्षम करना चाहते हैं? hu = Megszakítod a legutóbb megtett utad rögzítését? id = Nonaktifkan rekaman dari rute yang baru Anda lalui? it = Disattivare la registrazione del tuo percorso effettuato di recente? @@ -18823,7 +18791,6 @@ fi = Organic Maps käyttää sijaintipalveluita taustalla viimeisimmän reittisi tallentamiseksi. fr = Organic Maps utilise votre géolocalisation en arrière-plan pour enregistrer vos itinéraires récents. he = האפליקצייה Organic Maps משתמשת במיקום שלך ברקע כדי להקליט את המסלול האחרון שלך. - hi = Organic Maps आपके हाल ही में यात्रा किए गए मार्ग को रिकॉर्ड करने के लिए पृष्ठभूमि में आपके स्थान का उपयोग करता है। hu = A Organic Maps a geopozíciód használatával a háttérben rögzíti a legutóbb megtett utad. id = Organic Maps menggunakan geoposisi di latar belakang untuk merekam rute yang baru Anda lalui. it = Organic Maps usa la tua posizione geografica per registrare il tuo percorso effettuato più di recente. @@ -18912,7 +18879,6 @@ fi = Hyväksy fr = Accepter he = קבל - hi = मुझे स्वीकार है hu = Elfogad id = Terima it = Accetta @@ -18957,7 +18923,6 @@ fi = Hylkää fr = Refuser he = דחה - hi = मैंने गिराया hu = Elutasít id = Tolak it = Rifiuta @@ -19089,7 +19054,6 @@ fi = Käytä aina fr = Toujours utiliser he = השתמש תמיד - hi = हमेशा उपयोग करें hu = Mindig használja id = Selalu Gunakan it = Usa sempre @@ -19308,7 +19272,6 @@ fi = Älä käytä koskaan fr = Ne jamais utiliser he = אף פעם אל תשתמש - hi = कभी उपयोग न करो hu = Soha se használja id = Jangan Gunakan it = Non usare mai @@ -19352,7 +19315,6 @@ fi = Kysy aina fr = Toujours demander he = שאל תמיד - hi = हमेशा पूछिये hu = Mindig kérdezze meg id = Selalu Tanya it = Chiedi sempre @@ -19971,7 +19933,6 @@ fi = Lisää alkupiste reitin suunnittelua varten fr = Ajouter un point de départ pour planifier un itinéraire he = יש להוסיף נקודת התחלה כדי לתכנן מסלול - hi = मार्ग की योजना बनाने के लिए एक प्रारंभिक बिंदु जोड़ें hu = Adjon hozzá kiindulási pontot az útvonal megtervezéséhez id = Tambahkan titik awal untuk merencanakan rute it = Aggiungi un punto di partenza per pianificare un percorso @@ -20016,7 +19977,6 @@ fi = Lisää määränpää reitin suunnittelua varten fr = Ajouter un point d'arrivée pour planifier un itinéraire he = יש להוסיף יעד כדי לתכנן מסלול - hi = मार्ग की योजना बनाने के लिए एक गंतव्य जोड़ें hu = Adjon hozzá végpontot az útvonal tervezéséhez id = Tambahkan titik akhir untuk merencanakan rute it = Aggiungi un punto di arrivo per pianificare un percorso @@ -20061,7 +20021,6 @@ fi = Hallitse reittiä fr = Gérer l’itinéraire he = ניהול מסלול - hi = मार्ग प्रबंधित करें hu = Útvonal kezelése id = Kelola rute it = Gestisci percorso @@ -20976,7 +20935,6 @@ fi = Ladataan %@… fr = Téléchargement de %@… he = מוריד %@… - hi = डाउनलोड %@… hu = %@ letöltése… id = Mengunduh %@… it = Download di %@… @@ -21022,7 +20980,6 @@ fi = %@ otetaan käyttöön… fr = Application de %@… he = מחיל %@… - hi = लागू करना %@… hu = %@ alkalmazása… id = Menerapkan %@… it = Applicazione di %@… @@ -21114,7 +21071,6 @@ fi = Jakamisvirhe fr = Erreur de partage he = שגיאת שיתוף - hi = साझा करने में त्रुटि hu = Megosztási hiba id = Kesalahan dalam membagikan it = Errore di condivisione @@ -21920,7 +21876,6 @@ fi = Tuntematon virhe tapahtui fr = Une erreur inconnue est survenue he = אירעה שגיאה בלתי מוכרת - hi = एक अज्ञात त्रुटि हुई hu = Ismeretlen hiba történt id = Terjadi kesalahan yang tidak diketahui it = Si è verificato un errore sconosciuto @@ -22023,8 +21978,6 @@ fr:other = %d objets he:one = פריט %d he:other = %d פריטים - hi:one = %d वस्तु - hi:other = %d वस्तुएं hu = %d hely id = tempat %d it:one = %d oggetto @@ -22656,7 +22609,6 @@ fi = Tapahtui virhe fr = Une erreur est survenue he = אירעה שגיאה - hi = एक त्रुटि पाई गई hu = Hiba történt id = Terjadi kesalahan it = Si è verificato un errore @@ -23049,7 +23001,6 @@ fi = Tunnisteiden lataamisen aikana tapahtui virhe, yritä uudelleen fr = Une erreur s'est produite lors du chargement des tags, veuillez réessayer he = אירעה שגיאה בטעינת התגיות, נא לנסות שנית - hi = An error occurred while loading tags, please try again hu = A tag-ek feltöltésekor hiba történt, kérjük próbálja meg még egyszer id = Kesalahan terjadi saat memuat tag, silakan coba lagi it = Si è verificato un errore durante il caricamento delle etichette, per favore riprova @@ -23506,7 +23457,6 @@ fi = Ei koskaan fr = Jamais he = אף פעם - hi = कभी नहीं hu = Soha id = Jangan pernah it = Mai @@ -23552,7 +23502,6 @@ fi = Automaattinen fr = Automatique he = כשהסוללה חלשה - hi = जब बैटरी कम हो hu = Automatikus id = Otomatis it = Automatico @@ -23598,7 +23547,6 @@ fi = Täysi virransäästö fr = Économie d'énergie maximale he = תמיד - hi = हमेशा hu = Maximális energiatakarékosság id = Hemat daya maksimum it = Massimo risparmio energetico @@ -23961,7 +23909,6 @@ fi = Reittiä ei voi luoda fr = Impossible de calculer l'itinéraire he = לא ניתן לחשב מסלול - hi = मार्ग की गणना करने में असमर्थ hu = Nem lehet útvonalat számítani id = Tidak dapat menghitung rute it = Impossibile elaborare il percorso @@ -24007,7 +23954,6 @@ fi = Valitettavasti emme voineet luoda reittiä valituilla vaihtoehdoilla. Vaihda asetuksia ja yritä uudelleen fr = Malheureusement, nous n'avons pas pu créer l'itinéraire avec les options sélectionnées. Modifiez les paramètres et réessayez he = לא נמצא מסלול. ייתכן כי זה נגרם מאפשרויות המסלול שלך או ממידע לא שלם של OpenStreetMap. נא לשנות אפשרויות מסלול ולנסות שנית. - hi = कोई मार्ग नहीं मिल सका. यह आपके रूटिंग विकल्पों या अधूरे OpenStreetMap डेटा के कारण हो सकता है। कृपया अपने रूटिंग विकल्प बदलें और पुनः प्रयास करें। hu = Sajnos nem találunk útvonalat, valószínűleg az általad meghatározott lehetőségek miatt. Kérjük változtass a beállításokon és próbáld újra id = Sayangnya kami tidak dapat menemukan rute karena opsi pilihan Anda. Harap ubah pengaturan lalu coba lagi it = Purtroppo non siamo riusciti a trovare un percorso, probabilmente a causa delle opzioni che hai scelto. Si prega di cambiare le impostazioni e riprovare. @@ -24496,7 +24442,6 @@ fi = Haluatko luoda reitin uudelleen? fr = Voulez-vous reconstruire l'itinéraire ? he = האם ברצונך לבנות את המסלול מחדש? - hi = क्या आप मार्ग का पुनर्निर्माण करना चाहते हैं? hu = Szeretnél újratervezni egy útvonalat? id = Anda ingin membuat ulang rute? it = Vuoi ricalcolare il percorso? @@ -24634,7 +24579,6 @@ [capacity] comment = To indicate the capacity of car parkings, bicycle parkings, electric vehicle charging stations... - tags = android,ios en = Capacity: %@ af = Kapasiteit: %@ ar = السعة: %@ @@ -27799,7 +27743,6 @@ fi = Tallennusvirhe fr = Erreur disque he = שגיאת כונן - hi = डिस्क त्रुटि ja = ディスクエラー lt = Disko klaida mr = डिस्क त्रुटी @@ -29588,48 +29531,3 @@ vi = Không tìm thấy cài đặt Tổng hợp giọng nói, bạn có chắc thiết bị của mình hỗ trợ nó không? zh-Hans = 未找到语音合成设置,您确定您的设备支持该设置吗? zh-Hant = 未找到語音合成設置,您確定您的設備支援它嗎? - - [map] - comment = Main screen title "Map" displayed in the navigation back button's menu. - tags = ios - en = Map - af = Kaart - ar = الخريطة - az = Xəritə - be = Мапа - bg = Карта - ca = Mapa - cs = Mapa - da = Kort - de = Karte - el = Χάρτης - es = Mapa - et = Kaart - eu = Mapa - fa = نقشه - fi = Kartta - fr = Carte - he = מפה - hi = नक्शा - hu = Térkép - id = Peta - it = Mappa - ja = 地図 - ko = 지도 - lt = Žemėlapis - mr = नकाशा - nb = Kart - nl = Kaart - pl = Mapa - pt = Mapa - pt-BR = Mapa - ro = Hartă - ru = Карта - sk = Mapa - sv = Karta - th = แผนที่ - tr = Harita - uk = Мапа - vi = Bản đồ - zh-Hans = 地图 - zh-Hant = 地圖 diff --git a/data/strings/types_strings.txt b/data/strings/types_strings.txt index eee9d72fee..dbf4fa42fb 100644 --- a/data/strings/types_strings.txt +++ b/data/strings/types_strings.txt @@ -4666,7 +4666,6 @@ et = Hoidmispaagi prügila fi = Jäteveden tyhjennyspiste fr = Station de vidange - hi = सेनेटरी डंप स्टेशन it = Scarico acque nere nl = Caravantoilet cassette-leegpunt pl = Miejsce opróżniania toalety dla kamperów @@ -5638,7 +5637,6 @@ fa = شیر آب قابل شرب fi = Vesipiste fr = Point d’eau - hi = पानी की टंकी पुनः भरने का स्थान hu = Vízvételi pont id = Titik Air it = Punto acqua @@ -6992,7 +6990,6 @@ fi = Mehiläishoitaja fr = Apiculteur he = כוורן - hi = शहर की मक्खियां पालनेवाला hu = Méhész id = Peternak lebah it = Apicoltore @@ -7074,7 +7071,6 @@ fi = Panimo fr = Brasserie artisanale he = מבשלה - hi = शराब की भठ्ठी hu = Sörfőzde id = Toko minuman it = Birrificio @@ -7237,7 +7233,6 @@ fi = Sähkömies fr = Électricien he = חשמלאי - hi = बिजली मिस्त्री hu = Villanyszerelő id = Tukang listrik it = Elettricista @@ -7278,7 +7273,6 @@ fi = Elektroniikan korjaus fr = Réparation d'appareils électroniques he = תיקון אלקטרוניקה - hi = इलेक्ट्रॉनिक्स मरम्मत hu = Elektronikai javítás id = Perbaikan Elektronik it = Riparazioni elettroniche @@ -7690,7 +7684,6 @@ fi = Kamerakauppa fr = Boutique d'appareils photo he = חנות מצלמות - hi = कैमरे की दुकान hu = Fotósbolt id = Toko Kamera it = Negozio di macchine fotografiche @@ -7732,7 +7725,6 @@ fi = Putkimies fr = Plombier he = שרברב - hi = नलसाज hu = Vízvezeték-szerelő id = Tukang pipa it = Idraulico @@ -7815,7 +7807,6 @@ fi = Suutari fr = Cordonnier he = סנדלר - hi = जूते की मरम्मत hu = Cipész id = Tukang sepatu it = Calzolaio @@ -11549,7 +11540,6 @@ fi = Vaihtoehtoinen lääketiede fr = Médecine alternative he = רפואה אלטרנטיבית - hi = वैकल्पिक चिकित्सा hu = Alternatív gyógyászat id = Pengobatan alternatif it = Medicina alternativa @@ -11591,7 +11581,6 @@ fi = Audiologia fr = Audiologie he = אודיולוגיה - hi = ऑडियोलॉजिस्ट hu = Audiológia id = Audiologi it = Audiologia @@ -11634,7 +11623,6 @@ fi = Verenluovutuskeskus fr = Centre de don du sang he = מרכז תרומת דם - hi = रक्तदान केंद्र hu = Véradó központ id = Pusat Donor Darah it = Centro di donazione del sangue @@ -11676,7 +11664,6 @@ fi = Optometria fr = Optométrie he = אופטומטריה - hi = दृष्टिमापी hu = Optometria id = Optometri it = Optometria @@ -11718,7 +11705,6 @@ fi = Jalkaterapia fr = Podologie he = פודיאטריה - hi = पोडियाट्रिस्ट hu = Podiatria id = Podiatri it = Podologia @@ -11760,7 +11746,6 @@ fi = Psykoterapia fr = Psychothérapie he = פסיכותרפיה - hi = मनोचिकित्सक hu = Pszichoterápia id = Psikoterapi it = Psicoterapia @@ -11802,7 +11787,6 @@ fi = Näytteenotto fr = Prélèvements biologiques he = דְגִימָה - hi = नमूना संग्रह केंद्र hu = Mintavétel id = Pengambilan sampel it = Campionamento @@ -11844,7 +11828,6 @@ fi = Logopedia fr = Logopédie he = ריפוי בדיבור - hi = वाक उपचार hu = Logopédia id = Logopedik it = Logopedia @@ -12960,7 +12943,6 @@ eu = Atseden gunea fi = Levähdyspaikka fr = Aire de repos - hi = बाकी क्षेत्र hu = Pihenőzóna id = Tempat istirahat it = Area di sosta @@ -16561,7 +16543,6 @@ fa = محدوده مخصوص سگ fi = Koirien ulkoilupaikka fr = Parc canin - hi = श्वान पार्क hu = Kutyás terület id = Area untuk anjing it = Area sgambamento cani @@ -16600,7 +16581,6 @@ fa = باشگاه بدنسازی fi = Kuntosali fr = Centre fitness - hi = फिटनेस सेंटर hu = Fitnesz-terem id = Pusat kebugaran it = Centro benessere @@ -16638,7 +16618,6 @@ fa = پارک سلامت fi = Kuntokeskus fr = Station de fitness - hi = फिटनेस स्टेशन hu = Fitneszállomás id = Stasiun Kebugaran it = Centro fitness @@ -16840,7 +16819,6 @@ es = Marina et = Marina fi = Venesatama - hi = मरीना it = Porto turistico ja = マリーナ nl = Jachthaven @@ -16999,7 +16977,6 @@ fi = Piknik-pöytä fr = Table de pique-nique he = קינקיפ ןחלוש - hi = पिकनिक मेज hu = Piknikasztal id = Meja piknik it = Tavolo da picnic @@ -17075,7 +17052,6 @@ fa = زمین بازی fi = Leikkikenttä fr = Aire de jeu - hi = खेल का मैदान hu = Játszótér id = Taman bermain it = Campo giochi @@ -17129,7 +17105,6 @@ fa = سونا fi = Sauna fr = Sauna - hi = सॉना hu = Szauna id = Sauna it = Sauna @@ -17409,7 +17384,6 @@ fa = گردشگری fi = Vesipuisto fr = Centre aquatique - hi = वाटर पार्क hu = Aquapark id = Taman air it = Parco acquatico @@ -17895,7 +17869,6 @@ fa = شیراب fi = Vesihana fr = Robinet d'eau - hi = पानी का नल hu = Vízcsap id = Keran Air it = Rubinetto dell'acqua @@ -17933,7 +17906,6 @@ fa = منبع اب fi = Vesitorni fr = Château d'eau - hi = पानी का टावर hu = Víztorony id = Menara air it = Cisterna per acqua @@ -19820,7 +19792,6 @@ fa = دفتر شرکت fi = Yhtiön toimisto fr = Bureaux d'entreprise - hi = कंपनी कार्यालय hu = Vállalati iroda id = Kantor perusahaan it = Ufficio aziendale @@ -19858,7 +19829,6 @@ fa = بنگاه معاملات ملکی fi = Kiinteistönvälittäjä fr = Agence immobilière - hi = संपत्ति एजेंट hu = Ingatlanügynök id = Agen ril estat it = Agenzia immobiliare @@ -19897,7 +19867,6 @@ fa = اداره دولتی fi = Viranomaistoimito fr = Administration publique - hi = सरकारी कार्यालय hu = Állami iroda id = Kantor pemerintah it = Ufficio governativo @@ -19935,7 +19904,6 @@ fa = دفتر بیمه fi = Vakuutuslaitos fr = Bureau d’assurance - hi = बीमा कार्यालय hu = Biztosítóiroda id = Kantor Asuransi it = Ufficio assicurazioni @@ -19973,7 +19941,6 @@ fa = دفتر وکالت fi = Lakitoimisto fr = Cabinet d'avocat - hi = वकील hu = Ügyvédi iroda id = Kantor pengacara it = Studio legale @@ -20051,7 +20018,6 @@ fa = اپراتور تلفن همراه fi = Matkapuhelinoperaattori fr = Opérateur mobile - hi = दूरसंचार कंपनी hu = Távközlési cég id = Operator seluler it = Operatore di telefonia mobile @@ -25302,7 +25268,6 @@ fi = Rautakauppa fr = Quincaillerie he = ןיינב ירמוחל תונח - hi = लौह वस्तुओं की दुकान hu = Barkácsüzlet it = Ferramenta ja = ホームセンター @@ -25733,7 +25698,6 @@ fa = فروشگاه fi = Elektroniikkakauppa fr = Magasin de téléphonie mobile - hi = सेल फोन की दुकान hu = Mobiltelefon üzlet id = Toko telepon it = Negozio di telefonia mobile @@ -26204,7 +26168,6 @@ fa = فروشگاه fi = Eläinkauppa fr = Animalerie - hi = पालतू जानवर की दुकान hu = Házikedvenc-üzlet id = Toko hewan it = Negozio di animali @@ -29528,7 +29491,6 @@ fa = اپارتمان fi = Loma-asunnot fr = Appart'hôtel - hi = अवकाश अपार्टमेंट hu = Apartmanok id = Apartemen it = Appartamento @@ -29841,7 +29803,6 @@ eu = Karabana gunea fi = Asuntovaunupaikka fr = Aire de camping-car - hi = कारवां स्थल hu = Karaván pihenő id = Lokasi perkemahan it = Area per campeggiatori @@ -29877,7 +29838,6 @@ fa = هتل fi = Mökki fr = Meublé de tourisme - hi = षाले hu = Turistaház it = Chalet ja = シャレー @@ -29912,7 +29872,6 @@ fa = گالری fi = Nähtävyydet fr = Galerie d'art - hi = आर्ट गैलरी hu = Túrizmus id = Pemandangan it = Galleria @@ -29950,7 +29909,6 @@ fa = هتل fi = Majatalo fr = Maison d'hôtes - hi = अतिथि गृह hu = Vendégház id = Wisma tamu it = Affittacamere @@ -30055,7 +30013,6 @@ fi = Turisti-informaatio fr = Informations touristiques he = מידע לתייר - hi = पर्यटक सूचना hu = Túrista információ id = Informasi turis it = Informazione @@ -30293,7 +30250,6 @@ et = Motell fa = هتل fi = Motelli - hi = मोटेल it = Motel ja = モーテル ko = 모텔 @@ -30359,7 +30315,6 @@ fa = مکان پیک نیک fi = Piknikpaikat fr = Terrain de pique-nique - hi = पिकनिक स्थल hu = Piknikező hely id = Lokasi piknik it = Area picnic @@ -30469,7 +30424,6 @@ fa = گردشگری fi = Näköalatasanne fr = Belvédère - hi = दृष्टिकोण hu = Kilátó id = Titik pandang it = Punto panoramico diff --git a/docs/INSTALL.md b/docs/INSTALL.md index 07abba06f2..2706fe40fd 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -116,7 +116,6 @@ sudo apt update && sudo apt install -y \ libfreetype-dev \ libglvnd-dev \ libgl1-mesa-dev \ - libharfbuzz-dev \ libicu-dev \ libqt6svg6-dev \ libqt6positioning6-plugins \ diff --git a/editor/editor_tests/config_loader_test.cpp b/editor/editor_tests/config_loader_test.cpp index a6a6a39082..b100b57bc9 100644 --- a/editor/editor_tests/config_loader_test.cpp +++ b/editor/editor_tests/config_loader_test.cpp @@ -20,6 +20,8 @@ void CheckGeneralTags(pugi::xml_document const & doc) TEST(!types.empty(), ()); auto const fields = doc.select_nodes("/omaps/editor/fields"); TEST(!fields.empty(), ()); + auto const preferred_types = doc.select_nodes("/omaps/editor/preferred_types"); + TEST(!preferred_types.empty(), ()); } UNIT_TEST(ConfigLoader_Base) diff --git a/feature_list/feature_list.cpp b/feature_list/feature_list.cpp index ad85839b8e..93a1d559bd 100644 --- a/feature_list/feature_list.cpp +++ b/feature_list/feature_list.cpp @@ -2,7 +2,6 @@ #include "search/search_quality/helpers.hpp" -#include "search/categories_cache.hpp" #include "search/engine.hpp" #include "search/locality_finder.hpp" #include "search/reverse_geocoder.hpp" @@ -15,6 +14,7 @@ #include "indexer/classificator_loader.hpp" #include "indexer/data_source.hpp" #include "indexer/feature.hpp" +#include "indexer/feature_processor.hpp" #include "indexer/ftypes_matcher.hpp" #include "indexer/map_object.hpp" #include "indexer/map_style_reader.hpp" diff --git a/generator/final_processor_country.cpp b/generator/final_processor_country.cpp index 51aa1eba8f..8c04a2695c 100644 --- a/generator/final_processor_country.cpp +++ b/generator/final_processor_country.cpp @@ -309,7 +309,7 @@ void CountryFinalProcessor::AddFakeNodes() void CountryFinalProcessor::DropProhibitedSpeedCameras() { - auto const speedCameraType = classif().GetTypeByPath({"highway", "speed_camera"}); + static auto const speedCameraType = classif().GetTypeByPath({"highway", "speed_camera"}); ForEachMwmTmp(m_temporaryMwmPath, [&](auto const & country, auto const & path) { if (!IsCountry(country)) diff --git a/indexer/feature.cpp b/indexer/feature.cpp index ccfc1e3152..6478dffb93 100644 --- a/indexer/feature.cpp +++ b/indexer/feature.cpp @@ -512,7 +512,7 @@ FeatureType::GeomStat FeatureType::GetOuterGeometryStats() PointsBufferT points; - for (size_t ind = 0; ind < scalesCount; ++ind) + for (int ind = 0; ind < scalesCount; ++ind) { uint32_t const scaleOffset = m_offsets.m_pts[ind]; if (IsRealGeomOffset(scaleOffset)) @@ -523,7 +523,7 @@ FeatureType::GeomStat FeatureType::GetOuterGeometryStats() ReaderSource src(m_loadInfo->GetGeometryReader(ind)); src.Skip(scaleOffset); - serial::GeometryCodingParams cp = m_loadInfo->GetGeometryCodingParams(static_cast(ind)); + serial::GeometryCodingParams cp = m_loadInfo->GetGeometryCodingParams(ind); cp.SetBasePoint(points[0]); serial::LoadOuterPath(src, cp, points); diff --git a/indexer/feature_utils.cpp b/indexer/feature_utils.cpp index c0c1617546..4165d10bb0 100644 --- a/indexer/feature_utils.cpp +++ b/indexer/feature_utils.cpp @@ -492,7 +492,6 @@ string FormatDrinkingWater(TypesHolder const & types) case ftraits::DrinkingWaterAvailability::Yes: return std::string{kDrinkingWaterYes}; } - UNREACHABLE(); } string FormatStars(uint8_t starsCount) diff --git a/iphone/CoreApi/CoreApi/Storage/MWMStorage.mm b/iphone/CoreApi/CoreApi/Storage/MWMStorage.mm index 01c846e713..16d7786754 100644 --- a/iphone/CoreApi/CoreApi/Storage/MWMStorage.mm +++ b/iphone/CoreApi/CoreApi/Storage/MWMStorage.mm @@ -3,8 +3,6 @@ #import "MWMMapUpdateInfo+Core.h" #include - -#include "storage/country_info_getter.hpp" #include "storage/storage_helpers.hpp" NSErrorDomain const kStorageErrorDomain = @"com.mapswithme.storage"; diff --git a/iphone/Maps/Classes/Components/MWMNavigationController.m b/iphone/Maps/Classes/Components/MWMNavigationController.m index 7e67c46c4a..446d61c511 100644 --- a/iphone/Maps/Classes/Components/MWMNavigationController.m +++ b/iphone/Maps/Classes/Components/MWMNavigationController.m @@ -43,7 +43,10 @@ - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated { UIViewController * topVC = self.viewControllers.lastObject; - [self setupNavigationBackButtonItemFor:topVC]; + topVC.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" + style:UIBarButtonItemStylePlain + target:nil + action:nil]; [super pushViewController:viewController animated:animated]; } @@ -51,7 +54,11 @@ [viewControllers enumerateObjectsUsingBlock:^(UIViewController * vc, NSUInteger idx, BOOL * stop) { if (idx == viewControllers.count - 1) return; - [self setupNavigationBackButtonItemFor:vc]; + + vc.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" + style:UIBarButtonItemStylePlain + target:nil + action:nil]; }]; [super setViewControllers:viewControllers animated:animated]; } @@ -68,15 +75,4 @@ return YES; } -- (void)setupNavigationBackButtonItemFor:(UIViewController *)viewController { - if (@available(iOS 14.0, *)) { - viewController.navigationItem.backButtonDisplayMode = UINavigationItemBackButtonDisplayModeMinimal; - } else { - viewController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" - style:UIBarButtonItemStylePlain - target:nil - action:nil]; - } -} - @end diff --git a/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift b/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift index 7e0bfba4a7..44ebd057eb 100644 --- a/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift +++ b/iphone/Maps/Classes/CustomAlert/Toast/Toast.swift @@ -7,11 +7,20 @@ final class Toast: NSObject { } private var blurView = UIVisualEffectView(effect: UIBlurEffect(style: .dark)) + private var timer: Timer? + + private static var toasts: [Toast] = [] @objc static func toast(withText text: String) -> Toast { - return Toast(text) + let toast = Toast(text) + toasts.append(toast) + return toast } - + + @objc static func hideAll() { + toasts.forEach { $0.hide() } + } + private init(_ text: String) { blurView.layer.setCorner(radius: 8) blurView.clipsToBounds = true @@ -34,6 +43,10 @@ final class Toast: NSObject { label.bottomAnchor.constraint(equalTo: blurView.contentView.bottomAnchor, constant: -8) ]) } + + deinit { + timer?.invalidate() + } @objc func show() { show(in: UIApplication.shared.keyWindow, alignment: .bottom) @@ -72,15 +85,20 @@ final class Toast: NSObject { self.blurView.alpha = 1 } - Timer.scheduledTimer(timeInterval: 3, - target: self, - selector: #selector(onTimer), - userInfo: nil, - repeats: false) + timer = Timer.scheduledTimer(timeInterval: 3, + target: self, + selector: #selector(hide), + userInfo: nil, + repeats: false) } - - @objc private func onTimer() { - UIView.animate(withDuration: kDefaultAnimationDuration, - animations: { self.blurView.alpha = 0 }) { [self] _ in self.blurView.removeFromSuperview() } + + @objc func hide() { + timer?.invalidate() + if self.blurView.superview != nil { + UIView.animate(withDuration: kDefaultAnimationDuration, + animations: { self.blurView.alpha = 0 }) { [self] _ in + self.blurView.removeFromSuperview() + Self.toasts.removeAll(where: { $0 === self }) } + } } } diff --git a/iphone/Maps/Classes/CustomViews/MapViewControls/TrafficButton/MWMTrafficButtonViewController.mm b/iphone/Maps/Classes/CustomViews/MapViewControls/TrafficButton/MWMTrafficButtonViewController.mm index 96a4b76e1d..007a7c9949 100644 --- a/iphone/Maps/Classes/CustomViews/MapViewControls/TrafficButton/MWMTrafficButtonViewController.mm +++ b/iphone/Maps/Classes/CustomViews/MapViewControls/TrafficButton/MWMTrafficButtonViewController.mm @@ -63,6 +63,11 @@ NSArray *imagesWithName(NSString *name) { [StyleManager.shared removeListener:self]; } +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + [MWMToast hideAll]; +} + - (void)configLayout { UIView *sv = self.view; UIView *ov = sv.superview; diff --git a/iphone/Maps/Classes/CustomViews/NavigationDashboard/MWMNavigationDashboardManager+Entity.mm b/iphone/Maps/Classes/CustomViews/NavigationDashboard/MWMNavigationDashboardManager+Entity.mm index 30be071bcd..578942314d 100644 --- a/iphone/Maps/Classes/CustomViews/NavigationDashboard/MWMNavigationDashboardManager+Entity.mm +++ b/iphone/Maps/Classes/CustomViews/NavigationDashboard/MWMNavigationDashboardManager+Entity.mm @@ -237,9 +237,6 @@ NSArray *buildRouteTransitSteps(NSArrayNSStringPluralRuleType NSStringFormatValueTypeKey d - one - %d वस्तु other - %d वस्तुएं + %d objects diff --git a/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings index 5d615c130a..c2a082a0b1 100644 --- a/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/hu.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Letöltése sikertelen"; +"about_menu_title" = "Az Organic Mapsről"; + /* Text in About screen */ "about_headline" = "Ingyenes mindenkinek, szeretettel készítve"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Új csoport létrehozása"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Könyvjelző színe"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Könyvjelzőcsoport neve"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Organic Maps verzió: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "OpenStreetMap adatok: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Csoportok"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Újdonságok"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Értékeld az alkalmazást"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Adományozz, hogy együtt építsük a legjobb térképeket!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Támogassa a projektet"; + /* Button in the main Help dialog */ "copyright" = "Szerzői jog"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Szín megváltoztatása"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Térkép"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings index 9d277b623a..caebdc965c 100644 --- a/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/id.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Sedang Mengunduh telah gagal"; +"about_menu_title" = "Tentang Organic Maps"; + /* Text in About screen */ "about_headline" = "Gratis untuk semua orang, dibuat dengan cinta"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Tambahkan Set baru"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Warna Penanda"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Nama Set Penanda"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Versi Organic Maps: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "Data OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Jalur"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Berita"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Beri nilai aplikasi"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Donasi untuk membangun peta terbaik bersama-sama!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Mendukung proyek"; + /* Button in the main Help dialog */ "copyright" = "Hak cipta"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Mengubah warna"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Peta"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings index a7771d1362..dab33c2fff 100644 --- a/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/it.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Il download non è riuscito"; +"about_menu_title" = "Informazioni su Organic Maps"; + /* Text in About screen */ "about_headline" = "Gratis per tutti, fatto con amore"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Aggiungi nuovo elenco"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Colore Luogo preferito"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Nome dell'elenco"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Versione di Organic Maps: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "Dati OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Percorsi"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Notizia"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Vota l'app"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Fai una donazione per costruire insieme le migliori mappe!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Sostieni il progetto"; + /* Button in the main Help dialog */ "copyright" = "Copyright"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Cambia colore"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Mappa"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings index 042bde505e..b136d99d81 100644 --- a/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ja.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "のダウンロードに失敗しました"; +"about_menu_title" = "Organic Mapsについて"; + /* Text in About screen */ "about_headline" = "すべての人のために無料で、愛を込めて作られています"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "新しいセットを作成"; +/* Bookmark Color dialog title */ +"bookmark_color" = "ブックマーク表示色"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "ブックマークセット名称"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Organic Mapsバージョン: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "OpenStreetMapデータ:%@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "トラック"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "ニュース"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "アプリを評価"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "寄付して最高の地図を一緒に作ろう!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "プロジェクトを支援する"; + /* Button in the main Help dialog */ "copyright" = "著作権"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "色を変える"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "地図"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings index 20aa6442ef..d3b1435b76 100644 --- a/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ko.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "다운로드에 실패하였습니다"; +"about_menu_title" = "Organic Maps 정보"; + /* Text in About screen */ "about_headline" = "사랑으로 만든 모든 사람에게 무료"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "새로운 목록 추가"; +/* Bookmark Color dialog title */ +"bookmark_color" = "색상 즐겨찾기에 추가"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "집합 이름을 즐겨찾기에 추가"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Organic Maps 버전: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "OpenStreetMap 데이터: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "트랙"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "소식"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "앱 평가"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "기부하여 최고의 지도를 함께 만들어 보세요!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "프로젝트 지원"; + /* Button in the main Help dialog */ "copyright" = "저작권"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "색상 변경"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "지도"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings index 25784c96fc..08aed1e45b 100644 --- a/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/mr.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "डाउनलोड अयशस्वी"; +"about_menu_title" = "Organic Maps बद्दल"; + /* Text in About screen */ "about_headline" = "Free for everyone, made with love"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "नवीन यादी जोडा"; +/* Bookmark Color dialog title */ +"bookmark_color" = "खूणपत्र रंग"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "खूणपत्र यादीचे नाव"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Organic Maps आवृत्ती: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "OpenStreetMap डेटा: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "ट्रॅक"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "बातम्या"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "ऍप मानांकित करा"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "एकत्र सर्वोत्तम नकाशे तयार करण्यासाठी देणगी द्या!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "प्रकल्पाला पाठठिंबा द्या"; + /* Button in the main Help dialog */ "copyright" = "प्रकाशन अधिकार (कॉपीराईट)"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "रंग बदला"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "नकाशा"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings index 2cd4f39702..eef06a9d0b 100644 --- a/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/nb.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Laster ned mislyktes"; +"about_menu_title" = "Om Organic Maps"; + /* Text in About screen */ "about_headline" = "Gratis for alle, laget med kjærlighet"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Legg til nytt sett"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Bokmerk farge"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Bokmerk settnavn"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Organic Maps versjon: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "OpenStreetMap-data: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Ruter"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Nyheter"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Ranger appen"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Doner for å bygge de beste kartene sammen!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Støtt prosjektet"; + /* Button in the main Help dialog */ "copyright" = "Opphavsrett"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Endre farge"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Kart"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings index 9f059adf6c..e690225046 100644 --- a/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/nl.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Downloaden is mislukt"; +"about_menu_title" = "Over Organic Maps"; + /* Text in About screen */ "about_headline" = "Gratis voor iedereen, met liefde gemaakt"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Voeg nieuwe groep toe"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Bladwijzerkleur"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Naam van bladwijzergroep"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Organic Maps versie: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "OpenStreetMap-gegevens: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Tracks"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Nieuws"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "App beoordelen"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Doneer om samen de beste kaarten te bouwen!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Steun het project"; + /* Button in the main Help dialog */ "copyright" = "Auteursrechten"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Kleur veranderen"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Kaart"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings index 8fa9e5acbe..78456680c4 100644 --- a/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/pl.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Nie udało się pobrać"; +"about_menu_title" = "O aplikacji Organic Maps"; + /* Text in About screen */ "about_headline" = "Darmowa dla wszystkich, wykonana z miłością"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Dodaj nowy zestaw"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Kolor zakładki"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Nazwa zestawu zakładek"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Wersja Organic Maps: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "Dane OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Trasy"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Wiadomości"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Oceń aplikację"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Przekaż darowiznę, aby wspólnie tworzyć najlepsze mapy!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Wesprzyj projekt"; + /* Button in the main Help dialog */ "copyright" = "Prawa autorskie"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Zmień kolor"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Mapa"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings index 32dd377bbb..de7034ad23 100644 --- a/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/pt-BR.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "O download falhou"; +"about_menu_title" = "Sobre o Organic Maps"; + /* Text in About screen */ "about_headline" = "Grátis para todos, feito com amor"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Adicionar novo conjunto"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Cor do favorito"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Nome do conjunto de favoritos"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Versão do Organic Maps: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "Dados do OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Percursos"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Notícias"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Avaliar o aplicativo"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Doe para criarmos juntos os melhores mapas!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Apoie o projeto"; + /* Button in the main Help dialog */ "copyright" = "Direitos autorais"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Mudança de cor"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Mapa"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings index 9a90d3fa3d..dcd2a979f1 100644 --- a/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/pt.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "O descarregamento falhou"; +"about_menu_title" = "Sobre o Organic Maps"; + /* Text in About screen */ "about_headline" = "Grátis para todos, feito com amor"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Adicionar conjunto novo"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Cor do favorito"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Nome do conjunto de favoritos"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Versão do Organic Maps: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "Dados do OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Percursos"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Notícias"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Avaliar a aplicação"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Faz um donativo para construirmos juntos os melhores mapas!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Apoie o projeto"; + /* Button in the main Help dialog */ "copyright" = "Direitos de autor"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Muda de cor"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Mapa"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings index 4dc5ba6755..9642805a31 100644 --- a/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ro.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Descărcarea a eșuat"; +"about_menu_title" = "Despre Organic Maps"; + /* Text in About screen */ "about_headline" = "Gratuit pentru toată lumea, făcut cu dragoste"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Adaugă o listă nouă"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Culoare loc preferat"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Denumirea listei"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Versiunea Organic Maps: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "Date OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Trasee"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Știri"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Evaluează aplicația"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Donează pentru a construi împreună cele mai bune hărți!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Susține proiectul"; + /* Button in the main Help dialog */ "copyright" = "Drepturi de autor"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Schimbă culoarea"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Hartă"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings index 84cd4b7012..46ab88ec76 100644 --- a/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/ru.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Ошибка загрузки"; +"about_menu_title" = "Про Organic Maps"; + /* Text in About screen */ "about_headline" = "Бесплатно для всех, сделано с любовью"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Добавить список"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Цвет метки"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Название списка меток"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Версия Organic Maps: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "Данные OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Треки"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Новости"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Оценить приложение"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Поддержать деньгами, чтобы вместе создавать лучшие карты!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Помочь проекту"; + /* Button in the main Help dialog */ "copyright" = "Копирайт"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Изменить цвет"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Карта"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings index 7421d31956..7875e5334d 100644 --- a/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/sk.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Sťahovanie zlyhalo"; +"about_menu_title" = "O aplikácii Organic Maps"; + /* Text in About screen */ "about_headline" = "Zadarmo pre každého, vyrobené s láskou"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Pridať novú skupinu záložiek"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Farba záložky"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Meno záložky"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Verzia Organic Maps: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "Údaje OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Stopy"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Správy"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Ohodnotiť aplikáciu"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Darujte, aby sme spoločne vytvorili tie najlepšie mapy!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Podporte projekt"; + /* Button in the main Help dialog */ "copyright" = "Autorské práva"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Zmena farby"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Mapa"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings index da61d0c3b5..0c48ab5e75 100644 --- a/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/sv.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Downloading har misslyckats"; +"about_menu_title" = "Om Organic Maps"; + /* Text in About screen */ "about_headline" = "Gratis för alla, gjorda med kärlek"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Lägg till ny samling"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Bokmärkesfärg"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Bokmärkessamlingens namn"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Organic Maps version: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "OpenStreetMap-data: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Rutter"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Nyheter"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Ge appen ett betyg"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Donera för att bygga de bästa kartorna tillsammans!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Stöd projektet"; + /* Button in the main Help dialog */ "copyright" = "Copyright"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Ändra färg"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Karta"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings index 5363d2642d..2bc6090cbd 100644 --- a/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/sw.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Download has failed"; +"about_menu_title" = "About Organic Maps"; + /* Text in About screen */ "about_headline" = "Bure kwa kila mtu, iliyotengenezwa na upendo"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Add a New List"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Bookmark Color"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Bookmark List Name"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Toleo la Organic Maps: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "Data ya OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Tracks"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Habari"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Rate the app"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Changia ili kuunda ramani bora pamoja!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Saidia mradi"; + /* Button in the main Help dialog */ "copyright" = "Copyright"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Badilisha rangi"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Map"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings index 4bd41f5739..99d32aad0d 100644 --- a/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/th.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "การดาวน์โหลดล้มเหลว"; +"about_menu_title" = "เกี่ยวกับ Organic Maps"; + /* Text in About screen */ "about_headline" = "ฟรีสำหรับทุกคนทำด้วยความรัก"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "เพิ่มชุดใหม่"; +/* Bookmark Color dialog title */ +"bookmark_color" = "สีของบุ๊กมาร์ก"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "ชื่อของชุดบุ๊กมาร์ก"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "เวอร์ชัน Organic Maps: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "ข้อมูล OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "การติดตาม"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "ข่าว"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "ให้คะแนนแอป"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "บริจาคเพื่อสร้างแผนที่ที่ดีที่สุดด้วยกัน!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "สนับสนุนโครงการ"; + /* Button in the main Help dialog */ "copyright" = "ลิขสิทธิ์"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "เปลี่ยนสี"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "แผนที่"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings index 75ed573ef1..b9c274bec9 100644 --- a/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/tr.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "İndirme başarısız oldu"; +"about_menu_title" = "Organic Maps Hakkında"; + /* Text in About screen */ "about_headline" = "Sevgiyle yapılmış, herkes için ücretsiz harita"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Yeni Liste Ekle"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Yer İmi Rengi"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Yer İmi Listesi Adı"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Organic Maps sürüm: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "OpenStreetMap verileri: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Yol Kayıtları"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Haberler"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Uygulamayı değerlendir"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Birlikte en iyi haritaları oluşturmak için bağış yapın!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Bu projeyi destekle"; + /* Button in the main Help dialog */ "copyright" = "Telif hakkı"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Renk değiştir"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Harita"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings index 8cb2c6e530..f739973724 100644 --- a/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/uk.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Помилка завантаження"; +"about_menu_title" = "Про Organic Maps"; + /* Text in About screen */ "about_headline" = "Безкоштовно для всіх, зроблене з любов'ю"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Додати список"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Колір мiтки"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Назва списка мiток"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Версія Organic Maps: %@."; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "Дані OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Маршрути"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Новини"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Оцінити застосунок"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Пожертвуйте, щоб разом створювати найкращі мапи!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Підтримайте проект"; + /* Button in the main Help dialog */ "copyright" = "Копірайт"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Змінити колір"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Мапа"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings index a241001e62..55f0171c6d 100644 --- a/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/vi.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "Tải xuống đã thất bại"; +"about_menu_title" = "Giới thiệu về Organic Maps"; + /* Text in About screen */ "about_headline" = "Miễn phí cho mọi người, được làm bằng tình yêu"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "Thêm Bộ Mới"; +/* Bookmark Color dialog title */ +"bookmark_color" = "Đánh dấu Màu sắc"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "Đánh dấu Tên Bộ"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Phiên bản Organic Maps: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "Dữ liệu OpenStreetMap: %@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "Dấu vết"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "Tin tức"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "Cho điểm ứng dụng"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "Hãy quyên góp để cùng nhau xây dựng những bản đồ tốt nhất!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "Hỗ trợ dự án"; + /* Button in the main Help dialog */ "copyright" = "Bản quyền"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "Thay đổi màu sắc"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "Bản đồ"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings index 8c5d55647b..dd56ba7626 100644 --- a/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/zh-Hans.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "下载失败"; +"about_menu_title" = "关于 Organic Maps"; + /* Text in About screen */ "about_headline" = "对每个人都免费,用爱制成"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "添加新的集合"; +/* Bookmark Color dialog title */ +"bookmark_color" = "书签颜色"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "书签集名称"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "Organic Maps 版本: %@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "OpenStreetMap 数据:%@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "轨迹"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "新闻"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "OpenStreetMap"; + /* Text in menu */ "rate_the_app" = "为我们评分"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "捐赠,共同打造最好的地图!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "支持项目"; + /* Button in the main Help dialog */ "copyright" = "版权"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "改变颜色"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "地图"; - /********** Types **********/ diff --git a/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings index 9e5092c252..3007bd2214 100644 --- a/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/zh-Hant.lproj/Localizable.strings @@ -50,6 +50,8 @@ /* Message to display at the center of the screen when the country download has failed */ "country_status_download_failed" = "下載失敗"; +"about_menu_title" = "關於 Organic Maps"; + /* Text in About screen */ "about_headline" = "對每個人都免費,用愛製成"; @@ -72,6 +74,9 @@ /* "Add new bookmark list" dialog title */ "add_new_set" = "新增收藏夾"; +/* Bookmark Color dialog title */ +"bookmark_color" = "書籤顏色"; + /* Add Bookmark list dialog - hint when the list name is empty */ "bookmark_set_name" = "收藏夾名稱"; @@ -212,6 +217,9 @@ /* Prints version number in About dialog */ "version" = "有機地圖版本:%@"; +/* Data version in «About» screen, %@ is replaced by a local, human readable date. */ +"data_version" = "OpenStreetMap 數據:%@"; + /* Title for tracks category in bookmarks manager */ "tracks_title" = "軌跡"; @@ -289,6 +297,18 @@ /* Text in About menu, opens Organic Maps news website */ "news" = "新聞"; +/* Text in menu */ +"github" = "GitHub"; + +/* Text in menu */ +"telegram" = "Telegram"; + +/* Text in menu */ +"matrix" = "[Matrix]"; + +/* Text in menu */ +"mastodon" = "Mastodon"; + /* Text in menu */ "facebook" = "Facebook"; @@ -301,6 +321,9 @@ /* Text in the editor */ "vk" = "VK"; +/* Text in menu */ +"openstreetmap" = "開放街圖"; + /* Text in menu */ "rate_the_app" = "為我們評分"; @@ -316,6 +339,9 @@ /* Tex label above the Donate button */ "donate_description" = "捐款共同打造最好的地圖!"; +/* Button in the main Help dialog */ +"how_to_support_us" = "支持項目"; + /* Button in the main Help dialog */ "copyright" = "版權"; @@ -1257,9 +1283,6 @@ /* Text for the editing the Track's color button. */ "change_color" = "換顏色"; -/* Main screen title "Map" displayed in the navigation back button's menu. */ -"map" = "地圖"; - /********** Types **********/ diff --git a/map/bookmark_manager.cpp b/map/bookmark_manager.cpp index acbe0d4c39..617ec8c9a6 100644 --- a/map/bookmark_manager.cpp +++ b/map/bookmark_manager.cpp @@ -14,8 +14,6 @@ #include "indexer/classificator.hpp" -#include "geometry/mercator.hpp" - #include "coding/file_writer.hpp" #include "coding/internal/file_data.hpp" #include "coding/serdes_json.hpp" diff --git a/platform/languages.hpp b/platform/languages.hpp index 8b7544bf17..7d579ffcd3 100644 --- a/platform/languages.hpp +++ b/platform/languages.hpp @@ -11,7 +11,7 @@ namespace routing::turns::sound { -std::array, 39> const kLanguageList = +std::array, 38> const kLanguageList = {{ {"en", "English"}, {"id", "Bahasa Indonesia"}, @@ -41,7 +41,6 @@ std::array, 39> const kLanguageList = {"el", "Ελληνικά"}, {"be", "Беларуская"}, {"ru", "Русский"}, - {"sr", "Српски"}, {"uk", "Українська"}, {"ar", "العربية"}, {"fa", "فارسی"}, diff --git a/platform/settings.cpp b/platform/settings.cpp index 6d09c99917..abd908c15b 100644 --- a/platform/settings.cpp +++ b/platform/settings.cpp @@ -21,7 +21,6 @@ namespace settings using namespace std; char const * kMeasurementUnits = "Units"; -char const * kDeveloperMode = "DeveloperMode"; StringStorage::StringStorage() : StringStorageBase(GetPlatform().SettingsPathForFile(SETTINGS_FILE_NAME)) {} diff --git a/platform/settings.hpp b/platform/settings.hpp index 9f9b9cd44c..0a225ceb65 100644 --- a/platform/settings.hpp +++ b/platform/settings.hpp @@ -11,8 +11,6 @@ namespace settings /// Metric or Imperial. extern char const * kMeasurementUnits; -extern char const * kDeveloperMode; - template bool FromString(std::string const & str, T & outValue); diff --git a/qt/CMakeLists.txt b/qt/CMakeLists.txt index f868513d7d..5bc9fc6d18 100644 --- a/qt/CMakeLists.txt +++ b/qt/CMakeLists.txt @@ -36,10 +36,8 @@ set(SRC mwms_borders_selection.hpp osm_auth_dialog.cpp osm_auth_dialog.hpp - place_page_dialog_developer.cpp - place_page_dialog_developer.hpp - place_page_dialog_user.cpp - place_page_dialog_user.hpp + place_page_dialog.cpp + place_page_dialog.hpp preferences_dialog.cpp preferences_dialog.hpp popup_menu_holder.cpp diff --git a/qt/draw_widget.cpp b/qt/draw_widget.cpp index e765f5595d..bec302854b 100644 --- a/qt/draw_widget.cpp +++ b/qt/draw_widget.cpp @@ -2,8 +2,7 @@ #include "qt/create_feature_dialog.hpp" #include "qt/editor_dialog.hpp" -#include "qt/place_page_dialog_developer.hpp" -#include "qt/place_page_dialog_user.hpp" +#include "qt/place_page_dialog.hpp" #include "qt/qt_common/helpers.hpp" #include "qt/routing_settings_dialog.hpp" #include "qt/screenshoter.hpp" @@ -650,14 +649,8 @@ void DrawWidget::ShowPlacePage() address = m_framework.GetAddressAtPoint(info.GetMercator()); } - std::unique_ptr placePageDialog = nullptr; - bool developerMode; - if (settings::Get(settings::kDeveloperMode, developerMode) && developerMode) - placePageDialog = std::make_unique(this, info, address); - else - placePageDialog = std::make_unique(this, info, address); - - if (placePageDialog->exec() == QDialog::Accepted) + PlacePageDialog dlg(this, info, address); + if (dlg.exec() == QDialog::Accepted) { osm::EditableMapObject emo; if (m_framework.GetEditableMapObject(info.GetID(), emo)) diff --git a/qt/main.cpp b/qt/main.cpp index 87d04d6def..17766fc4d3 100644 --- a/qt/main.cpp +++ b/qt/main.cpp @@ -148,16 +148,6 @@ int main(int argc, char * argv[]) QApplication::setApplicationName("Organic Maps"); #endif - -#ifdef DEBUG - static bool constexpr developerMode = true; -#else - static bool constexpr developerMode = false; -#endif - bool outvalue; - if (!settings::Get(settings::kDeveloperMode, outvalue)) - settings::Set(settings::kDeveloperMode, developerMode); - // Display EULA if needed. char const * settingsEULA = "EulaAccepted"; bool eulaAccepted = false; diff --git a/qt/place_page_dialog_developer.cpp b/qt/place_page_dialog.cpp similarity index 90% rename from qt/place_page_dialog_developer.cpp rename to qt/place_page_dialog.cpp index 7403d9ff9e..ef5afd1e9b 100644 --- a/qt/place_page_dialog_developer.cpp +++ b/qt/place_page_dialog.cpp @@ -1,4 +1,4 @@ -#include "qt/place_page_dialog_developer.hpp" +#include "qt/place_page_dialog.hpp" #include "qt/qt_common/text_dialog.hpp" @@ -12,8 +12,8 @@ #include -PlacePageDialogDeveloper::PlacePageDialogDeveloper(QWidget * parent, place_page::Info const & info, - search::ReverseGeocoder::Address const & address) +PlacePageDialog::PlacePageDialog(QWidget * parent, place_page::Info const & info, + search::ReverseGeocoder::Address const & address) : QDialog(parent) { QGridLayout * grid = new QGridLayout(); @@ -86,13 +86,13 @@ PlacePageDialogDeveloper::PlacePageDialogDeveloper(QWidget * parent, place_page: QDialogButtonBox * dbb = new QDialogButtonBox(); QPushButton * closeButton = new QPushButton("Close"); closeButton->setDefault(true); - connect(closeButton, &QAbstractButton::clicked, this, &PlacePageDialogDeveloper::OnClose); + connect(closeButton, &QAbstractButton::clicked, this, &PlacePageDialog::OnClose); dbb->addButton(closeButton, QDialogButtonBox::RejectRole); if (info.ShouldShowEditPlace()) { QPushButton * editButton = new QPushButton("Edit Place"); - connect(editButton, &QAbstractButton::clicked, this, &PlacePageDialogDeveloper::OnEdit); + connect(editButton, &QAbstractButton::clicked, this, &PlacePageDialog::OnEdit); dbb->addButton(editButton, QDialogButtonBox::AcceptRole); } @@ -137,5 +137,5 @@ PlacePageDialogDeveloper::PlacePageDialogDeveloper(QWidget * parent, place_page: setWindowTitle(ppTitle.c_str()); } -void PlacePageDialogDeveloper::OnClose() { reject(); } -void PlacePageDialogDeveloper::OnEdit() { accept(); } +void PlacePageDialog::OnClose() { reject(); } +void PlacePageDialog::OnEdit() { accept(); } diff --git a/qt/place_page_dialog_user.hpp b/qt/place_page_dialog.hpp similarity index 70% rename from qt/place_page_dialog_user.hpp rename to qt/place_page_dialog.hpp index 8dfe2f23f5..4f2470fd5a 100644 --- a/qt/place_page_dialog_user.hpp +++ b/qt/place_page_dialog.hpp @@ -9,11 +9,11 @@ namespace place_page class Info; } -class PlacePageDialogUser : public QDialog +class PlacePageDialog : public QDialog { Q_OBJECT public: - PlacePageDialogUser(QWidget * parent, place_page::Info const & info, + PlacePageDialog(QWidget * parent, place_page::Info const & info, search::ReverseGeocoder::Address const & address); private slots: diff --git a/qt/place_page_dialog_developer.hpp b/qt/place_page_dialog_developer.hpp deleted file mode 100644 index 5ff05c5a56..0000000000 --- a/qt/place_page_dialog_developer.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -#include "search/reverse_geocoder.hpp" - -#include - -namespace place_page -{ -class Info; -} - -class PlacePageDialogDeveloper : public QDialog -{ - Q_OBJECT -public: - PlacePageDialogDeveloper(QWidget * parent, place_page::Info const & info, - search::ReverseGeocoder::Address const & address); - -private slots: - void OnClose(); - void OnEdit(); -}; diff --git a/qt/place_page_dialog_user.cpp b/qt/place_page_dialog_user.cpp deleted file mode 100644 index 2ac132d756..0000000000 --- a/qt/place_page_dialog_user.cpp +++ /dev/null @@ -1,246 +0,0 @@ -#include "qt/place_page_dialog_user.hpp" - -#include "qt/qt_common/text_dialog.hpp" - -#include "map/place_page_info.hpp" -#include "indexer/validate_and_format_contacts.hpp" -#include "platform/settings.hpp" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -namespace -{ -static int constexpr kMaxLengthOfPlacePageDescription = 500; -static int constexpr kMinWidthOfShortDescription = 390; - -std::string_view stripSchemeFromURI(std::string_view uri) { - for (std::string_view prefix : {"https://", "http://"}) - { - if (strings::StartsWith(uri, prefix)) - return uri.substr(prefix.size()); - } - return uri; -} -} // namespace - -class QHLine : public QFrame -{ -public: - QHLine(QWidget * parent = nullptr) : QFrame(parent) - { - setFrameShape(QFrame::HLine); - setFrameShadow(QFrame::Sunken); - } -}; - -PlacePageDialogUser::PlacePageDialogUser(QWidget * parent, place_page::Info const & info, - search::ReverseGeocoder::Address const & address) - : QDialog(parent) -{ - auto const & title = info.GetTitle(); - - QVBoxLayout * layout = new QVBoxLayout(); - { - QVBoxLayout * header = new QVBoxLayout(); - - if (!title.empty()) - header->addWidget(new QLabel(QString::fromStdString("

" + title + "

"))); - - if (auto subTitle = info.GetSubtitle(); !subTitle.empty()) - header->addWidget(new QLabel(QString::fromStdString(subTitle))); - - if (auto addressFormatted = address.FormatAddress(); !addressFormatted.empty()) - header->addWidget(new QLabel(QString::fromStdString(addressFormatted))); - - layout->addLayout(header); - } - - { - QHLine * line = new QHLine(); - layout->addWidget(line); - } - - { - QGridLayout * data = new QGridLayout(); - - int row = 0; - - auto const addEntry = [data, &row](std::string const & key, std::string const & value, bool isLink = false) - { - data->addWidget(new QLabel(QString::fromStdString(key)), row, 0); - QLabel * label = new QLabel(QString::fromStdString(value)); - label->setTextInteractionFlags(Qt::TextSelectableByMouse); - if (isLink) - { - label->setOpenExternalLinks(true); - label->setTextInteractionFlags(Qt::TextBrowserInteraction); - label->setText(QString::fromStdString("" + value + "")); - } - data->addWidget(label, row++, 1); - return label; - }; - - if (info.IsBookmark()) - addEntry("Bookmark", "Yes"); - - - // Wikipedia fragment - if (auto const & wikipedia = info.GetMetadata(feature::Metadata::EType::FMD_WIKIPEDIA); !wikipedia.empty()) - { - QLabel * name = new QLabel("Wikipedia"); - name->setOpenExternalLinks(true); - name->setTextInteractionFlags(Qt::TextBrowserInteraction); - name->setText(QString::fromStdString("Wikipedia")); - data->addWidget(name, row++, 0); - } - - // Description - if (auto description = info.GetWikiDescription(); !description.empty()) - { - QPushButton * wikiButton = new QPushButton("Wikipedia Description"); - wikiButton->setAutoDefault(false); - connect(wikiButton, &QAbstractButton::clicked, this, [this, description, title]() - { - auto textDialog = TextDialog(this, QString::fromStdString(description), QString::fromStdString("Wikipedia: " + title)); - textDialog.exec(); - }); - - data->addWidget(wikiButton, row++, 0, 1, 2, Qt::AlignLeft); - } - - // Opening hours fragment - if (auto openingHours = info.GetOpeningHours(); !openingHours.empty()) - addEntry("Opening hours", std::string(openingHours)); - - // Cuisine fragment - if (auto cuisines = info.FormatCuisines(); !cuisines.empty()) - addEntry("Cuisine", cuisines); - - // Entrance fragment - // TODO - - // Phone fragment - if (auto phoneNumber = info.GetMetadata(feature::Metadata::EType::FMD_PHONE_NUMBER); !phoneNumber.empty()) - { - data->addWidget(new QLabel("Phone"), row, 0); - - QLabel * value = new QLabel(QString::fromStdString("" + std::string(phoneNumber) + "")); - value->setOpenExternalLinks(true); - - data->addWidget(value, row++, 1); - } - - // Operator fragment - if (auto operatorName = info.GetMetadata(feature::Metadata::EType::FMD_OPERATOR); !operatorName.empty()) - addEntry("Operator", std::string(operatorName)); - - // Wifi fragment - if (info.HasWifi()) - addEntry("Wi-Fi", "Yes"); - - // Links fragment - if (auto website = info.GetMetadata(feature::Metadata::EType::FMD_WEBSITE); !website.empty()) - addEntry("Website", std::string(stripSchemeFromURI(website)), true); - - if (auto email = info.GetMetadata(feature::Metadata::EType::FMD_EMAIL); !email.empty()) - { - data->addWidget(new QLabel("Email"), row, 0); - - QLabel * value = new QLabel(QString::fromStdString("" + std::string(email) + "")); - value->setOpenExternalLinks(true); - - data->addWidget(value, row++, 1); - } - - // Social networks - { - auto addSocialNetworkWidget = [data, &info, &row](const std::string label, const feature::Metadata::EType eType) - { - if (auto item = info.GetMetadata(eType); !item.empty()) - { - data->addWidget(new QLabel(QString::fromStdString(label)), row, 0); - - QLabel * value = new QLabel(QString::fromStdString("" + std::string(item) + "")); - value->setOpenExternalLinks(true); - value->setTextInteractionFlags(Qt::TextBrowserInteraction); - - data->addWidget(value, row++, 1); - } - }; - - addSocialNetworkWidget("Facebook", feature::Metadata::EType::FMD_CONTACT_FACEBOOK); - addSocialNetworkWidget("Instagram", feature::Metadata::EType::FMD_CONTACT_INSTAGRAM); - addSocialNetworkWidget("Instagram", feature::Metadata::EType::FMD_CONTACT_INSTAGRAM); - addSocialNetworkWidget("Twitter", feature::Metadata::EType::FMD_CONTACT_TWITTER); - addSocialNetworkWidget("VK", feature::Metadata::EType::FMD_CONTACT_VK); - addSocialNetworkWidget("Line", feature::Metadata::EType::FMD_CONTACT_LINE); - } - - if (auto wikimedia_commons = info.GetMetadata(feature::Metadata::EType::FMD_WIKIMEDIA_COMMONS); !wikimedia_commons.empty()) - { - QLabel * value = new QLabel(QString::fromStdString("Wikimedia Commons")); - value->setOpenExternalLinks(true); - value->setTextInteractionFlags(Qt::TextBrowserInteraction); - - data->addWidget(value, row++, 0); - } - - // Level fragment - if (auto level = info.GetMetadata(feature::Metadata::EType::FMD_LEVEL); !level.empty()) - addEntry("Level", std::string(level)); - - // ATM fragment - if (info.HasAtm()) - addEntry("ATM", "Yes"); - - // Latlon fragment - - { - ms::LatLon const ll = info.GetLatLon(); - addEntry("Coordinates", strings::to_string_dac(ll.m_lat, 7) + ", " + strings::to_string_dac(ll.m_lon, 7)); - } - - layout->addLayout(data); - } - - { - QHLine * line = new QHLine(); - layout->addWidget(line); - } - - { - QDialogButtonBox * dbb = new QDialogButtonBox(); - - QPushButton * closeButton = new QPushButton("Close"); - closeButton->setDefault(true); - connect(closeButton, &QAbstractButton::clicked, this, &PlacePageDialogUser::OnClose); - dbb->addButton(closeButton, QDialogButtonBox::RejectRole); - - if (info.ShouldShowEditPlace()) - { - QPushButton * editButton = new QPushButton("Edit Place"); - connect(editButton, &QAbstractButton::clicked, this, &PlacePageDialogUser::OnEdit); - dbb->addButton(editButton, QDialogButtonBox::ActionRole); - } - - layout->addWidget(dbb, Qt::AlignCenter); - } - - setLayout(layout); - - auto const ppTitle = std::string("Place Page") + (info.IsBookmark() ? " (bookmarked)" : ""); - setWindowTitle(ppTitle.c_str()); -} - -void PlacePageDialogUser::OnClose() { reject(); } -void PlacePageDialogUser::OnEdit() { accept(); } diff --git a/qt/preferences_dialog.cpp b/qt/preferences_dialog.cpp index f887782347..69ce85a863 100644 --- a/qt/preferences_dialog.cpp +++ b/qt/preferences_dialog.cpp @@ -86,17 +86,6 @@ namespace qt }); } - QCheckBox * developerModeCheckBox = new QCheckBox("Developer Mode"); - { - bool developerMode; - if (settings::Get(settings::kDeveloperMode, developerMode) && developerMode) - developerModeCheckBox->setChecked(developerMode); - connect(developerModeCheckBox, &QCheckBox::stateChanged, [](int i) - { - settings::Set(settings::kDeveloperMode, static_cast(i)); - }); - } - #ifdef BUILD_DESIGNER QCheckBox * indexRegenCheckBox = new QCheckBox("Enable auto regeneration of geometry index"); { @@ -126,7 +115,6 @@ namespace qt QVBoxLayout * finalLayout = new QVBoxLayout(); finalLayout->addWidget(unitsRadioBox); finalLayout->addWidget(largeFontCheckBox); - finalLayout->addWidget(developerModeCheckBox); #ifdef BUILD_DESIGNER finalLayout->addWidget(indexRegenCheckBox); #endif diff --git a/qt/screenshoter.cpp b/qt/screenshoter.cpp index fa18785704..aa26b2d803 100644 --- a/qt/screenshoter.cpp +++ b/qt/screenshoter.cpp @@ -4,7 +4,6 @@ #include "map/bookmark_manager.hpp" #include "map/framework.hpp" -#include "storage/country_info_getter.hpp" #include "storage/storage.hpp" #include "platform/downloader_defines.hpp" diff --git a/search/CMakeLists.txt b/search/CMakeLists.txt index 94da4418a2..d4fa442104 100644 --- a/search/CMakeLists.txt +++ b/search/CMakeLists.txt @@ -153,8 +153,6 @@ set(SRC street_vicinity_loader.hpp streets_matcher.cpp streets_matcher.hpp - string_utils.cpp - string_utils.hpp suggest.cpp suggest.hpp token_range.hpp diff --git a/search/common.hpp b/search/common.hpp index 1e77994831..ff841c9e2a 100644 --- a/search/common.hpp +++ b/search/common.hpp @@ -6,6 +6,8 @@ #include "base/small_set.hpp" #include "base/string_utils.hpp" +#include + namespace search { // The prefix is stored separately. @@ -18,14 +20,4 @@ using Locales = base::SafeSmallSet; /// Upper bound for max count of tokens for indexing and scoring. size_t constexpr kMaxNumTokens = 32; size_t constexpr kMaxNumSuggests = 5; - -struct QueryString -{ - std::string m_query; ///< raw UTF8 query string - QueryTokens m_tokens; ///< splitted by UniChar tokens (not including last prefix) - strings::UniString m_prefix; ///< last prefix or empty (if query is ended with separator) - - bool IsEmpty() const { return m_tokens.empty() && m_prefix.empty(); } -}; - } // namespace search diff --git a/search/keyword_lang_matcher.hpp b/search/keyword_lang_matcher.hpp index cd94db87d2..8c0180f007 100644 --- a/search/keyword_lang_matcher.hpp +++ b/search/keyword_lang_matcher.hpp @@ -4,7 +4,10 @@ #include "base/string_utils.hpp" +#include +#include #include +#include #include namespace search @@ -50,9 +53,10 @@ public: } // Store references to keywords from source array of strings. - inline void SetKeywords(QueryString const & query) + inline void SetKeywords(strings::UniString const * keywords, size_t count, + strings::UniString const & prefix) { - m_keywordMatcher.SetKeywords(query); + m_keywordMatcher.SetKeywords(keywords, count, prefix); } // Returns the Score of the name (greater is better). diff --git a/search/keyword_matcher.cpp b/search/keyword_matcher.cpp index 41795a1307..2d4768a26a 100644 --- a/search/keyword_matcher.cpp +++ b/search/keyword_matcher.cpp @@ -10,10 +10,10 @@ #include #include -namespace search -{ using namespace std; +namespace search +{ KeywordMatcher::KeywordMatcher() { Clear(); @@ -25,10 +25,11 @@ void KeywordMatcher::Clear() m_prefix.clear(); } -void KeywordMatcher::SetKeywords(QueryString const & query) +void KeywordMatcher::SetKeywords(strings::UniString const * keywords, size_t count, + strings::UniString const & prefix) { - m_keywords.assign(query.m_tokens.begin(), query.m_tokens.end()); - m_prefix = query.m_prefix; + m_keywords.assign(keywords, keywords + count); + m_prefix = prefix; } KeywordMatcher::Score KeywordMatcher::CalcScore(string_view name) const diff --git a/search/keyword_matcher.hpp b/search/keyword_matcher.hpp index 8d06233863..6bc6b305da 100644 --- a/search/keyword_matcher.hpp +++ b/search/keyword_matcher.hpp @@ -4,6 +4,7 @@ #include "base/string_utils.hpp" +#include #include #include @@ -44,7 +45,8 @@ public: void Clear(); /// Internal copy of keywords is made. - void SetKeywords(QueryString const & query); + void SetKeywords(strings::UniString const * keywords, size_t count, + strings::UniString const & prefix); /// @return Score of the name (greater is better). //@{ diff --git a/search/processor.cpp b/search/processor.cpp index 462eb5d535..b8cda5c451 100644 --- a/search/processor.cpp +++ b/search/processor.cpp @@ -43,6 +43,7 @@ #include "base/string_utils.hpp" #include +#include #include #include "3party/open-location-code/openlocationcode.h" @@ -235,9 +236,9 @@ void Processor::SetQuery(string const & query, bool categorialRequest /* = false { LOG(LDEBUG, ("query:", query, "isCategorial:", categorialRequest)); - m_query.m_query = query; - m_query.m_tokens.clear(); - m_query.m_prefix.clear(); + m_query = query; + m_tokens.clear(); + m_prefix.clear(); // Following code splits input query by delimiters except hash tags // first, and then splits result tokens by hashtags. The goal is to @@ -245,27 +246,29 @@ void Processor::SetQuery(string const & query, bool categorialRequest /* = false // them as is. Delimiters delims; - auto normalizedQuery = NormalizeAndSimplifyString(query); - PreprocessBeforeTokenization(normalizedQuery); - SplitUniString(normalizedQuery, base::MakeBackInsertFunctor(m_query.m_tokens), delims); + { + auto normalizedQuery = NormalizeAndSimplifyString(query); + PreprocessBeforeTokenization(normalizedQuery); + SplitUniString(normalizedQuery, base::MakeBackInsertFunctor(m_tokens), delims); + } static_assert(kMaxNumTokens > 0, ""); size_t const maxTokensCount = kMaxNumTokens - 1; - if (m_query.m_tokens.size() > maxTokensCount) + if (m_tokens.size() > maxTokensCount) { - m_query.m_tokens.resize(maxTokensCount); + m_tokens.resize(maxTokensCount); } else { // Assign the last parsed token to prefix. - if (!m_query.m_tokens.empty() && !delims(normalizedQuery.back())) + if (!m_tokens.empty() && !delims(strings::LastUniChar(query))) { - m_query.m_prefix.swap(m_query.m_tokens.back()); - m_query.m_tokens.pop_back(); + m_prefix.swap(m_tokens.back()); + m_tokens.pop_back(); } } - QuerySliceOnRawStrings const tokenSlice(m_query.m_tokens, m_query.m_prefix); + QuerySliceOnRawStrings const tokenSlice(m_tokens, m_prefix); // Get preferred types to show in results. m_preferredTypes.clear(); @@ -284,12 +287,12 @@ void Processor::SetQuery(string const & query, bool categorialRequest /* = false } // Remove stopwords *after* FillCategories call (it makes exact tokens match). - RemoveStopWordsIfNeeded(m_query.m_tokens, m_query.m_prefix); + RemoveStopWordsIfNeeded(m_tokens, m_prefix); if (!m_isCategorialRequest) { // Assign tokens and prefix to scorer. - m_keywordsScorer.SetKeywords(m_query); + m_keywordsScorer.SetKeywords(m_tokens.data(), m_tokens.size(), m_prefix); ForEachCategoryType(tokenSlice, [&](size_t, uint32_t t) { m_preferredTypes.push_back(t); }); } @@ -409,7 +412,7 @@ bool Processor::IsCancelled() const void Processor::SearchByFeatureId() { // Create a copy of the query to trim it in-place. - string query(m_query.m_query); + string query(m_query); strings::Trim(query); if (strings::EatPrefix(query, "?fid")) @@ -606,7 +609,7 @@ void Processor::Search(SearchParams params) } else { - if (m_query.m_tokens.empty()) + if (m_tokens.empty()) m_ranker.SuggestStrings(); m_geocoder.GoEverywhere(); } @@ -643,7 +646,7 @@ bool Processor::SearchDebug() #ifdef DEBUG SearchByFeatureId(); - if (m_query.m_query == "?euri") + if (m_query == "?euri") { EmitWithMetadata(feature::Metadata::FMD_EXTERNAL_URI); return true; @@ -658,27 +661,27 @@ bool Processor::SearchCoordinates() buffer_vector results; double lat, lon; - if (MatchLatLonDegree(m_query.m_query, lat, lon)) + if (MatchLatLonDegree(m_query, lat, lon)) { coords_found = true; results.emplace_back(lat, lon); } - auto ll = MatchUTMCoords(m_query.m_query); + auto ll = MatchUTMCoords(m_query); if (ll) { coords_found = true; results.emplace_back(ll->m_lat, ll->m_lon); } - ll = MatchMGRSCoords(m_query.m_query); + ll = MatchMGRSCoords(m_query); if (ll) { coords_found = true; results.emplace_back(ll->m_lat, ll->m_lon); } - istringstream iss(m_query.m_query); + istringstream iss(m_query); string token; while (iss >> token) { @@ -711,7 +714,7 @@ bool Processor::SearchCoordinates() void Processor::SearchPlusCode() { // Create a copy of the query to trim it in-place. - string query(m_query.m_query); + string query(m_query); strings::Trim(query); if (openlocationcode::IsFull(query)) @@ -755,10 +758,10 @@ void Processor::SearchPlusCode() void Processor::SearchPostcode() { // Create a copy of the query to trim it in-place. - string_view query(m_query.m_query); + string_view query(m_query); strings::Trim(query); - if (!LooksLikePostcode(query, !m_query.m_prefix.empty())) + if (!LooksLikePostcode(query, !m_prefix.empty())) return; vector> infos; @@ -812,13 +815,12 @@ void Processor::SearchBookmarks(bookmarks::GroupId const & groupId) void Processor::InitParams(QueryParams & params) const { - /// @todo Prettify - params.Init(m_query.m_query, m_query.m_tokens.begin(), m_query.m_tokens.end(), m_query.m_prefix); + params.Init(m_query, m_tokens.begin(), m_tokens.end(), m_prefix); Classificator const & c = classif(); // Add names of categories (and synonyms). - QuerySliceOnRawStrings const tokenSlice(m_query.m_tokens, m_query.m_prefix); + QuerySliceOnRawStrings const tokenSlice(m_tokens, m_prefix); params.SetCategorialRequest(m_isCategorialRequest); if (m_isCategorialRequest) { @@ -932,6 +934,8 @@ void Processor::InitRanker(Geocoder::Params const & geocoderParams, params.m_needAddress = searchParams.m_needAddress; params.m_needHighlighting = searchParams.m_needHighlighting && !geocoderParams.IsCategorialRequest(); params.m_query = m_query; + params.m_tokens = m_tokens; + params.m_prefix = m_prefix; params.m_categoryLocales = GetCategoryLocales(); params.m_viewportSearch = viewportSearch; params.m_viewport = GetViewport(); diff --git a/search/processor.hpp b/search/processor.hpp index ff4d1416f4..b6f85e6e09 100644 --- a/search/processor.hpp +++ b/search/processor.hpp @@ -21,6 +21,7 @@ #include "base/cancellable.hpp" #include "base/mem_trie.hpp" +#include "base/string_utils.hpp" #include #include @@ -64,7 +65,7 @@ public: void SetInputLocale(std::string const & locale); void SetQuery(std::string const & query, bool categorialRequest = false); - inline bool IsEmptyQuery() const { return m_query.IsEmpty(); } + inline bool IsEmptyQuery() const { return m_prefix.empty() && m_tokens.empty(); } void Search(SearchParams params); @@ -146,7 +147,9 @@ protected: /// @todo Replace with QueryParams. /// @{ - QueryString m_query; + std::string m_query; + QueryTokens m_tokens; + strings::UniString m_prefix; bool m_isCategorialRequest; /// @} diff --git a/search/query_params.hpp b/search/query_params.hpp index f2eb7d0098..632006e2d6 100644 --- a/search/query_params.hpp +++ b/search/query_params.hpp @@ -7,10 +7,13 @@ #include "base/string_utils.hpp" #include +#include +#include #include +#include +#include #include - namespace search { class TokenRange; diff --git a/search/ranker.cpp b/search/ranker.cpp index 1dd4873daf..bc9087837e 100644 --- a/search/ranker.cpp +++ b/search/ranker.cpp @@ -744,7 +744,7 @@ Result Ranker::MakeResult(RankerResult const & rankerResult, bool needAddress, b } if (needHighlighting) - HighlightResult(m_params.m_query.m_tokens, m_params.m_query.m_prefix, res); + HighlightResult(m_params.m_tokens, m_params.m_prefix, res); res.SetRankingInfo(rankerResult.m_dbgInfo); @@ -758,13 +758,13 @@ Result Ranker::MakeResult(RankerResult const & rankerResult, bool needAddress, b void Ranker::SuggestStrings() { // Prefix is only empty when tokens exceeds the max allowed. No point in giving suggestions then. - if (m_params.m_query.m_prefix.empty() || !m_params.m_suggestsEnabled) + if (m_params.m_prefix.empty() || !m_params.m_suggestsEnabled) return; - string const prologue = DropLastToken(m_params.m_query.m_query); + string prologue = DropLastToken(m_params.m_query); for (auto const locale : m_params.m_categoryLocales) - MatchForSuggestions(m_params.m_query.m_prefix, locale, prologue); + MatchForSuggestions(m_params.m_prefix, locale, prologue); } void Ranker::UpdateResults(bool lastUpdate) @@ -964,7 +964,7 @@ void Ranker::MatchForSuggestions(strings::UniString const & token, int8_t locale { string const utf8Str = strings::ToUtf8(s); Result r(utf8Str, prologue + utf8Str + " "); - HighlightResult(m_params.m_query.m_tokens, m_params.m_query.m_prefix, r); + HighlightResult(m_params.m_tokens, m_params.m_prefix, r); m_emitter.AddResult(std::move(r)); } } @@ -972,7 +972,7 @@ void Ranker::MatchForSuggestions(strings::UniString const & token, int8_t locale void Ranker::ProcessSuggestions(vector const & vec) const { - if (m_params.m_query.m_prefix.empty() || !m_params.m_suggestsEnabled) + if (m_params.m_prefix.empty() || !m_params.m_suggestsEnabled) return; size_t added = 0; @@ -984,7 +984,7 @@ void Ranker::ProcessSuggestions(vector const & vec) const ftypes::LocalityType const type = GetLocalityIndex(r.GetTypes()); if (type == ftypes::LocalityType::Country || type == ftypes::LocalityType::City || r.IsStreet()) { - string suggestion = GetSuggestion(r.GetName(), m_params.m_query); + string suggestion = GetSuggestion(r, m_params.m_query, m_params.m_tokens, m_params.m_prefix); if (!suggestion.empty()) { // todo(@m) RankingInfo is lost here. Should it be? diff --git a/search/ranker.hpp b/search/ranker.hpp index 8a75c88716..115985ef19 100644 --- a/search/ranker.hpp +++ b/search/ranker.hpp @@ -49,7 +49,11 @@ public: bool m_viewportSearch = false; bool m_categorialRequest = false; - QueryString m_query; + std::string m_query; + QueryTokens m_tokens; + // Prefix of the last token in the query. + // We need it here to make suggestions. + strings::UniString m_prefix; Locales m_categoryLocales; diff --git a/search/search_integration_tests/processor_test.cpp b/search/search_integration_tests/processor_test.cpp index e971398686..4233428d82 100644 --- a/search/search_integration_tests/processor_test.cpp +++ b/search/search_integration_tests/processor_test.cpp @@ -11,11 +11,12 @@ #include "search/cities_boundaries_table.hpp" #include "search/features_layer_path_finder.hpp" -#include "search/mwm_context.hpp" #include "search/retrieval.hpp" #include "search/token_range.hpp" #include "search/token_slice.hpp" +#include "editor/editable_data_source.hpp" + #include "indexer/feature_impl.hpp" #include "geometry/mercator.hpp" diff --git a/search/search_tests/CMakeLists.txt b/search/search_tests/CMakeLists.txt index 5034c18477..864829d4c1 100644 --- a/search/search_tests/CMakeLists.txt +++ b/search/search_tests/CMakeLists.txt @@ -22,7 +22,6 @@ set(SRC results_tests.cpp region_info_getter_tests.cpp segment_tree_tests.cpp - suggest_tests.cpp string_match_test.cpp text_index_tests.cpp utm_mgrs_coords_match_test.cpp diff --git a/search/search_tests/keyword_lang_matcher_test.cpp b/search/search_tests/keyword_lang_matcher_test.cpp index f9c3663e30..bd2f2bc683 100644 --- a/search/search_tests/keyword_lang_matcher_test.cpp +++ b/search/search_tests/keyword_lang_matcher_test.cpp @@ -1,7 +1,8 @@ #include "testing/testing.hpp" #include "search/keyword_lang_matcher.hpp" -#include "search/string_utils.hpp" + +#include "indexer/search_string_utils.hpp" #include @@ -37,10 +38,22 @@ KeywordLangMatcher CreateMatcher(string const & query) matcher.SetLanguages(i /* tier */, std::move(langPriorities[i])); } - matcher.SetKeywords(search::MakeQueryString(query)); + vector keywords; + strings::UniString prefix; + if (search::TokenizeStringAndCheckIfLastTokenIsPrefix(query, keywords)) + { + prefix = keywords.back(); + keywords.pop_back(); + } + matcher.SetKeywords(&keywords[0], keywords.size(), prefix); + return matcher; } +UNIT_TEST(KeywordMatcher_TokensMatchHasPriority) +{ +} + UNIT_TEST(KeywordMatcher_LanguageMatchIsUsedWhenTokenMatchIsTheSame) { char const * query = "test"; diff --git a/search/search_tests/keyword_matcher_test.cpp b/search/search_tests/keyword_matcher_test.cpp index 05654bc480..3ad8f69b6d 100644 --- a/search/search_tests/keyword_matcher_test.cpp +++ b/search/search_tests/keyword_matcher_test.cpp @@ -2,11 +2,15 @@ #include "search/common.hpp" #include "search/keyword_matcher.hpp" -#include "search/string_utils.hpp" + +#include "indexer/search_string_utils.hpp" + +#include "base/buffer_vector.hpp" +#include "base/stl_helpers.hpp" #include #include - +#include namespace keyword_matcher_test { @@ -38,7 +42,15 @@ struct KeywordMatcherTestCase void InitMatcher(char const * query, KeywordMatcher & matcher) { - matcher.SetKeywords(search::MakeQueryString(query)); + vector keywords; + strings::UniString prefix; + if (search::TokenizeStringAndCheckIfLastTokenIsPrefix(query, keywords)) + { + prefix = keywords.back(); + keywords.pop_back(); + } + + matcher.SetKeywords(&keywords[0], keywords.size(), prefix); } class TestScore diff --git a/search/search_tests/suggest_tests.cpp b/search/search_tests/suggest_tests.cpp deleted file mode 100644 index 677b106e4c..0000000000 --- a/search/search_tests/suggest_tests.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include "testing/testing.hpp" - -#include "search/suggest.hpp" -#include "search/string_utils.hpp" - -UNIT_TEST(Suggest_Smoke) -{ - std::string const street = "Avenida Santa Fe"; - TEST_EQUAL(street + ' ', search::GetSuggestion(street, search::MakeQueryString("santa f")), ()); - TEST_EQUAL("3655 " + street + ' ', search::GetSuggestion(street, search::MakeQueryString("3655 santa f")), ()); - TEST_EQUAL("3655 east " + street + ' ', search::GetSuggestion(street, search::MakeQueryString("3655 santa east f")), ()); - - // Full prefix match -> no suggest. - TEST_EQUAL("", search::GetSuggestion(street, search::MakeQueryString("east santa fe")), ()); - - /// @todo Process street shorts like: st, av, ne, w, .. - //TEST_EQUAL(street, search::GetSuggestion(street, search::MakeQueryString("av sant")), ()); -} diff --git a/search/string_utils.cpp b/search/string_utils.cpp deleted file mode 100644 index f16747c1b8..0000000000 --- a/search/string_utils.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "search/string_utils.hpp" - -#include "indexer/search_string_utils.hpp" - -namespace search -{ - -QueryString MakeQueryString(std::string s) -{ - QueryString qs; - qs.m_query = std::move(s); - - Delimiters delims; - auto const uniString = NormalizeAndSimplifyString(qs.m_query); - SplitUniString(uniString, base::MakeBackInsertFunctor(qs.m_tokens), delims); - - if (!qs.m_tokens.empty() && !delims(uniString.back())) - { - qs.m_prefix = qs.m_tokens.back(); - qs.m_tokens.pop_back(); - } - - return qs; -} - -} // namespace search diff --git a/search/string_utils.hpp b/search/string_utils.hpp deleted file mode 100644 index 2eca8c7846..0000000000 --- a/search/string_utils.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -#include "search/common.hpp" - -namespace search -{ - -QueryString MakeQueryString(std::string s); - -} // namespace search diff --git a/search/suggest.cpp b/search/suggest.cpp index bc083a940e..0da513975d 100644 --- a/search/suggest.cpp +++ b/search/suggest.cpp @@ -1,26 +1,41 @@ #include "search/suggest.hpp" +#include "indexer/search_delimiters.hpp" #include "indexer/search_string_utils.hpp" -#include +#include "search/common.hpp" + +#include "base/stl_helpers.hpp" + #include namespace search { +using namespace std; -std::string GetSuggestion(std::string const & name, QueryString const & query) +string GetSuggestion(RankerResult const & res, string const & query, + QueryTokens const & paramTokens, strings::UniString const & prefix) { - auto const nTokens = NormalizeAndTokenizeString(name); + // Splits result's name. + auto const tokens = NormalizeAndTokenizeString(res.GetName()); + // Finds tokens that are already present in the input query. + vector tokensMatched(tokens.size()); bool prefixMatched = false; bool fullPrefixMatched = false; - for (auto const & token : nTokens) + for (size_t i = 0; i < tokens.size(); ++i) { - if (StartsWith(token, query.m_prefix)) + auto const & token = tokens[i]; + + if (find(paramTokens.begin(), paramTokens.end(), token) != paramTokens.end()) + { + tokensMatched[i] = true; + } + else if (StartsWith(token, prefix)) { prefixMatched = true; - fullPrefixMatched = token.size() == query.m_prefix.size(); + fullPrefixMatched = token.size() == prefix.size(); } } @@ -30,17 +45,17 @@ std::string GetSuggestion(std::string const & name, QueryString const & query) if (!prefixMatched || fullPrefixMatched) return {}; - std::string suggest; - for (auto const & token : query.m_tokens) + string suggest = DropLastToken(query); + + // Appends unmatched result's tokens to the suggestion. + for (size_t i = 0; i < tokens.size(); ++i) { - /// @todo Process street shorts like: st, av, ne, w, .. - if (std::find(nTokens.begin(), nTokens.end(), token) == nTokens.end()) - { - suggest += strings::ToUtf8(token); - suggest += ' '; - } + if (tokensMatched[i]) + continue; + suggest.append(strings::ToUtf8(tokens[i])); + suggest.push_back(' '); } - return suggest + name + ' '; + return suggest; } } // namespace search diff --git a/search/suggest.hpp b/search/suggest.hpp index 4358ce7548..13c372989c 100644 --- a/search/suggest.hpp +++ b/search/suggest.hpp @@ -1,9 +1,13 @@ #pragma once #include "search/common.hpp" +#include "search/intermediate_result.hpp" #include "base/string_utils.hpp" +#include +#include + namespace search { struct Suggest @@ -18,5 +22,6 @@ struct Suggest int8_t m_locale; }; -std::string GetSuggestion(std::string const & name, QueryString const & query); +std::string GetSuggestion(RankerResult const & res, std::string const & query, + QueryTokens const & paramTokens, strings::UniString const & prefix); } // namespace search diff --git a/storage/country_info_getter.hpp b/storage/country_info_getter.hpp index df77a5a4cb..2c1320d67d 100644 --- a/storage/country_info_getter.hpp +++ b/storage/country_info_getter.hpp @@ -1,5 +1,6 @@ #pragma once +#include "storage/country.hpp" #include "storage/country_decl.hpp" #include "storage/storage_defines.hpp" @@ -12,6 +13,8 @@ #include "base/cache.hpp" +#include +#include #include #include #include