From 6444a10d781297342ea479d35d258b66903da74f Mon Sep 17 00:00:00 2001 From: Pinghao Wu <xdavidwuph@gmail.com> Date: Sat, 26 Oct 2024 20:09:07 +0800 Subject: [PATCH] CephFSDocumentsProvider: use summary to show broken symlink --- .../org/safcephfs/CephFSDocumentsProvider.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/safcephfs/CephFSDocumentsProvider.java b/src/main/java/org/safcephfs/CephFSDocumentsProvider.java index 30d6971..0a89afd 100644 --- a/src/main/java/org/safcephfs/CephFSDocumentsProvider.java +++ b/src/main/java/org/safcephfs/CephFSDocumentsProvider.java @@ -66,7 +66,8 @@ public class CephFSDocumentsProvider extends DocumentsProvider { Document.COLUMN_MIME_TYPE, Document.COLUMN_LAST_MODIFIED, Document.COLUMN_SIZE, - Document.COLUMN_FLAGS + Document.COLUMN_FLAGS, + Document.COLUMN_SUMMARY, }; private static String APP_NAME; @@ -283,17 +284,20 @@ public class CephFSDocumentsProvider extends DocumentsProvider { row.add(Document.COLUMN_MIME_TYPE, mimeType); // TODO override getDocumentType to avoid this - if (cs.isDir()) { - int flags = 0; + int flags = 0; + if (cs.isSymlink()) { // broken + // needed for DocumentsUI to display summary + flags |= Document.FLAG_PARTIAL; + var target = executor.executeWithUnchecked(cm -> cm.readlink(dir + displayName)); + row.add(Document.COLUMN_SUMMARY, "Broken symlink to " + target); + } if (cs.isDir()) { if (mayWrite(cs)) { flags |= Document.FLAG_DIR_SUPPORTS_CREATE; } if (mayRead(cs)) { flags |= Document.FLAG_SUPPORTS_METADATA; } - row.add(Document.COLUMN_FLAGS, flags); } else if (cs.isFile()) { - int flags = 0; if ((MetadataReader.isSupportedMimeType(mimeType) || MediaMetadataReader.isSupportedMimeType(mimeType)) && mayRead(cs)) { @@ -328,8 +332,8 @@ public class CephFSDocumentsProvider extends DocumentsProvider { if (thumbnailFound) { flags |= Document.FLAG_SUPPORTS_THUMBNAIL; } - row.add(Document.COLUMN_FLAGS, flags); } + row.add(Document.COLUMN_FLAGS, flags); } public Cursor queryChildDocuments(String parentDocumentId, -- 2.45.2