Fix Kotlin stupid bug (KT-47881)

This commit is contained in:
Mygod
2021-07-25 01:25:30 -04:00
parent b2a65915fd
commit 00b869397d
3 changed files with 8 additions and 8 deletions

View File

@@ -280,7 +280,9 @@ object TetheringManager {
@Suppress("NAME_SHADOWING") val callback = reference.get() @Suppress("NAME_SHADOWING") val callback = reference.get()
return when { return when {
method.matches("onTetheringStarted") -> callback?.onTetheringStarted() method.matches("onTetheringStarted") -> callback?.onTetheringStarted()
method.matches1<Int>("onTetheringFailed") -> callback?.onTetheringFailed(args?.get(0) as Int) method.matches("onTetheringFailed", Integer.TYPE) -> {
callback?.onTetheringFailed(args?.get(0) as Int)
}
else -> callSuper(interfaceStartTetheringCallback, proxy, method, args) else -> callSuper(interfaceStartTetheringCallback, proxy, method, args)
} }
} }
@@ -539,7 +541,7 @@ object TetheringManager {
@Suppress("NAME_SHADOWING") @Suppress("NAME_SHADOWING")
val callback = reference.get() val callback = reference.get()
return when { return when {
method.matches1<Boolean>("onTetheringSupported") -> { method.matches("onTetheringSupported", Boolean::class.java) -> {
callback?.onTetheringSupported(args!![0] as Boolean) callback?.onTetheringSupported(args!![0] as Boolean)
} }
method.matches1<Network>("onUpstreamChanged") -> { method.matches1<Network>("onUpstreamChanged") -> {
@@ -559,13 +561,13 @@ object TetheringManager {
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
callback?.onTetheredInterfacesChanged(args!![0] as List<String?>) callback?.onTetheredInterfacesChanged(args!![0] as List<String?>)
} }
method.matches2<String, Int>("onError") -> { method.matches("onError", String::class.java, Integer.TYPE) -> {
callback?.onError(args!![0] as String, args[1] as Int) callback?.onError(args!![0] as String, args[1] as Int)
} }
method.matches1<java.util.Collection<*>>("onClientsChanged") -> { method.matches1<java.util.Collection<*>>("onClientsChanged") -> {
callback?.onClientsChanged(args!![0] as Collection<*>) callback?.onClientsChanged(args!![0] as Collection<*>)
} }
method.matches1<Int>("onOffloadStatusChanged") -> { method.matches("onOffloadStatusChanged", Integer.TYPE) -> {
callback?.onOffloadStatusChanged(args!![0] as Int) callback?.onOffloadStatusChanged(args!![0] as Int)
} }
else -> callSuper(interfaceTetheringEventCallback, proxy, method, args) else -> callSuper(interfaceTetheringEventCallback, proxy, method, args)

View File

@@ -257,10 +257,10 @@ object WifiApManager {
private fun invokeActual(proxy: Any, method: Method, args: Array<out Any?>?): Any? { private fun invokeActual(proxy: Any, method: Method, args: Array<out Any?>?): Any? {
return when { return when {
method.matches2<Int, Int>("onStateChanged") -> { method.matches("onStateChanged", Integer.TYPE, Integer.TYPE) -> {
callback.onStateChanged(args!![0] as Int, args[1] as Int) callback.onStateChanged(args!![0] as Int, args[1] as Int)
} }
method.matches1<Int>("onNumClientsChanged") -> @Suppress("DEPRECATION") { method.matches("onNumClientsChanged", Integer.TYPE) -> @Suppress("DEPRECATION") {
if (Build.VERSION.SDK_INT >= 30) Timber.w(Exception("Unexpected onNumClientsChanged")) if (Build.VERSION.SDK_INT >= 30) Timber.w(Exception("Unexpected onNumClientsChanged"))
callback.onNumClientsChanged(args!![0] as Int) callback.onNumClientsChanged(args!![0] as Int)
} }

View File

@@ -58,8 +58,6 @@ fun Method.matches(name: String, vararg classes: Class<*>) = this.name == name &
(0 until parameterCount).all { i -> parameters[i].type == classes[i] } (0 until parameterCount).all { i -> parameters[i].type == classes[i] }
@RequiresApi(26) @RequiresApi(26)
inline fun <reified T> Method.matches1(name: String) = matches(name, T::class.java) inline fun <reified T> Method.matches1(name: String) = matches(name, T::class.java)
@RequiresApi(26)
inline fun <reified T0, reified T1> Method.matches2(name: String) = matches(name, T0::class.java, T1::class.java)
fun Context.ensureReceiverUnregistered(receiver: BroadcastReceiver) { fun Context.ensureReceiverUnregistered(receiver: BroadcastReceiver) {
try { try {