3131use OCP \ITags ;
3232use OCP \IUser ;
3333use OCP \IUserSession ;
34+ use Symfony \Component \EventDispatcher \EventDispatcherInterface ;
35+ use Symfony \Component \EventDispatcher \GenericEvent ;
3436
3537/**
3638 * Service class to manage tags on files.
@@ -45,23 +47,28 @@ class TagService {
4547 private $ tagger ;
4648 /** @var Folder */
4749 private $ homeFolder ;
50+ /** @var EventDispatcherInterface */
51+ private $ dispatcher ;
4852
4953 /**
5054 * @param IUserSession $userSession
5155 * @param IManager $activityManager
5256 * @param ITags $tagger
5357 * @param Folder $homeFolder
58+ * @param EventDispatcherInterface $dispatcher
5459 */
5560 public function __construct (
5661 IUserSession $ userSession ,
5762 IManager $ activityManager ,
5863 ITags $ tagger ,
59- Folder $ homeFolder
64+ Folder $ homeFolder ,
65+ EventDispatcherInterface $ dispatcher
6066 ) {
6167 $ this ->userSession = $ userSession ;
6268 $ this ->activityManager = $ activityManager ;
6369 $ this ->tagger = $ tagger ;
6470 $ this ->homeFolder = $ homeFolder ;
71+ $ this ->dispatcher = $ dispatcher ;
6572 }
6673
6774 /**
@@ -114,6 +121,13 @@ protected function addActivity($addToFavorite, $fileId, $path) {
114121 return ;
115122 }
116123
124+ $ eventName = $ addToFavorite ? 'addFavorite ' : 'removeFavorite ' ;
125+ $ this ->dispatcher ->dispatch (self ::class . ':: ' . $ eventName , new GenericEvent (null , [
126+ 'userId ' => $ user ->getUID (),
127+ 'fileId ' => $ fileId ,
128+ 'path ' => $ path ,
129+ ]));
130+
117131 $ event = $ this ->activityManager ->generateEvent ();
118132 try {
119133 $ event ->setApp ('files ' )
0 commit comments