Android: Stop using getPrimaryClipDescription
The function getPrimaryClipDescription was used to establish if the clipboard data had text, html and/or uris. Analysing QTBUG-106646 and tst_qquicktextedit showed inconsistent results, namely the description hasMimeType failed to find html mimetype on copy&paste. This patch changes it for searching it by hand instead of using hasMimeType function. Task-number: QTBUG-106646 Change-Id: I8918938e7a3fa6953eac95b72959fca85050e52f Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
This commit is contained in:
parent
54df3488af
commit
2937cf91c7
@ -1052,15 +1052,7 @@ public class QtNative
|
||||
|
||||
public static boolean hasClipboardText()
|
||||
{
|
||||
try {
|
||||
if (m_clipboardManager != null && m_clipboardManager.hasPrimaryClip()) {
|
||||
ClipDescription primaryClipDescription = m_clipboardManager.getPrimaryClipDescription();
|
||||
return primaryClipDescription.hasMimeType("text/*");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(QtTAG, "Failed to get clipboard data", e);
|
||||
}
|
||||
return false;
|
||||
return hasClipboardMimeType("text/plain");
|
||||
}
|
||||
|
||||
private static String getClipboardText()
|
||||
@ -1106,19 +1098,27 @@ public class QtNative
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean hasClipboardHtml()
|
||||
private static boolean hasClipboardMimeType(String mimeType)
|
||||
{
|
||||
try {
|
||||
if (m_clipboardManager != null && m_clipboardManager.hasPrimaryClip()) {
|
||||
ClipDescription primaryClipDescription = m_clipboardManager.getPrimaryClipDescription();
|
||||
return primaryClipDescription.hasMimeType("text/html");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(QtTAG, "Failed to get clipboard data", e);
|
||||
if (m_clipboardManager == null)
|
||||
return false;
|
||||
|
||||
ClipData clip = m_clipboardManager.getPrimaryClip();
|
||||
ClipDescription description = clip.getDescription();
|
||||
|
||||
for (int i = 0; i < description.getMimeTypeCount(); ++i) {
|
||||
String itemMimeType = description.getMimeType(i);
|
||||
if (itemMimeType.equals(mimeType))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean hasClipboardHtml()
|
||||
{
|
||||
return hasClipboardMimeType("text/html");
|
||||
}
|
||||
|
||||
private static String getClipboardHtml()
|
||||
{
|
||||
try {
|
||||
@ -1145,15 +1145,7 @@ public class QtNative
|
||||
|
||||
public static boolean hasClipboardUri()
|
||||
{
|
||||
try {
|
||||
if (m_clipboardManager != null && m_clipboardManager.hasPrimaryClip()) {
|
||||
ClipDescription primaryClipDescription = m_clipboardManager.getPrimaryClipDescription();
|
||||
return primaryClipDescription.hasMimeType("text/uri-list");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(QtTAG, "Failed to get clipboard data", e);
|
||||
}
|
||||
return false;
|
||||
return hasClipboardMimeType("text/uri-list");
|
||||
}
|
||||
|
||||
private static String[] getClipboardUris()
|
||||
|
Loading…
x
Reference in New Issue
Block a user