getById($fileInfo->getId()); if (count($folder) === 0) { return []; } return $this->timelineQuery->getFolderPreviews($folder[0]); } /** * Get subfolders entry for days response. */ public function getSubfoldersEntry(Folder &$folder) { // Ugly: get the view of the folder with reflection // This is unfortunately the only way to get the contents of a folder // matching a MIME type without using SEARCH, which is deep $rp = new \ReflectionProperty('\OC\Files\Node\Node', 'view'); $rp->setAccessible(true); $view = $rp->getValue($folder); // Get the subfolders $folders = $view->getDirectoryContent($folder->getPath(), FileInfo::MIMETYPE_FOLDER, $folder); // Sort by name usort($folders, function ($a, $b) { return strnatcmp($a->getName(), $b->getName()); }); // Process to response type return [ 'dayid' => \OCA\Memories\Util::$TAG_DAYID_FOLDERS, 'count' => \count($folders), 'detail' => array_map(function (&$node) use (&$folder) { return [ 'fileid' => $node->getId(), 'name' => $node->getName(), 'isfolder' => 1, 'path' => $node->getPath(), 'previews' => $this->getFolderPreviews($folder, $node), ]; }, $folders, []), ]; } }