Remove unusable interfaces from suggestions

This commit is contained in:
Mygod
2020-01-21 06:24:15 +08:00
parent f8bf38cb3f
commit 62ff9096f1

View File

@@ -30,8 +30,6 @@ import timber.log.Timber
import java.io.File import java.io.File
import java.io.IOException import java.io.IOException
import java.io.PrintWriter import java.io.PrintWriter
import java.net.NetworkInterface
import java.net.SocketException
import kotlin.system.exitProcess import kotlin.system.exitProcess
class SettingsPreferenceFragment : PreferenceFragmentCompat() { class SettingsPreferenceFragment : PreferenceFragmentCompat() {
@@ -178,20 +176,9 @@ class SettingsPreferenceFragment : PreferenceFragmentCompat() {
when (preference.key) { when (preference.key) {
UpstreamMonitor.KEY, FallbackUpstreamMonitor.KEY -> UpstreamMonitor.KEY, FallbackUpstreamMonitor.KEY ->
AlwaysAutoCompleteEditTextPreferenceDialogFragment().apply { AlwaysAutoCompleteEditTextPreferenceDialogFragment().apply {
setArguments(preference.key, try { setArguments(preference.key, app.connectivity.allNetworks.mapNotNull {
NetworkInterface.getNetworkInterfaces().asSequence() app.connectivity.getLinkProperties(it)?.interfaceName
.filter { }.toTypedArray())
try {
it.isUp && !it.isLoopback && it.interfaceAddresses.isNotEmpty()
} catch (_: SocketException) {
false
}
}
.map { it.name }.sorted().toList().toTypedArray()
} catch (e: SocketException) {
Timber.d(e)
emptyArray<String>()
})
setTargetFragment(this@SettingsPreferenceFragment, 0) setTargetFragment(this@SettingsPreferenceFragment, 0)
}.show(parentFragmentManager, preference.key) }.show(parentFragmentManager, preference.key)
else -> super.onDisplayPreferenceDialog(preference) else -> super.onDisplayPreferenceDialog(preference)