summaryrefslogtreecommitdiffstats
path: root/lib/base.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/base.php')
-rw-r--r--lib/base.php17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/base.php b/lib/base.php
index 3457a74e989..a69a4dffef8 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -725,6 +725,7 @@ class OC {
self::registerLogRotate();
self::registerEncryptionWrapper();
self::registerEncryptionHooks();
+ self::registerSettingsHooks();
//make sure temporary files are cleaned up
$tmpManager = \OC::$server->getTempManager();
@@ -803,6 +804,22 @@ class OC {
}
}
+ public static function registerSettingsHooks() {
+ $dispatcher = \OC::$server->getEventDispatcher();
+ $dispatcher->addListener(OCP\App\ManagerEvent::EVENT_APP_DISABLE, function($event) {
+ /** @var \OCP\App\ManagerEvent $event */
+ \OC::$server->getSettingsManager()->onAppDisabled($event->getAppID());
+ });
+ $dispatcher->addListener(OCP\App\ManagerEvent::EVENT_APP_UPDATE, function($event) {
+ /** @var \OCP\App\ManagerEvent $event */
+ $jobList = \OC::$server->getJobList();
+ $job = 'OC\\Settings\\RemoveOrphaned';
+ if(!($jobList->has($job, null))) {
+ $jobList->add($job);
+ }
+ });
+ }
+
private static function registerEncryptionWrapper() {
$manager = self::$server->getEncryptionManager();
\OCP\Util::connectHook('OC_Filesystem', 'preSetup', $manager, 'setupStorage');