4040 */
4141namespace OC ;
4242
43+ use OC \App \AppManager ;
4344use OC \DB \Connection ;
4445use OC \DB \MigrationService ;
4546use OC \Hooks \BasicEmitter ;
4647use OC \IntegrityCheck \Checker ;
4748use OC_App ;
49+ use OCP \App \IAppManager ;
4850use OCP \HintException ;
4951use OCP \IConfig ;
5052use OCP \ILogger ;
@@ -265,9 +267,12 @@ private function doUpgrade(string $currentVersion, string $installedVersion): vo
265267 // Update the appfetchers version so it downloads the correct list from the appstore
266268 \OC ::$ server ->getAppFetcher ()->setVersion ($ currentVersion );
267269
270+ /** @var IAppManager|AppManager $appManager */
271+ $ appManager = \OC ::$ server ->getAppManager ();
272+
268273 // upgrade appstore apps
269- $ this ->upgradeAppStoreApps (\ OC :: $ server -> getAppManager () ->getInstalledApps ());
270- $ autoDisabledApps = \ OC :: $ server -> getAppManager () ->getAutoDisabledApps ();
274+ $ this ->upgradeAppStoreApps ($ appManager ->getInstalledApps ());
275+ $ autoDisabledApps = $ appManager ->getAutoDisabledApps ();
271276 $ this ->upgradeAppStoreApps ($ autoDisabledApps , true );
272277
273278 // install new shipped apps on upgrade
@@ -400,7 +405,7 @@ private function isCodeUpgrade(): bool {
400405 * @throws \Exception
401406 */
402407 private function upgradeAppStoreApps (array $ disabledApps , bool $ reenable = false ): void {
403- foreach ($ disabledApps as $ app ) {
408+ foreach ($ disabledApps as $ app => $ previousEnableSetting ) {
404409 try {
405410 $ this ->emit ('\OC\Updater ' , 'checkAppStoreAppBefore ' , [$ app ]);
406411 if ($ this ->installer ->isUpdateAvailable ($ app )) {
@@ -411,7 +416,11 @@ private function upgradeAppStoreApps(array $disabledApps, bool $reenable = false
411416
412417 if ($ reenable ) {
413418 $ ocApp = new \OC_App ();
414- $ ocApp ->enable ($ app );
419+ if (!empty ($ previousEnableSetting )) {
420+ $ ocApp ->enable ($ app , $ previousEnableSetting );
421+ } else {
422+ $ ocApp ->enable ($ app );
423+ }
415424 }
416425 } catch (\Exception $ ex ) {
417426 $ this ->log ->error ($ ex ->getMessage (), [
0 commit comments