summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorAlexander Shalamov <alexander.shalamov@mapbox.com>2019-09-23 15:42:06 +0300
committerAlexander Shalamov <alexander.shalamov@mapbox.com>2019-09-26 10:55:47 +0300
commit9c8295c6a64b6f5b2c9b67fd01633a156481a3c8 (patch)
tree27cbdbff1757d0e4aa88c3616f17233a143270e2 /platform
parent30ffbe9b8d49d8d8a2820f7b452ebc1d1531f298 (diff)
downloadqtlocation-mapboxgl-9c8295c6a64b6f5b2c9b67fd01633a156481a3c8.tar.gz
[core][android][darwin] Move platform specific Collator impls from expression
Platform specific Collator implementations should not be part of an expression APIs.
Diffstat (limited to 'platform')
-rw-r--r--platform/android/core-files.json4
-rw-r--r--platform/android/src/i18n/collator.cpp (renamed from platform/android/src/text/collator.cpp)19
-rw-r--r--platform/android/src/i18n/collator_jni.hpp (renamed from platform/android/src/text/collator_jni.hpp)2
-rw-r--r--[-rwxr-xr-x]platform/android/src/jni_native.cpp4
-rw-r--r--platform/android/src/text/format_number_jni.hpp2
-rw-r--r--platform/darwin/src/collator.mm9
-rw-r--r--platform/default/src/mbgl/i18n/collator.cpp (renamed from platform/default/src/mbgl/text/collator.cpp)55
-rw-r--r--platform/linux/config.cmake2
8 files changed, 38 insertions, 59 deletions
diff --git a/platform/android/core-files.json b/platform/android/core-files.json
index 9d502bf33e..4057b21000 100644
--- a/platform/android/core-files.json
+++ b/platform/android/core-files.json
@@ -80,7 +80,7 @@
"platform/android/src/style/sources/vector_source.cpp",
"platform/android/src/style/transition_options.cpp",
"platform/android/src/style/value.cpp",
- "platform/android/src/text/collator.cpp",
+ "platform/android/src/i18n/collator.cpp",
"platform/android/src/text/local_glyph_rasterizer.cpp",
"platform/android/src/text/format_number.cpp",
"platform/android/src/gl_functions.cpp",
@@ -185,7 +185,7 @@
"style/sources/vector_source.hpp": "platform/android/src/style/sources/vector_source.hpp",
"style/transition_options.hpp": "platform/android/src/style/transition_options.hpp",
"style/value.hpp": "platform/android/src/style/value.hpp",
- "text/collator_jni.hpp": "platform/android/src/text/collator_jni.hpp",
+ "text/collator_jni.hpp": "platform/android/src/i18n/collator_jni.hpp",
"text/local_glyph_rasterizer_jni.hpp": "platform/android/src/text/local_glyph_rasterizer_jni.hpp"
}
}
diff --git a/platform/android/src/text/collator.cpp b/platform/android/src/i18n/collator.cpp
index 1cd6f3cab0..b3dd8e21b3 100644
--- a/platform/android/src/text/collator.cpp
+++ b/platform/android/src/i18n/collator.cpp
@@ -1,6 +1,5 @@
-#include <mbgl/style/expression/collator.hpp>
+#include <mbgl/i18n/collator.hpp>
#include <mbgl/text/language_tag.hpp>
-#include <mbgl/util/platform.hpp>
#include <jni/jni.hpp>
@@ -94,8 +93,7 @@ jni::Local<jni::Object<Locale>> Locale::New(jni::JNIEnv& env, const jni::String&
} // namespace android
-namespace style {
-namespace expression {
+namespace platform {
class Collator::Impl {
public:
@@ -142,10 +140,12 @@ public:
// Because of the difference in locale-awareness, this means turning on case-sensitivity
// can _potentially_ change compare results for strings that don't actually have any case
// differences.
- jni::Local<jni::String> jlhs = useUnaccent ? android::StringUtils::unaccent(*env, jni::Make<jni::String>(*env, lhs))
- : jni::Make<jni::String>(*env, lhs);
- jni::Local<jni::String> jrhs = useUnaccent ? android::StringUtils::unaccent(*env, jni::Make<jni::String>(*env, rhs))
- : jni::Make<jni::String>(*env, rhs);
+ jni::Local<jni::String> jlhs = useUnaccent
+ ? android::StringUtils::unaccent(*env, jni::Make<jni::String>(*env, lhs))
+ : jni::Make<jni::String>(*env, lhs);
+ jni::Local<jni::String> jrhs = useUnaccent
+ ? android::StringUtils::unaccent(*env, jni::Make<jni::String>(*env, rhs))
+ : jni::Make<jni::String>(*env, rhs);
jni::jint result = android::Collator::compare(*env, collator, jlhs, jrhs);
@@ -190,6 +190,5 @@ std::string Collator::resolvedLocale() const {
return impl->resolvedLocale();
}
-} // namespace expression
-} // namespace style
+} // namespace platform
} // namespace mbgl
diff --git a/platform/android/src/text/collator_jni.hpp b/platform/android/src/i18n/collator_jni.hpp
index dd3f845662..612f9b49f3 100644
--- a/platform/android/src/text/collator_jni.hpp
+++ b/platform/android/src/i18n/collator_jni.hpp
@@ -1,7 +1,5 @@
#pragma once
-#include <mbgl/util/image.hpp>
-
#include <jni/jni.hpp>
/*
diff --git a/platform/android/src/jni_native.cpp b/platform/android/src/jni_native.cpp
index df96ba9759..966dc6a007 100755..100644
--- a/platform/android/src/jni_native.cpp
+++ b/platform/android/src/jni_native.cpp
@@ -50,10 +50,10 @@
#include "snapshotter/map_snapshotter.hpp"
#include "snapshotter/map_snapshot.hpp"
#endif
-#include "text/collator_jni.hpp"
+#include "i18n/collator_jni.hpp"
+#include "logger.hpp"
#include "text/local_glyph_rasterizer_jni.hpp"
#include "text/format_number_jni.hpp"
-#include "logger.hpp"
namespace mbgl {
namespace android {
diff --git a/platform/android/src/text/format_number_jni.hpp b/platform/android/src/text/format_number_jni.hpp
index 1720038925..1b63012c6e 100644
--- a/platform/android/src/text/format_number_jni.hpp
+++ b/platform/android/src/text/format_number_jni.hpp
@@ -2,7 +2,7 @@
#include <jni/jni.hpp>
-#include "collator_jni.hpp"
+#include "../i18n/collator_jni.hpp"
/*
android::NumberFormat is the JNI wrapper
diff --git a/platform/darwin/src/collator.mm b/platform/darwin/src/collator.mm
index fe2b46ffa7..0f010c1df8 100644
--- a/platform/darwin/src/collator.mm
+++ b/platform/darwin/src/collator.mm
@@ -1,12 +1,11 @@
-#include <mbgl/style/expression/collator.hpp>
+#include <mbgl/i18n/collator.hpp>
#include <sstream>
#import <Foundation/Foundation.h>
namespace mbgl {
-namespace style {
-namespace expression {
+namespace platform {
class Collator::Impl {
public:
@@ -48,7 +47,6 @@ private:
NSLocale* locale;
};
-
Collator::Collator(bool caseSensitive, bool diacriticSensitive, optional<std::string> locale_)
: impl(std::make_shared<Impl>(caseSensitive, diacriticSensitive, std::move(locale_)))
{}
@@ -65,6 +63,5 @@ std::string Collator::resolvedLocale() const {
return impl->resolvedLocale();
}
-} // namespace expression
-} // namespace style
+} // namespace platform
} // namespace mbgl
diff --git a/platform/default/src/mbgl/text/collator.cpp b/platform/default/src/mbgl/i18n/collator.cpp
index 2d85b2d466..f46accff8a 100644
--- a/platform/default/src/mbgl/text/collator.cpp
+++ b/platform/default/src/mbgl/i18n/collator.cpp
@@ -1,7 +1,6 @@
-#include <mbgl/style/expression/collator.hpp>
-#include <mbgl/util/platform.hpp>
#include <libnu/strcoll.h>
#include <libnu/unaccent.h>
+#include <mbgl/i18n/collator.hpp>
#include <cstring>
#include <sstream>
@@ -20,31 +19,24 @@
*/
namespace {
-std::string unaccent(const std::string& str)
-{
+std::string unaccent(const std::string& str) {
std::stringstream output;
char const *itr = str.c_str(), *nitr;
- char const *end = itr + str.length();
- char lo[5] = { 0 };
+ char const* end = itr + str.length();
+ char lo[5] = {0};
- for (; itr < end; itr = nitr)
- {
+ for (; itr < end; itr = nitr) {
uint32_t code_point = 0;
char const* buf = nullptr;
nitr = _nu_tounaccent(itr, end, nu_utf8_read, &code_point, &buf, nullptr);
- if (buf != nullptr)
- {
- do
- {
+ if (buf != nullptr) {
+ do {
buf = NU_CASEMAP_DECODING_FUNCTION(buf, &code_point);
if (code_point == 0) break;
output.write(lo, nu_utf8_write(code_point, lo) - lo);
- }
- while (code_point != 0);
- }
- else
- {
+ } while (code_point != 0);
+ } else {
output.write(itr, nitr - itr);
}
}
@@ -54,8 +46,7 @@ std::string unaccent(const std::string& str)
} // namespace
namespace mbgl {
-namespace style {
-namespace expression {
+namespace platform {
class Collator::Impl {
public:
@@ -65,8 +56,7 @@ public:
{}
bool operator==(const Impl& other) const {
- return caseSensitive == other.caseSensitive &&
- diacriticSensitive == other.diacriticSensitive;
+ return caseSensitive == other.caseSensitive && diacriticSensitive == other.diacriticSensitive;
}
int compare(const std::string& lhs, const std::string& rhs) const {
@@ -77,40 +67,35 @@ public:
return nu_strcasecoll(lhs.c_str(), rhs.c_str(),
nu_utf8_read, nu_utf8_read);
} else if (caseSensitive && !diacriticSensitive) {
- return nu_strcoll(unaccent(lhs).c_str(), unaccent(rhs).c_str(),
- nu_utf8_read, nu_utf8_read);
+ return nu_strcoll(unaccent(lhs).c_str(), unaccent(rhs).c_str(), nu_utf8_read, nu_utf8_read);
} else {
- return nu_strcasecoll(unaccent(lhs).c_str(), unaccent(rhs).c_str(),
- nu_utf8_read, nu_utf8_read);
+ return nu_strcasecoll(unaccent(lhs).c_str(), unaccent(rhs).c_str(), nu_utf8_read, nu_utf8_read);
}
}
std::string resolvedLocale() const {
return "";
}
+
private:
bool caseSensitive;
bool diacriticSensitive;
};
-
-Collator::Collator(bool caseSensitive, bool diacriticSensitive, optional<std::string> locale_)
- : impl(std::make_shared<Impl>(caseSensitive, diacriticSensitive, std::move(locale_)))
-{}
+int Collator::compare(const std::string& lhs, const std::string& rhs) const {
+ return impl->compare(lhs, rhs);
+}
bool Collator::operator==(const Collator& other) const {
return *impl == *(other.impl);
}
-int Collator::compare(const std::string& lhs, const std::string& rhs) const {
- return impl->compare(lhs, rhs);
-}
-
std::string Collator::resolvedLocale() const {
return impl->resolvedLocale();
}
+Collator::Collator(bool caseSensitive, bool diacriticSensitive, optional<std::string> locale)
+ : impl(std::make_shared<Impl>(caseSensitive, diacriticSensitive, std::move(locale))) {}
-} // namespace expression
-} // namespace style
+} // namespace platform
} // namespace mbgl
diff --git a/platform/linux/config.cmake b/platform/linux/config.cmake
index 3a0fd91d36..01c46c9fcb 100644
--- a/platform/linux/config.cmake
+++ b/platform/linux/config.cmake
@@ -50,7 +50,7 @@ macro(mbgl_platform_core)
PRIVATE platform/default/src/mbgl/util/string_stdlib.cpp
PRIVATE platform/default/src/mbgl/util/thread.cpp
PRIVATE platform/default/src/mbgl/text/bidi.cpp
- PRIVATE platform/default/src/mbgl/text/collator.cpp
+ PRIVATE platform/default/src/mbgl/i18n/collator.cpp
PRIVATE platform/default/src/mbgl/layermanager/layer_manager.cpp
PRIVATE platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
PRIVATE platform/default/src/mbgl/util/thread_local.cpp