Use executor more intelligently
This commit is contained in:
@@ -128,13 +128,12 @@ object WifiApManager {
|
|||||||
@get:RequiresApi(30)
|
@get:RequiresApi(30)
|
||||||
val featureLookup by lazy { LongConstantLookup(classSoftApCapability, "SOFTAP_FEATURE_") }
|
val featureLookup by lazy { LongConstantLookup(classSoftApCapability, "SOFTAP_FEATURE_") }
|
||||||
|
|
||||||
private val methods29 = setOf("onStateChanged", "onNumClientsChanged")
|
|
||||||
@RequiresApi(28)
|
@RequiresApi(28)
|
||||||
fun registerSoftApCallback(callback: SoftApCallbackCompat, executor: Executor): Any {
|
fun registerSoftApCallback(callback: SoftApCallbackCompat, executor: Executor): Any {
|
||||||
val proxy = Proxy.newProxyInstance(interfaceSoftApCallback.classLoader,
|
val proxy = Proxy.newProxyInstance(interfaceSoftApCallback.classLoader,
|
||||||
arrayOf(interfaceSoftApCallback), object : InvocationHandler {
|
arrayOf(interfaceSoftApCallback), object : InvocationHandler {
|
||||||
override fun invoke(proxy: Any, method: Method, args: Array<out Any?>?) =
|
override fun invoke(proxy: Any, method: Method, args: Array<out Any?>?) =
|
||||||
if (Build.VERSION.SDK_INT < 30 && method.name in methods29) {
|
if (Build.VERSION.SDK_INT < 30 && interfaceSoftApCallback === method.declaringClass) {
|
||||||
executor.execute { invokeActual(proxy, method, args) }
|
executor.execute { invokeActual(proxy, method, args) }
|
||||||
null // no return value as of API 30
|
null // no return value as of API 30
|
||||||
} else invokeActual(proxy, method, args)
|
} else invokeActual(proxy, method, args)
|
||||||
|
|||||||
Reference in New Issue
Block a user