aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDaniel Kesselberg <mail@danielkesselberg.de>2023-06-06 23:12:40 +0200
committerDaniel Kesselberg <mail@danielkesselberg.de>2023-06-23 16:27:35 +0200
commit440f882322562af6040c0c4634903574f572f146 (patch)
tree47bd477996f24fe4417ba4377e384f490250d0ea /lib
parent05f360c5ec76bf87f55bdbc0385aa7972ec11cbd (diff)
downloadnextcloud-server-440f882322562af6040c0c4634903574f572f146.tar.gz
nextcloud-server-440f882322562af6040c0c4634903574f572f146.zip
feat: add width, height, crop and mode to BeforePreviewFetchedEvent
user_usage_report keeps a counter for files read. The app uses - OC_Filesystem::read hook - Event listener (the legacy one) for IPreview::EVENT Request for previews do not trigger the hook, hence the additional event listener. The thumbnails for a list or grid view should not count, so we need the width and height. Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
Diffstat (limited to 'lib')
-rw-r--r--lib/private/Preview/Generator.php8
-rw-r--r--lib/public/Preview/BeforePreviewFetchedEvent.php45
2 files changed, 47 insertions, 6 deletions
diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php
index 3ce44913498..c9949c82a97 100644
--- a/lib/private/Preview/Generator.php
+++ b/lib/private/Preview/Generator.php
@@ -91,7 +91,7 @@ class Generator {
* @param int $height
* @param bool $crop
* @param string $mode
- * @param string $mimeType
+ * @param string|null $mimeType
* @return ISimpleFile
* @throws NotFoundException
* @throws \InvalidArgumentException if the preview would be invalid (in case the original image is invalid)
@@ -109,7 +109,11 @@ class Generator {
new GenericEvent($file, $specification)
);
$this->eventDispatcher->dispatchTyped(new BeforePreviewFetchedEvent(
- $file
+ $file,
+ $width,
+ $height,
+ $crop,
+ $mode,
));
// since we only ask for one preview, and the generate method return the last one it created, it returns the one we want
diff --git a/lib/public/Preview/BeforePreviewFetchedEvent.php b/lib/public/Preview/BeforePreviewFetchedEvent.php
index 37da63b95a1..19048e08620 100644
--- a/lib/public/Preview/BeforePreviewFetchedEvent.php
+++ b/lib/public/Preview/BeforePreviewFetchedEvent.php
@@ -27,19 +27,27 @@ declare(strict_types=1);
namespace OCP\Preview;
use OCP\Files\Node;
+use OCP\IPreview;
/**
* @since 25.0.1
*/
class BeforePreviewFetchedEvent extends \OCP\EventDispatcher\Event {
- private Node $node;
-
/**
* @since 25.0.1
*/
- public function __construct(Node $node) {
+ public function __construct(
+ private Node $node,
+ /** @deprecated 28.0.0 null deprecated **/
+ private ?int $width = null,
+ /** @deprecated 28.0.0 null deprecated **/
+ private ?int $height = null,
+ /** @deprecated 28.0.0 null deprecated **/
+ private ?bool $crop = null,
+ /** @deprecated 28.0.0 null deprecated **/
+ private ?string $mode = null,
+ ) {
parent::__construct();
- $this->node = $node;
}
/**
@@ -48,4 +56,33 @@ class BeforePreviewFetchedEvent extends \OCP\EventDispatcher\Event {
public function getNode(): Node {
return $this->node;
}
+
+ /**
+ * @since 28.0.0
+ */
+ public function getWidth(): ?int {
+ return $this->width;
+ }
+
+ /**
+ * @since 28.0.0
+ */
+ public function getHeight(): ?int {
+ return $this->height;
+ }
+
+ /**
+ * @since 28.0.0
+ */
+ public function isCrop(): ?bool {
+ return $this->crop;
+ }
+
+ /**
+ * @since 28.0.0
+ * @return null|IPreview::MODE_FILL|IPreview::MODE_COVER
+ */
+ public function getMode(): ?string {
+ return $this->mode;
+ }
}