summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-02-21 01:00:08 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-02-21 01:00:08 +0100
commit0c0c4a23bc55619c59d2cd0ccd4d4b19bb1fea59 (patch)
tree0e56c0e3a3acb05232949b6a5d3e18feb48eb25e /src/plugins/platforms/android
parenta4b8e7141b3dd3bf3c2ac139b44ece0f74b054d8 (diff)
parent904617dfb83f39a6a379635b64fea6fcd00f241a (diff)
Merge remote-tracking branch 'origin/5.12' into 5.13
Diffstat (limited to 'src/plugins/platforms/android')
-rw-r--r--src/plugins/platforms/android/qandroidsystemlocale.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/plugins/platforms/android/qandroidsystemlocale.cpp b/src/plugins/platforms/android/qandroidsystemlocale.cpp
index 7fe36aa9bc..f9d566ff1a 100644
--- a/src/plugins/platforms/android/qandroidsystemlocale.cpp
+++ b/src/plugins/platforms/android/qandroidsystemlocale.cpp
@@ -40,6 +40,7 @@
#include "qandroidsystemlocale.h"
#include "androidjnimain.h"
#include <QtCore/private/qjni_p.h>
+#include <QtCore/private/qjnihelpers_p.h>
#include "qdatetime.h"
#include "qstringlist.h"
#include "qvariant.h"
@@ -162,6 +163,23 @@ QVariant QAndroidSystemLocale::query(QueryType type, QVariant in) const
return m_locale.createSeparatedList(in.value<QStringList>());
case LocaleChanged:
Q_ASSERT_X(false, Q_FUNC_INFO, "This can't happen.");
+ case UILanguages: {
+ if (QtAndroidPrivate::androidSdkVersion() >= 24) {
+ QJNIObjectPrivate localeListObject =
+ QJNIObjectPrivate::callStaticObjectMethod("android/os/LocaleList", "getDefault",
+ "()Landroid/os/LocaleList;");
+ if (localeListObject.isValid()) {
+ QString lang = localeListObject.callObjectMethod("toLanguageTags",
+ "()Ljava/lang/String;").toString();
+ // Some devices return with it enclosed in []'s so check if both exists before
+ // removing to ensure it is formatted correctly
+ if (lang.startsWith(QChar('[')) && lang.endsWith(QChar(']')))
+ lang = lang.mid(1, lang.length() - 2);
+ return lang.split(QChar(','));
+ }
+ }
+ return QVariant();
+ }
default:
break;
}