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