diff --git a/lib/private/App/AppManager.php b/lib/private/App/AppManager.php index 4bf15c23fa..f46ec2a584 100644 --- a/lib/private/App/AppManager.php +++ b/lib/private/App/AppManager.php @@ -287,6 +287,16 @@ class AppManager implements IAppManager { } unset($this->installedAppsCache[$appId]); $this->appConfig->setValue($appId, 'enabled', 'no'); + + // run uninstall steps + $appData = $this->getAppInfo($appId); + if (!is_null($appData)) { + \OC_App::executeRepairSteps($appId, $appData['repair-steps']['uninstall']); + } + + // emit disable hook - needed anymore ? + \OC_Hook::emit('OC_App', 'pre_disable', array('app' => $appId)); + $this->dispatcher->dispatch(ManagerEvent::EVENT_APP_DISABLE, new ManagerEvent( ManagerEvent::EVENT_APP_DISABLE, $appId )); diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php index 16e57d43eb..eba29d27cf 100644 --- a/lib/private/legacy/app.php +++ b/lib/private/legacy/app.php @@ -431,16 +431,6 @@ class OC_App { // flush self::$enabledAppsCache = []; - // run uninstall steps - $appData = OC_App::getAppInfo($app); - if (!is_null($appData)) { - OC_App::executeRepairSteps($app, $appData['repair-steps']['uninstall']); - } - - // emit disable hook - needed anymore ? - \OC_Hook::emit('OC_App', 'pre_disable', array('app' => $app)); - - // finally disable it $appManager = \OC::$server->getAppManager(); $appManager->disableApp($app); } diff --git a/settings/ajax/disableapp.php b/settings/ajax/disableapp.php index a2f9fa4269..1d9cb984e2 100644 --- a/settings/ajax/disableapp.php +++ b/settings/ajax/disableapp.php @@ -39,6 +39,6 @@ if (!array_key_exists('appid', $_POST)) { $appIds = (array)$_POST['appid']; foreach($appIds as $appId) { $appId = OC_App::cleanAppId($appId); - OC_App::disable($appId); + \OC::$server->getAppManager()->disableApp($appId); } OC_JSON::success();