@@ -292,7 +292,7 @@ public function get(GroupHelper $groupHelper, UserSettings $userSettings, string
292292
293293 $ query = $ this ->connection ->getQueryBuilder ();
294294 $ query ->select ('* ' )
295- ->from ('activity ' );
295+ ->from ('activity ' , ' a ' );
296296
297297 $ this ->applyStreamConditions ($ query , $ userSettings , $ user , $ filter , $ activeFilter , $ objectType , $ objectId , $ search );
298298
@@ -362,6 +362,30 @@ private function applyStreamConditions(
362362 } elseif ($ filter === 'filter ' ) {
363363 $ query ->andWhere ($ query ->expr ()->eq ('object_type ' , $ query ->createNamedParameter ($ objectType )));
364364 $ query ->andWhere ($ query ->expr ()->eq ('object_id ' , $ query ->createNamedParameter ($ objectId )));
365+ } elseif ($ filter === 'focused ' ) {
366+ // Only activity related to files owned by the user
367+ $ query ->leftJoin ('a ' , 'filecache ' , 'f ' ,
368+ $ query ->expr ()->andX (
369+ $ query ->expr ()->eq ('a.object_type ' , $ query ->createNamedParameter ('files ' )),
370+ $ query ->expr ()->eq ('a.object_id ' , 'f.fileid ' ),
371+ ));
372+ $ query ->leftJoin ('f ' , 'mounts ' , 'm ' ,
373+ $ query ->expr ()->andX (
374+ $ query ->expr ()->eq ('a.object_type ' , $ query ->createNamedParameter ('files ' )),
375+ $ query ->expr ()->eq ('f.storage ' , 'm.storage_id ' ),
376+ ));
377+ // Filter out our own activity
378+ $ query ->andWhere ($ query ->expr ()->neq ('user ' , $ query ->createNamedParameter ($ user )));
379+ $ query ->andWhere (
380+ $ query ->expr ()->orX (
381+ // Affected object is one of our files
382+ $ query ->expr ()->eq ('m.mount_point ' , $ query ->createNamedParameter ('/ ' . $ user . '/ ' )),
383+ // There is no affected object, so the activity affects our user directly
384+ $ query ->expr ()->eq ('object_type ' , $ query ->createNamedParameter ('' )),
385+ // Show all sharing related events
386+ $ query ->expr ()->eq ('app ' , $ query ->createNamedParameter ('files_sharing ' )),
387+ )
388+ );
365389 }
366390
367391 if ($ activeFilter instanceof IFilter) {
0 commit comments