summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android
diff options
context:
space:
mode:
authorChristian Strømme <christian.stromme@qt.io>2020-08-05 20:48:08 +0200
committerChristian Strømme <christian.stromme@qt.io>2022-10-21 08:46:35 +0000
commitc1479bb9a7380d725e4d5998d44ad398a6044889 (patch)
treeadf619617e30ea0d3dde2bf21d3e44c78d89183e /src/plugins/platforms/android
parent46386243569471fc0bfbb8356fc23ee8c611771b (diff)
Android: Fix clipboard issue with urls
Both hasUrls() and hasText() can return true when containing urls, as hasText() checks hasUrls() as well. Fixes: QTBUG-85773 Change-Id: I91a34f151e7de17ab5b9a2f24bc0b6e6c097d7f9 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 5f9591bde3f3a67c566f3aa3571b57c82bd59cc5)
Diffstat (limited to 'src/plugins/platforms/android')
-rw-r--r--src/plugins/platforms/android/androidjniclipboard.cpp20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/plugins/platforms/android/androidjniclipboard.cpp b/src/plugins/platforms/android/androidjniclipboard.cpp
index d38485ab4a..535c9b50ba 100644
--- a/src/plugins/platforms/android/androidjniclipboard.cpp
+++ b/src/plugins/platforms/android/androidjniclipboard.cpp
@@ -70,26 +70,24 @@ namespace QtAndroidClipboard
void setClipboardMimeData(QMimeData *data)
{
clearClipboardData();
- if (data->hasText()) {
+ if (data->hasUrls()) {
+ QList<QUrl> urls = data->urls();
+ for (const auto &u : qAsConst(urls)) {
+ QJNIObjectPrivate::callStaticMethod<void>(applicationClass(), "setClipboardUri",
+ "(Ljava/lang/String;)V",
+ QJNIObjectPrivate::fromString(u.toEncoded()).object());
+ }
+ } else if (data->hasText()) { // hasText || hasUrls, so the order matter here.
QJNIObjectPrivate::callStaticMethod<void>(applicationClass(),
"setClipboardText", "(Ljava/lang/String;)V",
QJNIObjectPrivate::fromString(data->text()).object());
- }
- if (data->hasHtml()) {
+ } else if (data->hasHtml()) {
QJNIObjectPrivate::callStaticMethod<void>(applicationClass(),
"setClipboardHtml",
"(Ljava/lang/String;Ljava/lang/String;)V",
QJNIObjectPrivate::fromString(data->text()).object(),
QJNIObjectPrivate::fromString(data->html()).object());
}
- if (data->hasUrls()) {
- QList<QUrl> urls = data->urls();
- for (const auto &u : qAsConst(urls)) {
- QJNIObjectPrivate::callStaticMethod<void>(applicationClass(), "setClipboardUri",
- "(Ljava/lang/String;)V",
- QJNIObjectPrivate::fromString(u.toEncoded()).object());
- }
- }
}
QMimeData *getClipboardMimeData()