Warning, /graphics/krita/3rdparty/ext_qt/0001-Hack-Workaround-the-absence-of-FLAG_SUPPORTS_WRITE-o.patch is written in an unsupported language. File is not indexed.
0001 From 414f21c5041c99d77f321ce0c33502fd9373180b Mon Sep 17 00:00:00 2001 0002 From: Sharaf Zaman <shzam@sdf.org> 0003 Date: Wed, 5 Jan 2022 09:59:38 +0000 0004 Subject: [PATCH] Hack: Workaround the absence of FLAG_SUPPORTS_WRITE on 0005 ChromeOS 0006 0007 --- 0008 .../qt5/android/CachedDocumentFile.java | 7 +------ 0009 .../qtproject/qt5/android/SAFFileManager.java | 21 ++++++++++++++----- 0010 2 files changed, 17 insertions(+), 11 deletions(-) 0011 0012 diff --git a/src/android/jar/src/org/qtproject/qt5/android/CachedDocumentFile.java b/src/android/jar/src/org/qtproject/qt5/android/CachedDocumentFile.java 0013 index 15dc727125..f3f0aa9e53 100644 0014 --- a/src/android/jar/src/org/qtproject/qt5/android/CachedDocumentFile.java 0015 +++ b/src/android/jar/src/org/qtproject/qt5/android/CachedDocumentFile.java 0016 @@ -108,7 +108,7 @@ public class CachedDocumentFile { 0017 return true; 0018 } catch (Exception e) { 0019 // HACK: see https://crbug.com/1246925. 0020 - if (isArc()) { 0021 + if (SAFFileManager.isArc()) { 0022 String oldUriStr = uri.toString(); 0023 this.uri = Uri.parse(oldUriStr.replaceFirst(this.name + "$", displayName)); 0024 this.exists = null; 0025 @@ -216,10 +216,5 @@ public class CachedDocumentFile { 0026 } 0027 return false; 0028 } 0029 - 0030 - // we need some workarounds on ChromeOS 0031 - public static boolean isArc() { 0032 - return (Build.DEVICE != null) && Build.DEVICE.matches(".+_cheets|cheets_.+"); 0033 - } 0034 } 0035 0036 diff --git a/src/android/jar/src/org/qtproject/qt5/android/SAFFileManager.java b/src/android/jar/src/org/qtproject/qt5/android/SAFFileManager.java 0037 index df5868d67a..bb199d1f3c 100644 0038 --- a/src/android/jar/src/org/qtproject/qt5/android/SAFFileManager.java 0039 +++ b/src/android/jar/src/org/qtproject/qt5/android/SAFFileManager.java 0040 @@ -344,12 +344,18 @@ public class SAFFileManager { 0041 final CachedDocumentFile file = 0042 getDocumentFileWithValidPermissions(contentUrl, "w", true); 0043 0044 - if (file != null && file.canWrite()) { 0045 - mError.unsetError(); 0046 - return true; 0047 - } else { 0048 - return false; 0049 + if (file != null) { 0050 + if (file.canWrite()) { 0051 + mError.unsetError(); 0052 + return true; 0053 + } else if (isArc()) { 0054 + // HACK: some files on ChromeOS don't have file flags! So, if 0055 + // we have write permissions on the Uri, it seems we can assume 0056 + // FLAG_SUPPORTS_WRITE 0057 + return true; 0058 + } 0059 } 0060 + return false; 0061 } 0062 0063 // Native usage 0064 @@ -792,4 +798,9 @@ public class SAFFileManager { 0065 private CachedDocumentFile createDirectory(Uri parent, String displayName) { 0066 return createFile(parent, displayName, DocumentsContract.Document.MIME_TYPE_DIR); 0067 } 0068 + 0069 + // we need some workarounds on ChromeOS 0070 + public static boolean isArc() { 0071 + return (Build.DEVICE != null) && Build.DEVICE.matches(".+_cheets|cheets_.+"); 0072 + } 0073 } 0074 -- 0075 2.34.1 0076