From 04cad4ded1d34863fe26ded6212875dc47917455 Mon Sep 17 00:00:00 2001 From: Mygod Date: Fri, 3 Jul 2020 12:38:33 +0800 Subject: [PATCH] Refine code style --- .../be/mygod/vpnhotspot/net/wifi/WifiApManager.kt | 11 +++++------ .../src/main/java/be/mygod/vpnhotspot/util/Utils.kt | 12 ++++++------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiApManager.kt b/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiApManager.kt index 80310d1c..ab3a2028 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiApManager.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiApManager.kt @@ -133,12 +133,11 @@ object WifiApManager { fun registerSoftApCallback(callback: SoftApCallbackCompat, executor: Executor): Any { val proxy = Proxy.newProxyInstance(interfaceSoftApCallback.classLoader, arrayOf(interfaceSoftApCallback), object : InvocationHandler { - override fun invoke(proxy: Any, method: Method, args: Array?): Any? { - return if (Build.VERSION.SDK_INT >= 30 || method.name !in methods29) invokeActual(proxy, method, args) else { - executor.execute { invokeActual(proxy, method, args) } - null // no return value as of API 30 - } - } + override fun invoke(proxy: Any, method: Method, args: Array?) = + if (Build.VERSION.SDK_INT < 30 && method.name in methods29) { + executor.execute { invokeActual(proxy, method, args) } + null // no return value as of API 30 + } else invokeActual(proxy, method, args) private fun invokeActual(proxy: Any, method: Method, args: Array?): Any? { val noArgs = args?.size ?: 0 diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt b/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt index 8aae58e6..3ecb54ee 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt @@ -135,14 +135,14 @@ private val newLookup by lazy @TargetApi(26) { * * See also: https://stackoverflow.com/a/49532463/2245107 */ -fun InvocationHandler.callSuper(interfaceClass: Class<*>, proxy: Any, method: Method, args: Array?): Any? { - return if (Build.VERSION.SDK_INT >= 26 && method.isDefault) newLookup.newInstance(interfaceClass, 0xf) // ALL_MODES +fun InvocationHandler.callSuper(interfaceClass: Class<*>, proxy: Any, method: Method, args: Array?) = when { + Build.VERSION.SDK_INT >= 26 && method.isDefault -> newLookup.newInstance(interfaceClass, 0xf) // ALL_MODES .`in`(interfaceClass).unreflectSpecial(method, interfaceClass).bindTo(proxy).run { if (args == null) invokeWithArguments() else invokeWithArguments(*args) - } else if (method.declaringClass === Object::class.java) { - // otherwise, we just redispatch it to InvocationHandler - if (args == null) method(this) else method(this, *args) - } else { + } + // otherwise, we just redispatch it to InvocationHandler + method.declaringClass.isAssignableFrom(javaClass) -> if (args == null) method(this) else method(this, *args) + else -> { Timber.w("Unhandled method: $method(${args?.contentDeepToString()})") null }