diff options
author | Morris Jobke <hey@morrisjobke.de> | 2016-12-02 20:05:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-02 20:05:50 +0100 |
commit | 2bc931dd102cb51b0838e306f2277a00dcdc3051 (patch) | |
tree | 0d2057c5472c8dd2dfa3aefc2b4c56f3e5fab14d /apps | |
parent | 95243f49b65342530d777692d07aa358cd7d1cc3 (diff) | |
parent | 5ba13dd0e41d37c4087c1d0c02fc758983e97e31 (diff) | |
download | nextcloud-server-2bc931dd102cb51b0838e306f2277a00dcdc3051.tar.gz nextcloud-server-2bc931dd102cb51b0838e306f2277a00dcdc3051.zip |
Merge pull request #2437 from nextcloud/update-notification-icons
Use an icon for the update notifications
Diffstat (limited to 'apps')
-rw-r--r-- | apps/updatenotification/appinfo/app.php | 5 | ||||
-rw-r--r-- | apps/updatenotification/img/notification.svg | 1 | ||||
-rw-r--r-- | apps/updatenotification/lib/Notification/Notifier.php | 19 | ||||
-rw-r--r-- | apps/updatenotification/tests/Notification/NotifierTest.php | 15 |
4 files changed, 30 insertions, 10 deletions
diff --git a/apps/updatenotification/appinfo/app.php b/apps/updatenotification/appinfo/app.php index f5bcf345669..e3010d418bb 100644 --- a/apps/updatenotification/appinfo/app.php +++ b/apps/updatenotification/appinfo/app.php @@ -43,10 +43,7 @@ if(\OC::$server->getConfig()->getSystemValue('updatechecker', true) === true) { $manager = \OC::$server->getNotificationManager(); $manager->registerNotifier(function() use ($manager) { - return new \OCA\UpdateNotification\Notification\Notifier( - $manager, - \OC::$server->getL10NFactory() - ); + return \OC::$server->query(\OCA\UpdateNotification\Notification\Notifier::class); }, function() { $l = \OC::$server->getL10N('updatenotification'); return [ diff --git a/apps/updatenotification/img/notification.svg b/apps/updatenotification/img/notification.svg new file mode 100644 index 00000000000..7a3f6270cbd --- /dev/null +++ b/apps/updatenotification/img/notification.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewbox="0 0 16 16"><path d="M6.938 0A.43.43 0 0 0 6.5.438v1.25a5.818 5.818 0 0 0-1.53.656l-.907-.906a.436.436 0 0 0-.625 0l-1.5 1.5a.436.436 0 0 0 0 .624l.906.907c-.285.48-.514.976-.656 1.53H.938a.43.43 0 0 0-.438.438v2.125C.5 8.81.69 9 .938 9h1.25a5.82 5.82 0 0 0 .656 1.53l-.907.908a.436.436 0 0 0 0 .625l1.5 1.5c.176.176.45.176.625 0l.907-.907c.48.285.976.514 1.53.656v1.25c0 .25.19.438.437.438h2.125a.43.43 0 0 0 .438-.438v-1.25a5.82 5.82 0 0 0 1.53-.657l.907.907c.176.175.45.175.625 0l1.5-1.5a.436.436 0 0 0 0-.625l-.906-.906A5.79 5.79 0 0 0 13.812 9h1.25a.43.43 0 0 0 .438-.438V6.437A.43.43 0 0 0 15.062 6h-1.25a5.79 5.79 0 0 0-.656-1.532l.906-.906a.436.436 0 0 0 0-.625l-1.5-1.5a.436.436 0 0 0-.625 0l-.906.906a5.816 5.816 0 0 0-1.53-.656V.437A.43.43 0 0 0 9.063 0zM8 4.157a3.344 3.344 0 0 1 0 6.686 3.344 3.344 0 0 1 0-6.686z" display="block"/></svg> diff --git a/apps/updatenotification/lib/Notification/Notifier.php b/apps/updatenotification/lib/Notification/Notifier.php index 3e1bc94425f..00cc94095ca 100644 --- a/apps/updatenotification/lib/Notification/Notifier.php +++ b/apps/updatenotification/lib/Notification/Notifier.php @@ -24,6 +24,7 @@ namespace OCA\UpdateNotification\Notification; +use OCP\IURLGenerator; use OCP\L10N\IFactory; use OCP\Notification\IManager; use OCP\Notification\INotification; @@ -31,6 +32,9 @@ use OCP\Notification\INotifier; class Notifier implements INotifier { + /** @var IURLGenerator */ + protected $url; + /** @var IManager */ protected $notificationManager; @@ -43,10 +47,12 @@ class Notifier implements INotifier { /** * Notifier constructor. * + * @param IURLGenerator $url * @param IManager $notificationManager * @param IFactory $l10NFactory */ - public function __construct(IManager $notificationManager, IFactory $l10NFactory) { + public function __construct(IURLGenerator $url, IManager $notificationManager, IFactory $l10NFactory) { + $this->url = $url; $this->notificationManager = $notificationManager; $this->l10NFactory = $l10NFactory; $this->appVersions = $this->getAppVersions(); @@ -78,9 +84,18 @@ class Notifier implements INotifier { $this->updateAlreadyInstalledCheck($notification, $this->appVersions[$notification->getObjectType()]); } - $notification->setParsedSubject($l->t('Update for %1$s to version %2$s is available.', [$appName, $notification->getObjectId()])); + $notification->setParsedSubject($l->t('Update for %1$s to version %2$s is available.', [$appName, $notification->getObjectId()])) + ->setRichSubject($l->t('Update for {app} to version %s is available.', $notification->getObjectId()), [ + 'app' => [ + 'type' => 'app', + 'id' => $notification->getObjectType(), + 'name' => $appName, + ] + ]); } + $notification->setIcon($this->url->getAbsoluteURL($this->url->imagePath('updatenotification', 'notification.svg'))); + return $notification; } diff --git a/apps/updatenotification/tests/Notification/NotifierTest.php b/apps/updatenotification/tests/Notification/NotifierTest.php index e5ccb291b5c..421fcada689 100644 --- a/apps/updatenotification/tests/Notification/NotifierTest.php +++ b/apps/updatenotification/tests/Notification/NotifierTest.php @@ -24,12 +24,16 @@ namespace OCA\UpdateNotification\Tests\Notification; use OCA\UpdateNotification\Notification\Notifier; +use OCP\IURLGenerator; use OCP\L10N\IFactory; use OCP\Notification\IManager; +use OCP\Notification\INotification; use Test\TestCase; class NotifierTest extends TestCase { + /** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */ + protected $urlGenerator; /** @var IManager|\PHPUnit_Framework_MockObject_MockObject */ protected $notificationManager; /** @var IFactory|\PHPUnit_Framework_MockObject_MockObject */ @@ -38,8 +42,9 @@ class NotifierTest extends TestCase { public function setUp() { parent::setUp(); - $this->notificationManager = $this->getMockBuilder('OCP\Notification\IManager')->getMock(); - $this->l10nFactory = $this->getMockBuilder('OCP\L10n\IFactory')->getMock(); + $this->urlGenerator = $this->createMock(IURLGenerator::class); + $this->notificationManager = $this->createMock(IManager::class); + $this->l10nFactory = $this->createMock(IFactory::class); } /** @@ -49,12 +54,14 @@ class NotifierTest extends TestCase { protected function getNotifier(array $methods = []) { if (empty($methods)) { return new Notifier( + $this->urlGenerator, $this->notificationManager, $this->l10nFactory ); } { - return $this->getMockBuilder('OCA\UpdateNotification\Notification\Notifier') + return $this->getMockBuilder(Notifier::class) ->setConstructorArgs([ + $this->urlGenerator, $this->notificationManager, $this->l10nFactory, ]) @@ -81,7 +88,7 @@ class NotifierTest extends TestCase { public function testUpdateAlreadyInstalledCheck($versionNotification, $versionInstalled, $exception) { $notifier = $this->getNotifier(); - $notification = $this->getMockBuilder('OCP\Notification\INotification')->getMock(); + $notification = $this->createMock(INotification::class); $notification->expects($this->once()) ->method('getObjectId') ->willReturn($versionNotification); |