From 3327242c2e59efe23b856e3e4c950de5d03cac7c Mon Sep 17 00:00:00 2001 From: Mygod Date: Sun, 31 May 2020 02:57:20 +0800 Subject: [PATCH] Fix args can be null --- .../mygod/vpnhotspot/net/TetheringManager.kt | 37 ++++++++++--------- .../net/wifi/WifiP2pManagerHelper.kt | 2 +- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/net/TetheringManager.kt b/mobile/src/main/java/be/mygod/vpnhotspot/net/TetheringManager.kt index 96407a05..931bffeb 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/net/TetheringManager.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/net/TetheringManager.kt @@ -263,13 +263,13 @@ object TetheringManager { @Suppress("NAME_SHADOWING") val callback = reference.get() when (val name = method.name) { "onTetheringStarted" -> { - if (args.isNotEmpty()) Timber.w("Unexpected args for $name: $args") + if (!args.isNullOrEmpty()) Timber.w("Unexpected args for $name: $args") callback?.onTetheringStarted() null } "onTetheringFailed" -> { - if (args.size != 1) Timber.w("Unexpected args for $name: $args") - callback?.onTetheringFailed(args.getOrNull(0) as? Int?) + if (args?.size != 1) Timber.w("Unexpected args for $name: $args") + callback?.onTetheringFailed(args?.getOrNull(0) as? Int?) null } else -> { @@ -457,42 +457,43 @@ object TetheringManager { Proxy.newProxyInstance(interfaceTetheringEventCallback.classLoader, arrayOf(interfaceTetheringEventCallback), object : InvocationHandler { private var regexpsSent = false - override fun invoke(proxy: Any, method: Method, args: Array): Any? { + override fun invoke(proxy: Any, method: Method, args: Array?): Any? { @Suppress("NAME_SHADOWING") val callback = reference.get() + val noArgs = args?.size ?: 0 when (val name = method.name) { "onTetheringSupported" -> { - if (args.size > 1) Timber.w("Unexpected args for $name: $args") - callback?.onTetheringSupported(args[0] as Boolean) + if (noArgs != 1) Timber.w("Unexpected args for $name: $args") + callback?.onTetheringSupported(args!![0] as Boolean) } "onUpstreamChanged" -> { - if (args.size > 1) Timber.w("Unexpected args for $name: $args") - callback?.onUpstreamChanged(args[0] as Network?) + if (noArgs != 1) Timber.w("Unexpected args for $name: $args") + callback?.onUpstreamChanged(args!![0] as Network?) } "onTetherableInterfaceRegexpsChanged" -> { if (regexpsSent) callback?.onTetherableInterfaceRegexpsChanged() regexpsSent = true } "onTetherableInterfacesChanged" -> { - if (args.size > 1) Timber.w("Unexpected args for $name: $args") + if (noArgs != 1) Timber.w("Unexpected args for $name: $args") @Suppress("UNCHECKED_CAST") - callback?.onTetherableInterfacesChanged(args[0] as List) + callback?.onTetherableInterfacesChanged(args!![0] as List) } "onTetheredInterfacesChanged" -> { - if (args.size > 1) Timber.w("Unexpected args for $name: $args") + if (noArgs != 1) Timber.w("Unexpected args for $name: $args") @Suppress("UNCHECKED_CAST") - callback?.onTetheredInterfacesChanged(args[0] as List) + callback?.onTetheredInterfacesChanged(args!![0] as List) } "onError" -> { - if (args.size > 2) Timber.w("Unexpected args for $name: $args") - callback?.onError(args[0] as String, args[1] as Int) + if (noArgs != 2) Timber.w("Unexpected args for $name: $args") + callback?.onError(args!![0] as String, args[1] as Int) } "onClientsChanged" -> { - if (args.size > 1) Timber.w("Unexpected args for $name: $args") - callback?.onClientsChanged(args[0] as Iterable<*>) + if (noArgs != 1) Timber.w("Unexpected args for $name: $args") + callback?.onClientsChanged(args!![0] as Iterable<*>) } "onOffloadStatusChanged" -> { - if (args.size > 1) Timber.w("Unexpected args for $name: $args") - callback?.onOffloadStatusChanged(args[0] as Int) + if (noArgs != 1) Timber.w("Unexpected args for $name: $args") + callback?.onOffloadStatusChanged(args!![0] as Int) } else -> { Timber.w("Unexpected method, calling super: $method") diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pManagerHelper.kt b/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pManagerHelper.kt index 00d93577..e0d6398a 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pManagerHelper.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/net/wifi/WifiP2pManagerHelper.kt @@ -92,7 +92,7 @@ object WifiP2pManagerHelper { val proxy = Proxy.newProxyInstance(interfacePersistentGroupInfoListener.classLoader, arrayOf(interfacePersistentGroupInfoListener)) { proxy, method, args -> if (method.name == "onPersistentGroupInfoAvailable") { - if (args.size != 1) Timber.w(IllegalArgumentException("Unexpected args: $args")) + if (args?.size != 1) Timber.w(IllegalArgumentException("Unexpected args: $args")) @Suppress("UNCHECKED_CAST") listener(getGroupList.invoke(args[0]) as Collection) null