Skip to content

Commit c89ca89

Browse files
authored
Merge pull request nextcloud#55083 from nextcloud/carl/preview-interface-cleanup
refactor(preview): Cleanup a bit the public interface
2 parents b469840 + cb82a9e commit c89ca89

File tree

11 files changed

+64
-259
lines changed

11 files changed

+64
-259
lines changed

apps/files_sharing/tests/Controller/ShareControllerTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,7 @@ public function testShowFileDropShare(): void {
384384
$file->method('isReadable')->willReturn(true);
385385
$file->method('isShareable')->willReturn(true);
386386
$file->method('getId')->willReturn(1234);
387+
$file->method('getMimetype')->willReturn('text/plain');
387388
$file->method('getName')->willReturn($filename);
388389

389390
$accountName = $this->createMock(IAccountProperty::class);

build/psalm-baseline.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4119,14 +4119,6 @@
41194119
<code><![CDATA[\OCA\Notifications\App]]></code>
41204120
</UndefinedClass>
41214121
</file>
4122-
<file src="lib/private/Preview/ProviderV1Adapter.php">
4123-
<InvalidReturnStatement>
4124-
<code><![CDATA[$thumbnail === false ? null: $thumbnail]]></code>
4125-
</InvalidReturnStatement>
4126-
<InvalidReturnType>
4127-
<code><![CDATA[?IImage]]></code>
4128-
</InvalidReturnType>
4129-
</file>
41304122
<file src="lib/private/Profile/Actions/FediverseAction.php">
41314123
<NoValue>
41324124
<code><![CDATA[$instance]]></code>

lib/composer/composer/autoload_classmap.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,6 @@
720720
'OCP\\PreConditionNotMetException' => $baseDir . '/lib/public/PreConditionNotMetException.php',
721721
'OCP\\Preview\\BeforePreviewFetchedEvent' => $baseDir . '/lib/public/Preview/BeforePreviewFetchedEvent.php',
722722
'OCP\\Preview\\IMimeIconProvider' => $baseDir . '/lib/public/Preview/IMimeIconProvider.php',
723-
'OCP\\Preview\\IProvider' => $baseDir . '/lib/public/Preview/IProvider.php',
724723
'OCP\\Preview\\IProviderV2' => $baseDir . '/lib/public/Preview/IProviderV2.php',
725724
'OCP\\Preview\\IVersionedPreviewFile' => $baseDir . '/lib/public/Preview/IVersionedPreviewFile.php',
726725
'OCP\\Profile\\BeforeTemplateRenderedEvent' => $baseDir . '/lib/public/Profile/BeforeTemplateRenderedEvent.php',
@@ -1907,8 +1906,6 @@
19071906
'OC\\Preview\\Photoshop' => $baseDir . '/lib/private/Preview/Photoshop.php',
19081907
'OC\\Preview\\Postscript' => $baseDir . '/lib/private/Preview/Postscript.php',
19091908
'OC\\Preview\\PreviewService' => $baseDir . '/lib/private/Preview/PreviewService.php',
1910-
'OC\\Preview\\Provider' => $baseDir . '/lib/private/Preview/Provider.php',
1911-
'OC\\Preview\\ProviderV1Adapter' => $baseDir . '/lib/private/Preview/ProviderV1Adapter.php',
19121909
'OC\\Preview\\ProviderV2' => $baseDir . '/lib/private/Preview/ProviderV2.php',
19131910
'OC\\Preview\\SGI' => $baseDir . '/lib/private/Preview/SGI.php',
19141911
'OC\\Preview\\SVG' => $baseDir . '/lib/private/Preview/SVG.php',

lib/composer/composer/autoload_static.php

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,32 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
1111
);
1212

1313
public static $prefixLengthsPsr4 = array (
14-
'O' =>
14+
'O' =>
1515
array (
1616
'OC\\Core\\' => 8,
1717
'OC\\' => 3,
1818
'OCP\\' => 4,
1919
),
20-
'N' =>
20+
'N' =>
2121
array (
2222
'NCU\\' => 4,
2323
),
2424
);
2525

2626
public static $prefixDirsPsr4 = array (
27-
'OC\\Core\\' =>
27+
'OC\\Core\\' =>
2828
array (
2929
0 => __DIR__ . '/../../..' . '/core',
3030
),
31-
'OC\\' =>
31+
'OC\\' =>
3232
array (
3333
0 => __DIR__ . '/../../..' . '/lib/private',
3434
),
35-
'OCP\\' =>
35+
'OCP\\' =>
3636
array (
3737
0 => __DIR__ . '/../../..' . '/lib/public',
3838
),
39-
'NCU\\' =>
39+
'NCU\\' =>
4040
array (
4141
0 => __DIR__ . '/../../..' . '/lib/unstable',
4242
),
@@ -761,7 +761,6 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
761761
'OCP\\PreConditionNotMetException' => __DIR__ . '/../../..' . '/lib/public/PreConditionNotMetException.php',
762762
'OCP\\Preview\\BeforePreviewFetchedEvent' => __DIR__ . '/../../..' . '/lib/public/Preview/BeforePreviewFetchedEvent.php',
763763
'OCP\\Preview\\IMimeIconProvider' => __DIR__ . '/../../..' . '/lib/public/Preview/IMimeIconProvider.php',
764-
'OCP\\Preview\\IProvider' => __DIR__ . '/../../..' . '/lib/public/Preview/IProvider.php',
765764
'OCP\\Preview\\IProviderV2' => __DIR__ . '/../../..' . '/lib/public/Preview/IProviderV2.php',
766765
'OCP\\Preview\\IVersionedPreviewFile' => __DIR__ . '/../../..' . '/lib/public/Preview/IVersionedPreviewFile.php',
767766
'OCP\\Profile\\BeforeTemplateRenderedEvent' => __DIR__ . '/../../..' . '/lib/public/Profile/BeforeTemplateRenderedEvent.php',
@@ -1948,8 +1947,6 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
19481947
'OC\\Preview\\Photoshop' => __DIR__ . '/../../..' . '/lib/private/Preview/Photoshop.php',
19491948
'OC\\Preview\\Postscript' => __DIR__ . '/../../..' . '/lib/private/Preview/Postscript.php',
19501949
'OC\\Preview\\PreviewService' => __DIR__ . '/../../..' . '/lib/private/Preview/PreviewService.php',
1951-
'OC\\Preview\\Provider' => __DIR__ . '/../../..' . '/lib/private/Preview/Provider.php',
1952-
'OC\\Preview\\ProviderV1Adapter' => __DIR__ . '/../../..' . '/lib/private/Preview/ProviderV1Adapter.php',
19531950
'OC\\Preview\\ProviderV2' => __DIR__ . '/../../..' . '/lib/private/Preview/ProviderV2.php',
19541951
'OC\\Preview\\SGI' => __DIR__ . '/../../..' . '/lib/private/Preview/SGI.php',
19551952
'OC\\Preview\\SVG' => __DIR__ . '/../../..' . '/lib/private/Preview/SVG.php',

lib/private/Preview/Generator.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
use OCP\IPreview;
2323
use OCP\IStreamImage;
2424
use OCP\Preview\BeforePreviewFetchedEvent;
25-
use OCP\Preview\IProviderV2;
2625
use OCP\Preview\IVersionedPreviewFile;
2726
use Psr\Log\LoggerInterface;
2827

@@ -322,7 +321,7 @@ private function generateProviderPreview(File $file, int $width, int $height, bo
322321
foreach ($providers as $providerClosure) {
323322

324323
$provider = $this->helper->getProvider($providerClosure);
325-
if (!($provider instanceof IProviderV2)) {
324+
if (!$provider) {
326325
continue;
327326
}
328327

lib/private/Preview/GeneratorHelper.php

Lines changed: 6 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,38 +7,18 @@
77
namespace OC\Preview;
88

99
use OCP\Files\File;
10-
use OCP\Files\IRootFolder;
1110
use OCP\Files\SimpleFS\ISimpleFile;
12-
use OCP\IConfig;
1311
use OCP\IImage;
1412
use OCP\Image as OCPImage;
15-
use OCP\Preview\IProvider;
13+
use OCP\IPreview;
1614
use OCP\Preview\IProviderV2;
1715

1816
/**
1917
* Very small wrapper class to make the generator fully unit testable
18+
* @psalm-import-type ProviderClosure from IPreview
2019
*/
2120
class GeneratorHelper {
22-
/** @var IRootFolder */
23-
private $rootFolder;
24-
25-
/** @var IConfig */
26-
private $config;
27-
28-
public function __construct(IRootFolder $rootFolder, IConfig $config) {
29-
$this->rootFolder = $rootFolder;
30-
$this->config = $config;
31-
}
32-
33-
/**
34-
* @param IProviderV2 $provider
35-
* @param File $file
36-
* @param int $maxWidth
37-
* @param int $maxHeight
38-
*
39-
* @return bool|IImage
40-
*/
41-
public function getThumbnail(IProviderV2 $provider, File $file, $maxWidth, $maxHeight, bool $crop = false) {
21+
public function getThumbnail(IProviderV2 $provider, File $file, int $maxWidth, int $maxHeight, bool $crop = false): IImage|false {
4222
if ($provider instanceof Imaginary) {
4323
return $provider->getCroppedThumbnail($file, $maxWidth, $maxHeight, $crop) ?? false;
4424
}
@@ -52,14 +32,9 @@ public function getImage(ISimpleFile $maxPreview): IImage {
5232
}
5333

5434
/**
55-
* @param callable $providerClosure
56-
* @return IProviderV2
35+
* @param \Closure|string $providerClosure (string is only authorized in unit tests)
5736
*/
58-
public function getProvider($providerClosure) {
59-
$provider = $providerClosure();
60-
if ($provider instanceof IProvider) {
61-
$provider = new ProviderV1Adapter($provider);
62-
}
63-
return $provider;
37+
public function getProvider(\Closure|string $providerClosure): IProviderV2|false {
38+
return $providerClosure();
6439
}
6540
}

lib/private/Preview/Provider.php

Lines changed: 0 additions & 50 deletions
This file was deleted.

lib/private/Preview/ProviderV1Adapter.php

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)