From a6fea4644e955100de52c6d0ea730db00d26f06f Mon Sep 17 00:00:00 2001 From: Lucas Nogueira Date: Fri, 17 Mar 2023 15:20:39 -0300 Subject: [PATCH] refactor(android): rename PluginMethod to Command --- core/tauri/mobile/android/proguard-rules.pro | 2 +- .../java/app/tauri/annotation/PluginMethod.kt | 2 +- .../plugin/InvalidPluginMethodException.kt | 2 +- .../src/main/java/app/tauri/plugin/Plugin.kt | 6 +++--- .../main/java/app/tauri/plugin/PluginHandle.kt | 18 +++++++++--------- .../java/app/tauri/plugin/PluginManager.kt | 2 +- .../java/app/tauri/plugin/PluginMethodData.kt | 6 +++--- .../mobile/ios-api/Sources/Tauri/Tauri.swift | 2 +- core/tauri/src/plugin/mobile.rs | 2 +- .../java/com/plugin/sample/ExamplePlugin.kt | 4 ++-- .../android/src/main/java/ExamplePlugin.kt | 4 ++-- 11 files changed, 25 insertions(+), 25 deletions(-) diff --git a/core/tauri/mobile/android/proguard-rules.pro b/core/tauri/mobile/android/proguard-rules.pro index b358ce50e..c0527d9bf 100644 --- a/core/tauri/mobile/android/proguard-rules.pro +++ b/core/tauri/mobile/android/proguard-rules.pro @@ -7,7 +7,7 @@ } -keep @app.tauri.annotation.TauriPlugin public class * { - @app.tauri.annotation.PluginMethod public ; + @app.tauri.annotation.Command public ; @app.tauri.annotation.PermissionCallback ; @app.tauri.annotation.ActivityCallback ; @app.tauri.annotation.Permission ; diff --git a/core/tauri/mobile/android/src/main/java/app/tauri/annotation/PluginMethod.kt b/core/tauri/mobile/android/src/main/java/app/tauri/annotation/PluginMethod.kt index 35b4204db..e102782ae 100644 --- a/core/tauri/mobile/android/src/main/java/app/tauri/annotation/PluginMethod.kt +++ b/core/tauri/mobile/android/src/main/java/app/tauri/annotation/PluginMethod.kt @@ -5,4 +5,4 @@ package app.tauri.annotation @Retention(AnnotationRetention.RUNTIME) -annotation class PluginMethod +annotation class Command diff --git a/core/tauri/mobile/android/src/main/java/app/tauri/plugin/InvalidPluginMethodException.kt b/core/tauri/mobile/android/src/main/java/app/tauri/plugin/InvalidPluginMethodException.kt index c500e0173..371b15388 100644 --- a/core/tauri/mobile/android/src/main/java/app/tauri/plugin/InvalidPluginMethodException.kt +++ b/core/tauri/mobile/android/src/main/java/app/tauri/plugin/InvalidPluginMethodException.kt @@ -4,7 +4,7 @@ package app.tauri.plugin -internal class InvalidPluginMethodException : Exception { +internal class InvalidCommandException : Exception { constructor(s: String?) : super(s) {} constructor(t: Throwable?) : super(t) {} constructor(s: String?, t: Throwable?) : super(s, t) {} diff --git a/core/tauri/mobile/android/src/main/java/app/tauri/plugin/Plugin.kt b/core/tauri/mobile/android/src/main/java/app/tauri/plugin/Plugin.kt index 0595953d3..e2f1fa75e 100644 --- a/core/tauri/mobile/android/src/main/java/app/tauri/plugin/Plugin.kt +++ b/core/tauri/mobile/android/src/main/java/app/tauri/plugin/Plugin.kt @@ -16,7 +16,7 @@ import app.tauri.PermissionHelper import app.tauri.PermissionState import app.tauri.annotation.ActivityCallback import app.tauri.annotation.PermissionCallback -import app.tauri.annotation.PluginMethod +import app.tauri.annotation.Command import app.tauri.annotation.TauriPlugin import org.json.JSONException import java.util.* @@ -72,7 +72,7 @@ abstract class Plugin(private val activity: Activity) { * declared on the plugin. This plugin call responds with a mapping of permissions to * the associated granted status. */ - @PluginMethod + @Command @PermissionCallback fun checkPermissions(invoke: Invoke) { val permissionsResult: Map = getPermissionStates() @@ -97,7 +97,7 @@ abstract class Plugin(private val activity: Activity) { * * @param invoke */ - @PluginMethod + @Command open fun requestPermissions(invoke: Invoke) { val annotation = handle?.annotation if (annotation != null) { diff --git a/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginHandle.kt b/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginHandle.kt index 36dd3fb73..97b498f18 100644 --- a/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginHandle.kt +++ b/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginHandle.kt @@ -13,12 +13,12 @@ import app.tauri.PermissionHelper import app.tauri.PermissionState import app.tauri.annotation.ActivityCallback import app.tauri.annotation.PermissionCallback -import app.tauri.annotation.PluginMethod +import app.tauri.annotation.Command import app.tauri.annotation.TauriPlugin import java.lang.reflect.Method class PluginHandle(private val manager: PluginManager, val name: String, private val instance: Plugin) { - private val pluginMethods: HashMap = HashMap() + private val commands: HashMap = HashMap() private val permissionCallbackMethods: HashMap = HashMap() private val startActivityCallbackMethods: HashMap = HashMap() var annotation: TauriPlugin? @@ -120,22 +120,22 @@ class PluginHandle(private val manager: PluginManager, val name: String, private } @Throws( - InvalidPluginMethodException::class, + InvalidCommandException::class, IllegalAccessException::class ) fun invoke(invoke: Invoke) { - val methodMeta = pluginMethods[invoke.command] - ?: throw InvalidPluginMethodException("No command " + invoke.command + " found for plugin " + instance.javaClass.name) + val methodMeta = commands[invoke.command] + ?: throw InvalidCommandException("No command " + invoke.command + " found for plugin " + instance.javaClass.name) methodMeta.method.invoke(instance, invoke) } private fun indexMethods() { val methods: Array = instance.javaClass.methods for (method in methods) { - if (method.isAnnotationPresent(PluginMethod::class.java)) { - val pluginMethod = method.getAnnotation(PluginMethod::class.java) ?: continue - val methodMeta = PluginMethodData(method, pluginMethod) - pluginMethods[method.name] = methodMeta + if (method.isAnnotationPresent(Command::class.java)) { + val command = method.getAnnotation(Command::class.java) ?: continue + val methodMeta = CommandData(method, command) + commands[method.name] = methodMeta } else if (method.isAnnotationPresent(ActivityCallback::class.java)) { startActivityCallbackMethods[method.name] = method } else if (method.isAnnotationPresent(PermissionCallback::class.java)) { diff --git a/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginManager.kt b/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginManager.kt index 9a4929dae..d79a8cb2f 100644 --- a/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginManager.kt +++ b/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginManager.kt @@ -91,7 +91,7 @@ class PluginManager(val activity: AppCompatActivity) { } @JniMethod - fun runPluginMethod(id: Int, pluginId: String, command: String, data: JSObject) { + fun runCommand(id: Int, pluginId: String, command: String, data: JSObject) { val invoke = Invoke(id.toLong(), command, { successResult, errorResult -> handlePluginResponse(id, successResult?.toString(), errorResult?.toString()) }, data) diff --git a/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginMethodData.kt b/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginMethodData.kt index 969c60e89..87b254312 100644 --- a/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginMethodData.kt +++ b/core/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginMethodData.kt @@ -4,11 +4,11 @@ package app.tauri.plugin -import app.tauri.annotation.PluginMethod +import app.tauri.annotation.Command import java.lang.reflect.Method -class PluginMethodData( - val method: Method, methodDecorator: PluginMethod +class CommandData( + val method: Method, methodDecorator: Command ) { // The name of the method diff --git a/core/tauri/mobile/ios-api/Sources/Tauri/Tauri.swift b/core/tauri/mobile/ios-api/Sources/Tauri/Tauri.swift index 7f436bde6..205b6eff5 100644 --- a/core/tauri/mobile/ios-api/Sources/Tauri/Tauri.swift +++ b/core/tauri/mobile/ios-api/Sources/Tauri/Tauri.swift @@ -121,7 +121,7 @@ func postIpcMessage(webview: WKWebView, name: SRString, command: SRString, data: } @_cdecl("run_plugin_method") -func runPluginMethod( +func runCommand( id: Int, name: SRString, command: SRString, diff --git a/core/tauri/src/plugin/mobile.rs b/core/tauri/src/plugin/mobile.rs index 43c1b3f48..c23ffed64 100644 --- a/core/tauri/src/plugin/mobile.rs +++ b/core/tauri/src/plugin/mobile.rs @@ -324,7 +324,7 @@ impl PluginHandle { env.call_method( plugin_manager, - "runPluginMethod", + "runCommand", "(ILjava/lang/String;Ljava/lang/String;Lapp/tauri/plugin/JSObject;)V", &[ id.into(), diff --git a/examples/api/src-tauri/tauri-plugin-sample/android/src/main/java/com/plugin/sample/ExamplePlugin.kt b/examples/api/src-tauri/tauri-plugin-sample/android/src/main/java/com/plugin/sample/ExamplePlugin.kt index 915f30684..74ee8396e 100644 --- a/examples/api/src-tauri/tauri-plugin-sample/android/src/main/java/com/plugin/sample/ExamplePlugin.kt +++ b/examples/api/src-tauri/tauri-plugin-sample/android/src/main/java/com/plugin/sample/ExamplePlugin.kt @@ -5,7 +5,7 @@ package com.plugin.sample import android.app.Activity -import app.tauri.annotation.PluginMethod +import app.tauri.annotation.Command import app.tauri.annotation.TauriPlugin import app.tauri.plugin.JSObject import app.tauri.plugin.Plugin @@ -15,7 +15,7 @@ import app.tauri.plugin.Invoke class ExamplePlugin(private val activity: Activity): Plugin(activity) { private val implementation = Example() - @PluginMethod + @Command fun ping(invoke: Invoke) { val value = invoke.getString("value") ?: "" val ret = JSObject() diff --git a/tooling/cli/templates/plugin/android/src/main/java/ExamplePlugin.kt b/tooling/cli/templates/plugin/android/src/main/java/ExamplePlugin.kt index a7bd96da1..81ab5be9b 100644 --- a/tooling/cli/templates/plugin/android/src/main/java/ExamplePlugin.kt +++ b/tooling/cli/templates/plugin/android/src/main/java/ExamplePlugin.kt @@ -1,7 +1,7 @@ package {{android_package_id}} import android.app.Activity -import app.tauri.annotation.PluginMethod +import app.tauri.annotation.Command import app.tauri.annotation.TauriPlugin import app.tauri.plugin.JSObject import app.tauri.plugin.Plugin @@ -11,7 +11,7 @@ import app.tauri.plugin.Invoke class ExamplePlugin(private val activity: Activity): Plugin(activity) { private val implementation = Example() - @PluginMethod + @Command fun ping(invoke: Invoke) { val value = invoke.getString("value") ?: "" val ret = JSObject()