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

Commit 56f7037d authored by Treehugger Robot's avatar Treehugger Robot Committed by Dave Mankoff
Browse files

[conflict] Merge "Handle static methods in Plugins better." into main am: 086613e0 am: 6a880e0f

parents 4b10d202 6a880e0f
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import javax.annotation.processing.RoundEnvironment
import javax.lang.model.element.Element
import javax.lang.model.element.ElementKind
import javax.lang.model.element.ExecutableElement
import javax.lang.model.element.Modifier
import javax.lang.model.element.PackageElement
import javax.lang.model.element.TypeElement
import javax.lang.model.type.TypeKind
@@ -183,11 +184,17 @@ class ProtectedPluginProcessor : AbstractProcessor() {
                    // Method implementations
                    for (method in methods) {
                        val methodName = method.simpleName
                        if (methods.any { methodName.startsWith("${it.simpleName}\$") }) {
                            continue
                        }
                        val returnTypeName = method.returnType.toString()
                        val callArgs = StringBuilder()
                        var isFirst = true
                        val isStatic = method.modifiers.contains(Modifier.STATIC)

                        if (!isStatic) {
                            line("@Override")
                        }
                        parenBlock("public $returnTypeName $methodName") {
                            // While copying the method signature for the proxy type, we also
                            // accumulate arguments for the nested callsite.
@@ -202,7 +209,8 @@ class ProtectedPluginProcessor : AbstractProcessor() {
                        }

                        val isVoid = method.returnType.kind == TypeKind.VOID
                        val nestedCall = "mInstance.$methodName($callArgs)"
                        val methodContainer = if (isStatic) sourceName else "mInstance"
                        val nestedCall = "$methodContainer.$methodName($callArgs)"
                        val callStatement =
                            when {
                                isVoid -> "$nestedCall;"