Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/photos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Molakvoæ <skjnldsv@users.noreply.github.com>2020-02-28 12:16:39 +0300
committerGitHub <noreply@github.com>2020-02-28 12:16:39 +0300
commitc413c80949b9b74a590a24b962d56f405d3c66ba (patch)
tree226d32b23aec73936896023e93199df145386b41
parent80a17d902484ddb957ecd93062392582a4912516 (diff)
parent7848b3e06a54df4065abec3881915563c25255a5 (diff)
Merge pull request #213 from nextcloud/backport/212/stable18v18.0.2RC2v18.0.2RC1v18.0.2
[stable18] Don't flatten out albums
-rw-r--r--lib/Controller/AlbumsController.php21
1 files changed, 12 insertions, 9 deletions
diff --git a/lib/Controller/AlbumsController.php b/lib/Controller/AlbumsController.php
index fa8cfed9..fc3044b5 100644
--- a/lib/Controller/AlbumsController.php
+++ b/lib/Controller/AlbumsController.php
@@ -116,8 +116,8 @@ class AlbumsController extends Controller {
yield $folder;
foreach ($nodes as $node) {
- if ($node instanceof Folder) {
- yield from $this->scanFolder($node, 0, $shared);
+ if ($node instanceof Folder && $this->scanFolder($node, 0, $shared)) {
+ yield $node;
} elseif ($node instanceof File) {
if ($this->validFile($node, $shared)) {
yield $node;
@@ -138,35 +138,38 @@ class AlbumsController extends Controller {
return $node->getStorage()->instanceOfStorage(SharedStorage::class);
}
- private function scanFolder(Folder $folder, int $depth, bool $shared): iterable {
+ private function scanFolder(Folder $folder, int $depth, bool $shared): bool {
if ($depth > 4) {
- return [];
+ return false;
}
try {
// Ignore folder with a .noimage or .nomedia node
if ($folder->nodeExists('.noimage') || $folder->nodeExists('.nomedia')) {
- return [];
+ return false;
}
$nodes = $folder->getDirectoryListing();
} catch (StorageNotAvailableException $e) {
- return [];
+ return false;
}
foreach ($nodes as $node) {
if ($node instanceof File) {
if ($this->validFile($node, $shared)) {
- yield $folder;
- return [];
+ return true;
}
}
}
foreach ($nodes as $node) {
if ($node instanceof Folder && $this->isShared($node) === $shared) {
- yield from $this->scanFolder($node, $depth + 1, $shared);
+ if ($this->scanFolder($node, $depth + 1, $shared)) {
+ return true;
+ }
}
}
+
+ return false;
}
}