fix: bug in change interface listener
This commit is contained in:
@@ -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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user