Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ package com.nextcloud.utils.extensions

import com.nextcloud.utils.TimeConstants
import com.owncloud.android.lib.resources.files.model.RemoteFile
import com.owncloud.android.lib.resources.shares.ShareeUser
import com.owncloud.android.lib.resources.tags.Tag
import com.owncloud.android.utils.FileUtil
import com.owncloud.android.utils.MimeTypeUtil

Expand All @@ -27,6 +29,14 @@ fun RemoteFile.isSame(path: String?): Boolean {
this.areImageDimensionsSame(path)
}

fun RemoteFile.sharedViaLink(): Boolean = sharees?.any { it.shareType?.isLink == true } ?: false

fun RemoteFile.sharedWithSharee(): Boolean = sharees?.isNotEmpty() ?: false

fun RemoteFile.getShareeList(): List<ShareeUser> = sharees?.toList() ?: emptyList()

fun RemoteFile.tags(): List<Tag> = tags?.mapNotNull { it } ?: emptyList()

@Suppress("ReturnCount")
private fun RemoteFile.areImageDimensionsSame(path: String): Boolean {
if (!MimeTypeUtil.isImage(mimeType)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ class OCFileListDelegate(
if (showShareAvatar) null else R.drawable.shared_via_users to R.string.shared_icon_shared
}

file.isSharedViaLink -> R.drawable.shared_via_link to R.string.shared_icon_shared_via_link
file.isShared || file.isSharedViaLink -> R.drawable.shared_via_link to R.string.shared_icon_shared_via_link

else -> R.drawable.ic_unshared to R.string.shared_icon_share
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ class OCFileListSearchTask(

for (obj in data) {
try {
val remoteFile = obj as? RemoteFile ?: continue
val remoteFile = (obj as? RemoteFile) ?: continue
var ocFile = FileStorageUtils.fillOCFile(remoteFile)
FileStorageUtils.searchForLocalFileInDefaultPath(ocFile, currentUser.accountName)
resolveLocalFileId(ocFile)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,16 +83,12 @@ class SharedListFragment :
etag = it
}
}
val file = FileStorageUtils.fillOCFile(remoteFile)
val file = FileStorageUtils.fillOCFile(remoteFile).apply {
fileId = partialFile.fileId
parentId = partialFile.parentId
}
FileStorageUtils.searchForLocalFileInDefaultPath(file, user.accountName)
val savedFile = mContainerActivity.storageManager.saveFileWithParent(file, context)
savedFile.apply {
ownerId = partialFile.ownerId
ownerDisplayName = partialFile.ownerDisplayName
isSharedViaLink = partialFile.isSharedViaLink
isSharedWithSharee = partialFile.isSharedWithSharee
sharees = partialFile.sharees
}
savedFile
} else {
logger.e(SHARED_TAG, "Error fetching file")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,16 @@
import android.webkit.MimeTypeMap;

import com.nextcloud.client.preferences.SubFolderRule;
import com.nextcloud.utils.extensions.RemoteFileExtensionsKt;
import com.nextcloud.utils.extensions.StringConstants;
import com.owncloud.android.MainApp;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.lib.resources.files.model.RemoteFile;
import com.owncloud.android.lib.resources.shares.ShareType;
import com.owncloud.android.lib.resources.shares.ShareeUser;
import com.owncloud.android.ui.helpers.FileOperationsHelper;

import org.apache.commons.io.FilenameUtils;
Expand Down Expand Up @@ -349,7 +352,11 @@ public static OCFile fillOCFile(RemoteFile remote) {
file.setOwnerId(remote.getOwnerId());
file.setOwnerDisplayName(remote.getOwnerDisplayName());
file.setNote(remote.getNote());
file.setSharees(new ArrayList<>(Arrays.asList(remote.getSharees())));

file.setSharees(RemoteFileExtensionsKt.getShareeList(remote));
file.setSharedWithSharee(RemoteFileExtensionsKt.sharedWithSharee(remote));
file.setSharedViaLink(RemoteFileExtensionsKt.sharedViaLink(remote));

file.setRichWorkspace(remote.getRichWorkspace());
file.setLocked(remote.isLocked());
file.setLockType(remote.getLockType());
Expand All @@ -359,7 +366,7 @@ public static OCFile fillOCFile(RemoteFile remote) {
file.setLockTimestamp(remote.getLockTimestamp());
file.setLockTimeout(remote.getLockTimeout());
file.setLockToken(remote.getLockToken());
file.setTags(new ArrayList<>(Arrays.asList(remote.getTags())));
file.setTags(RemoteFileExtensionsKt.tags(remote));
file.setImageDimension(remote.getImageDimension());
file.setGeoLocation(remote.getGeoLocation());
file.setLivePhoto(remote.getLivePhoto());
Expand Down
16 changes: 16 additions & 0 deletions gradle/verification-metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21168,6 +21168,14 @@
<sha256 value="2f00698736587390e30f3ffb5ed9e801c1f0e80f1304590488624be969186483" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud" name="android-library" version="445f4b7b3d">
<artifact name="android-library-445f4b7b3d.aar">
<sha256 value="a7cdfc02c68f723b83cd262e6e6447bfe8453aac3084c57fb898208e069459ea" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="android-library-445f4b7b3d.module">
<sha256 value="173b3a1cc7e6d075a0f9f1c114fbcad642c19bbb43e10c068e2be625545b7be3" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud" name="android-library" version="451cddeba122ff4d17dc8f88feb2fd7589f77567">
<artifact name="android-library-451cddeba122ff4d17dc8f88feb2fd7589f77567.aar">
<sha256 value="c253a126ca3c32dd5b373ab1c64668e4603305b3113b052fc0fc5e3c833a913c" origin="Generated by Gradle" reason="Artifact is not signed"/>
Expand Down Expand Up @@ -21688,6 +21696,14 @@
<sha256 value="66afb9f2eea39427f6f03c14c5b82ca240157e22b8b2a764f0a7c8ad87cb2d3e" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud" name="android-library" version="bf4287e5a6">
<artifact name="android-library-bf4287e5a6.aar">
<sha256 value="c023859b682b37feee6182665e2af29faa3a903f9d28378af5f5e07c1a51b812" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="android-library-bf4287e5a6.module">
<sha256 value="834b3f515013a9d5ed70c69645e92b7d4a323a6349141672001efbc3c6f4b20f" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud" name="android-library" version="bf5fa888cf51896a20297818e04b3e59be4c4f93">
<artifact name="android-library-bf5fa888cf51896a20297818e04b3e59be4c4f93.aar">
<sha256 value="e22b38a2e7e9ec9461af2005c573f7c3bf097651f0bda27367fb355f82ef217d" origin="Generated by Gradle"/>
Expand Down
Loading