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

Commit fa2986b6 authored by Hawkwood Glazier's avatar Hawkwood Glazier Committed by Android (Google) Code Review
Browse files

Merge "Check Version of target plugin in PluginInstance" into main

parents 4d3642c5 2050d626
Loading
Loading
Loading
Loading
+14 −10
Original line number Diff line number Diff line
@@ -133,16 +133,20 @@ class PluginInstanceTest : SysuiTestCase() {

        mVersionCheckResult = false
        assertFalse(mPluginInstance.hasError)
        mPluginInstanceFactory.create(

        mPluginInstanceFactory
            .create(
                mContext,
                mAppInfo,
                wrongVersionTestPluginComponentName,
                TestPlugin::class.java,
                mPluginListener,
            )
        assertRunnableLogsWtf { mPluginInstance.onCreate() }
        assertTrue(mPluginInstance.hasError)
        assertNull(mPluginInstance.plugin)
            ?.let { errorInstance ->
                assertRunnableLogsWtf { errorInstance.onCreate() }
                assertTrue(errorInstance.hasError)
                assertNull(errorInstance.plugin)
            } ?: fail("returned null plugin instance")
    }

    @Test
+3 −4
Original line number Diff line number Diff line
@@ -161,7 +161,7 @@ class PluginInstance<T : Plugin>(
                    return
                }

        if (!checkVersion()) {
        if (!checkVersion(plugin)) {
            logger.d("onCreate: version check failed")
            return
        }
@@ -210,7 +210,7 @@ class PluginInstance<T : Plugin>(
            return
        }

        if (!checkVersion()) {
        if (!checkVersion(plugin)) {
            logger.e("loadPlugin: version check failed")
            return
        }
@@ -228,9 +228,8 @@ class PluginInstance<T : Plugin>(

    /** Checks the plugin version, and permanently destroys the plugin instance on a failure */
    @Synchronized
    private fun checkVersion(): Boolean {
    private fun checkVersion(plugin: T): Boolean {
        if (hasError) return false
        val (plugin, _) = pluginData ?: return true
        if (pluginFactory.checkVersion(plugin)) return true

        logger.wtf({ "Version check failed for '$str1'" }) { str1 = debugName }