From 04226699a542dded44d586519daa51cef1e5b3d3 Mon Sep 17 00:00:00 2001 From: daniele-verducci Date: Fri, 30 Oct 2026 16:57:28 +0100 Subject: [PATCH 1/4] Add sharee to file immediately to avoid the list being shown without the sharee icon until next folder sync Signed-off-by: daniele-verducci # Conflicts: # app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt --- .../android/operations/CreateShareWithShareeOperation.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/owncloud/android/operations/CreateShareWithShareeOperation.java b/app/src/main/java/com/owncloud/android/operations/CreateShareWithShareeOperation.java index aa173a6b0fd3..82a24c0d8c66 100644 --- a/app/src/main/java/com/owncloud/android/operations/CreateShareWithShareeOperation.java +++ b/app/src/main/java/com/owncloud/android/operations/CreateShareWithShareeOperation.java @@ -18,6 +18,7 @@ import com.nextcloud.client.network.ClientFactoryImpl; import com.nextcloud.common.NextcloudClient; import com.nextcloud.utils.extensions.DecryptedUserExtensionsKt; +import com.nextcloud.utils.extensions.OCFileExtensionsKt; import com.owncloud.android.R; import com.owncloud.android.datamodel.ArbitraryDataProvider; import com.owncloud.android.datamodel.FileDataStorageManager; @@ -263,6 +264,7 @@ private void updateData(OCShare share) { OCFile file = getStorageManager().getFileByPath(path); if (file != null) { file.setSharedWithSharee(true); // TODO - this should be done by the FileContentProvider, as part of getStorageManager().saveShare(share) + OCFileExtensionsKt.addShare(file, share); getStorageManager().saveFile(file); } } From 31ebe1e6a4df982c2a4cd36bceb428b9966149b3 Mon Sep 17 00:00:00 2001 From: daniele-verducci Date: Fri, 30 Oct 2026 17:13:20 +0100 Subject: [PATCH 2/4] Symmetrix fix for unshare Signed-off-by: daniele-verducci --- .../java/com/owncloud/android/operations/UnshareOperation.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/owncloud/android/operations/UnshareOperation.java b/app/src/main/java/com/owncloud/android/operations/UnshareOperation.java index 3735703ea9f9..87e6cca8188f 100644 --- a/app/src/main/java/com/owncloud/android/operations/UnshareOperation.java +++ b/app/src/main/java/com/owncloud/android/operations/UnshareOperation.java @@ -12,6 +12,7 @@ import android.content.Context; import com.nextcloud.client.account.User; +import com.nextcloud.utils.extensions.OCFileExtensionsKt; import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.datamodel.e2e.v1.decrypted.DecryptedFolderMetadataFileV1; @@ -138,6 +139,7 @@ protected RemoteOperationResult run(OwnCloudClient client) { if (sharesWith.size() == SINGLY_SHARED) { file.setSharedWithSharee(false); } + OCFileExtensionsKt.removeShare(file, share); } getStorageManager().saveFile(file); From 63d4560c5ee5ef42e83fc851041fd61d6701b77b Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Wed, 4 Nov 2026 12:35:26 +0300 Subject: [PATCH 3/4] wip Signed-off-by: alperozturk96 --- .../nextcloud/utils/extensions/OCFileExtensions.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt b/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt index 0f6a8a0fb49b..b2d0a51289ef 100644 --- a/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt +++ b/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt @@ -20,6 +20,8 @@ import com.owncloud.android.datamodel.OCFileDepth.DeepLevel import com.owncloud.android.datamodel.OCFileDepth.FirstLevel import com.owncloud.android.datamodel.OCFileDepth.Root import com.owncloud.android.lib.common.utils.Log_OC +import com.owncloud.android.lib.resources.shares.OCShare +import com.owncloud.android.lib.resources.shares.ShareeUser import com.owncloud.android.ui.events.EncryptionEvent import com.owncloud.android.utils.FileStorageUtils import java.io.File @@ -31,6 +33,18 @@ private const val FOLDER_CONTENT_LENGTH = 0L private val gson = Gson() +private fun OCShare.toShareeUser() = ShareeUser(shareWith, sharedWithDisplayName, shareType) + +fun OCFile.addShare(share: OCShare) { + val sharee = share.toShareeUser() + if (sharee !in sharees) sharees.add(sharee) +} + +fun OCFile.removeShare(share: OCShare) { + val sharee = share.toShareeUser() + sharees.removeAll { it == sharee } +} + fun List.filterFilenames(): List = distinctBy { it.fileName } fun OCFile.isTempFile(): Boolean { From bbf06013cbdbb74168489c0b56044f817492dae2 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Wed, 4 Nov 2026 12:35:58 +0300 Subject: [PATCH 4/4] wip Signed-off-by: alperozturk96 --- .../java/com/nextcloud/utils/extensions/OCFileExtensions.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt b/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt index b2d0a51289ef..371e7da30e82 100644 --- a/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt +++ b/app/src/main/java/com/nextcloud/utils/extensions/OCFileExtensions.kt @@ -54,10 +54,7 @@ fun OCFile.isTempFile(): Boolean { } fun OCFile?.isPNG(): Boolean { - if (this == null) { - return false - } - return "image/png".equals(mimeType, ignoreCase = true) + return this != null && "image/png".equals(mimeType, ignoreCase = true) } fun OCFile?.getDepth(): OCFileDepth? {