fix: bug in change interface listener

This commit is contained in:
Hiddify
2024-02-16 17:36:44 +01:00
parent 7f32682c59
commit f851ebbde5

View File

@@ -1,4 +1,5 @@
package com.hiddify.hiddify.bg package com.hiddify.hiddify.bg
import java.net.NetworkInterface
import android.net.Network import android.net.Network
import android.os.Build import android.os.Build
@@ -35,9 +36,23 @@ object DefaultNetworkMonitor {
newNetwork: Network? newNetwork: Network?
) { ) {
val listener = listener ?: return val listener = listener ?: return
val link = Application.connectivity.getLinkProperties(newNetwork ?: return) ?: return if (newNetwork != null) {
listener.updateDefaultInterface(link.interfaceName, -1) val interfaceName =
(Application.connectivity.getLinkProperties(newNetwork) ?: return).interfaceName
for (times in 0 until 10) {
var interfaceIndex: Int
try {
interfaceIndex = NetworkInterface.getByName(interfaceName).index
} catch (e: Exception) {
Thread.sleep(100)
continue
}
listener.updateDefaultInterface(interfaceName, interfaceIndex)
break
}
} else {
listener.updateDefaultInterface("", -1)
}
} }
} }