urlGenerator = $urlGenerator; $this->activityManager = $activityManager; $this->l10n = $l10n; } public function parse($language, IEvent $event, ?IEvent $previousEvent = null): IEvent { if ($event->getApp() !== 'twofactor_backupcodes') { throw new InvalidArgumentException(); } $l = $this->l10n->get('twofactor_backupcodes', $language); switch ($event->getSubject()) { case 'codes_generated': $event->setParsedSubject($l->t('You created two-factor backup codes for your account')); if ($this->activityManager->getRequirePNG()) { $event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/password.png'))); } else { $event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/password.svg'))); } break; default: throw new InvalidArgumentException(); } return $event; } }