Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71a5b918 authored by Lucas Dupin's avatar Lucas Dupin Committed by Automerger Merge Worker
Browse files

Merge "Temp tracking of plugin load/unload requests" into udc-dev am: 12c50fbf

parents c47643c0 12c50fbf
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -403,12 +403,14 @@ open class ClockRegistry(
        }

        scope.launch(bgDispatcher) {
            Log.i(TAG, "verifyLoadedProviders: ${availableClocks.size}")
            if (keepAllLoaded) {
                // Enforce that all plugins are loaded if requested
                for ((_, info) in availableClocks) {
                    info.manager?.loadPlugin()
                }
                isVerifying.set(false)
                Log.i(TAG, "verifyLoadedProviders: keepAllLoaded=true, load all")
                return@launch
            }

@@ -419,16 +421,21 @@ open class ClockRegistry(
                    info.manager?.unloadPlugin()
                }
                isVerifying.set(false)
                Log.i(TAG, "verifyLoadedProviders: currentClock unavailable, unload all")
                return@launch
            }

            val currentManager = currentClock.manager
            currentManager?.loadPlugin()
            Log.i(TAG, "verifyLoadedProviders: load ${currentClock.metadata.clockId}")

            for ((_, info) in availableClocks) {
                val manager = info.manager
                if (manager != null && manager.isLoaded && currentManager != manager) {
                    Log.i(TAG, "verifyLoadedProviders: unload ${info.metadata.clockId}")
                    manager.unloadPlugin()
                } else {
                    Log.i(TAG, "verifyLoadedProviders: skip unload of ${info.metadata.clockId}")
                }
            }
            isVerifying.set(false)