From d9acc25af39a9ae333a65657dd10201ce70187ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Str=C3=B8mme?= Date: Wed, 5 Aug 2020 20:48:08 +0200 Subject: [PATCH] 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 (cherry picked from commit 5f9591bde3f3a67c566f3aa3571b57c82bd59cc5) Reviewed-by: Qt Cherry-pick Bot --- .../platforms/android/androidjniclipboard.cpp | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/plugins/platforms/android/androidjniclipboard.cpp b/src/plugins/platforms/android/androidjniclipboard.cpp index 7b2c2c04436..b973fbe7d87 100644 --- a/src/plugins/platforms/android/androidjniclipboard.cpp +++ b/src/plugins/platforms/android/androidjniclipboard.cpp @@ -35,18 +35,6 @@ namespace QtAndroidClipboard void setClipboardMimeData(QMimeData *data) { clearClipboardData(); - if (data->hasText()) { - QJniObject::callStaticMethod(applicationClass(), - "setClipboardText", "(Ljava/lang/String;)V", - QJniObject::fromString(data->text()).object()); - } - if (data->hasHtml()) { - QJniObject::callStaticMethod(applicationClass(), - "setClipboardHtml", - "(Ljava/lang/String;Ljava/lang/String;)V", - QJniObject::fromString(data->text()).object(), - QJniObject::fromString(data->html()).object()); - } if (data->hasUrls()) { QList urls = data->urls(); for (const auto &u : qAsConst(urls)) { @@ -55,6 +43,16 @@ namespace QtAndroidClipboard "(Ljava/lang/String;)V", QJniObject::fromString(u.toEncoded()).object()); } + } else if (data->hasText()) { // hasText || hasUrls, so the order matter here. + QJniObject::callStaticMethod(applicationClass(), + "setClipboardText", "(Ljava/lang/String;)V", + QJniObject::fromString(data->text()).object()); + } else if (data->hasHtml()) { + QJniObject::callStaticMethod(applicationClass(), + "setClipboardHtml", + "(Ljava/lang/String;Ljava/lang/String;)V", + QJniObject::fromString(data->text()).object(), + QJniObject::fromString(data->html()).object()); } }