diff --git a/apps/files_trashbin/lib/Trash/TrashItem.php b/apps/files_trashbin/lib/Trash/TrashItem.php index 2ae999a2069..92b389dea19 100644 --- a/apps/files_trashbin/lib/Trash/TrashItem.php +++ b/apps/files_trashbin/lib/Trash/TrashItem.php @@ -154,6 +154,10 @@ class TrashItem implements ITrashItem { return $this->fileInfo->getUploadTime(); } + public function getLastActivity(): int { + return $this->fileInfo->getLastActivity(); + } + public function getParentId(): int { return $this->fileInfo->getParentId(); } diff --git a/lib/private/Files/FileInfo.php b/lib/private/Files/FileInfo.php index f861206fea1..14e6f2bd81f 100644 --- a/lib/private/Files/FileInfo.php +++ b/lib/private/Files/FileInfo.php @@ -386,6 +386,10 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { return (int) $this->data['upload_time']; } + public function getLastActivity(): int { + return max($this->getUploadTime(), $this->getMTime()); + } + public function getParentId(): int { return $this->data['parent'] ?? -1; } diff --git a/lib/private/Files/Node/LazyFolder.php b/lib/private/Files/Node/LazyFolder.php index 308989d0cf7..84e28ef7a91 100644 --- a/lib/private/Files/Node/LazyFolder.php +++ b/lib/private/Files/Node/LazyFolder.php @@ -549,6 +549,13 @@ class LazyFolder implements Folder { return $this->__call(__FUNCTION__, func_get_args()); } + /** + * @inheritDoc + */ + public function getLastActivity(): int { + return $this->__call(__FUNCTION__, func_get_args()); + } + public function getRelativePath($path) { return PathHelper::getRelativePath($this->getPath(), $path); } diff --git a/lib/private/Files/Node/Node.php b/lib/private/Files/Node/Node.php index 5dbdc4054bf..299bf68ff97 100644 --- a/lib/private/Files/Node/Node.php +++ b/lib/private/Files/Node/Node.php @@ -475,6 +475,10 @@ class Node implements INode { return $this->getFileInfo()->getUploadTime(); } + public function getLastActivity(): int { + return $this->getFileInfo()->getLastActivity(); + } + public function getParentId(): int { return $this->fileInfo->getParentId(); } diff --git a/lib/public/Files/FileInfo.php b/lib/public/Files/FileInfo.php index f9957f580e8..26b506ba28b 100644 --- a/lib/public/Files/FileInfo.php +++ b/lib/public/Files/FileInfo.php @@ -281,6 +281,16 @@ interface FileInfo { */ public function getUploadTime(): int; + /** + * Get the last activity date as unix timestamp + * + * Last activity is the more recent of the upload time and the modification time + * + * @return int + * @since 34.0.0 + */ + public function getLastActivity(): int; + /** * Get the fileid or the parent folder * or -1 if this item has no parent folder (because it is the root)