Use unified interface for setting p2p channel
This commit is contained in:
@@ -207,10 +207,8 @@ class RepeaterManager(private val parent: TetheringFragment) : Manager(), Servic
|
|||||||
ssid = group.networkName
|
ssid = group.networkName
|
||||||
securityType = SoftApConfiguration.SECURITY_TYPE_WPA2_PSK // is not actually used
|
securityType = SoftApConfiguration.SECURITY_TYPE_WPA2_PSK // is not actually used
|
||||||
passphrase = config.psk
|
passphrase = config.psk
|
||||||
if (Build.VERSION.SDK_INT >= 23) {
|
band = SoftApConfigurationCompat.BAND_ANY
|
||||||
band = SoftApConfigurationCompat.BAND_ANY
|
channel = RepeaterService.operatingChannel
|
||||||
channel = RepeaterService.operatingChannel
|
|
||||||
}
|
|
||||||
bssid = RepeaterService.deviceAddress
|
bssid = RepeaterService.deviceAddress
|
||||||
}
|
}
|
||||||
} catch (e: RuntimeException) {
|
} catch (e: RuntimeException) {
|
||||||
@@ -241,7 +239,7 @@ class RepeaterManager(private val parent: TetheringFragment) : Manager(), Servic
|
|||||||
}
|
}
|
||||||
holder.config = null
|
holder.config = null
|
||||||
}
|
}
|
||||||
if (Build.VERSION.SDK_INT >= 23) RepeaterService.operatingChannel = config.channel
|
RepeaterService.operatingChannel = config.channel
|
||||||
RepeaterService.deviceAddress = config.bssid
|
RepeaterService.deviceAddress = config.bssid
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ class WifiApDialogFragment : AlertDialogFragment<WifiApDialogFragment.Arg, WifiA
|
|||||||
*/
|
*/
|
||||||
val p2pMode: Boolean = false) : Parcelable
|
val p2pMode: Boolean = false) : Parcelable
|
||||||
|
|
||||||
@RequiresApi(23)
|
|
||||||
private sealed class BandOption {
|
private sealed class BandOption {
|
||||||
open val band get() = SoftApConfigurationCompat.BAND_ANY
|
open val band get() = SoftApConfigurationCompat.BAND_ANY
|
||||||
open val channel get() = SoftApConfigurationCompat.CH_INVALID
|
open val channel get() = SoftApConfigurationCompat.CH_INVALID
|
||||||
@@ -89,11 +88,9 @@ class WifiApDialogFragment : AlertDialogFragment<WifiApDialogFragment.Arg, WifiA
|
|||||||
securityType = dialogView.security.selectedItemPosition
|
securityType = dialogView.security.selectedItemPosition
|
||||||
isHiddenSsid = dialogView.hiddenSsid.isChecked
|
isHiddenSsid = dialogView.hiddenSsid.isChecked
|
||||||
}
|
}
|
||||||
if (Build.VERSION.SDK_INT >= 23) {
|
val bandOption = dialogView.band.selectedItem as BandOption
|
||||||
val bandOption = dialogView.band.selectedItem as BandOption
|
band = bandOption.band
|
||||||
band = bandOption.band
|
channel = bandOption.channel
|
||||||
channel = bandOption.channel
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
override fun AlertDialog.Builder.prepare(listener: DialogInterface.OnClickListener) {
|
override fun AlertDialog.Builder.prepare(listener: DialogInterface.OnClickListener) {
|
||||||
@@ -131,16 +128,13 @@ class WifiApDialogFragment : AlertDialogFragment<WifiApDialogFragment.Arg, WifiA
|
|||||||
if (Build.VERSION.SDK_INT >= 28) add(BandOption.BandAny)
|
if (Build.VERSION.SDK_INT >= 28) add(BandOption.BandAny)
|
||||||
add(BandOption.Band2GHz)
|
add(BandOption.Band2GHz)
|
||||||
add(BandOption.Band5GHz)
|
add(BandOption.Band5GHz)
|
||||||
if (BuildCompat.isAtLeastR()) add (BandOption.Band6GHz)
|
if (BuildCompat.isAtLeastR()) add(BandOption.Band6GHz)
|
||||||
}
|
}
|
||||||
addAll(channels)
|
addAll(channels)
|
||||||
}
|
}
|
||||||
adapter = ArrayAdapter(activity, android.R.layout.simple_spinner_item, 0, bandOptions).apply {
|
adapter = ArrayAdapter(activity, android.R.layout.simple_spinner_item, 0, bandOptions).apply {
|
||||||
setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
|
setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
|
||||||
}
|
}
|
||||||
if (Build.VERSION.SDK_INT < 23) {
|
|
||||||
setSelection(bandOptions.indexOfFirst { it.channel == RepeaterService.operatingChannel })
|
|
||||||
}
|
|
||||||
} else dialogView.bandWrapper.isGone = true
|
} else dialogView.bandWrapper.isGone = true
|
||||||
if (!arg.readOnly) dialogView.bssid.addTextChangedListener(this@WifiApDialogFragment)
|
if (!arg.readOnly) dialogView.bssid.addTextChangedListener(this@WifiApDialogFragment)
|
||||||
if (arg.p2pMode) dialogView.hiddenSsid.isGone = true
|
if (arg.p2pMode) dialogView.hiddenSsid.isGone = true
|
||||||
@@ -151,11 +145,9 @@ class WifiApDialogFragment : AlertDialogFragment<WifiApDialogFragment.Arg, WifiA
|
|||||||
dialogView.ssid.setText(configuration.ssid)
|
dialogView.ssid.setText(configuration.ssid)
|
||||||
if (!arg.p2pMode) dialogView.security.setSelection(configuration.securityType)
|
if (!arg.p2pMode) dialogView.security.setSelection(configuration.securityType)
|
||||||
dialogView.password.setText(configuration.passphrase)
|
dialogView.password.setText(configuration.passphrase)
|
||||||
if (Build.VERSION.SDK_INT >= 23) {
|
dialogView.band.setSelection(if (configuration.channel in 1..165) {
|
||||||
dialogView.band.setSelection(if (configuration.channel in 1..165) {
|
bandOptions.indexOfFirst { it.channel == configuration.channel }
|
||||||
bandOptions.indexOfFirst { it.channel == configuration.channel }
|
} else bandOptions.indexOfFirst { it.band == configuration.band })
|
||||||
} else bandOptions.indexOfFirst { it.band == configuration.band })
|
|
||||||
}
|
|
||||||
dialogView.bssid.setText(configuration.bssid?.toString())
|
dialogView.bssid.setText(configuration.bssid?.toString())
|
||||||
dialogView.hiddenSsid.isChecked = configuration.isHiddenSsid
|
dialogView.hiddenSsid.isChecked = configuration.isHiddenSsid
|
||||||
// TODO support more fields from SACC
|
// TODO support more fields from SACC
|
||||||
@@ -233,11 +225,4 @@ class WifiApDialogFragment : AlertDialogFragment<WifiApDialogFragment.Arg, WifiA
|
|||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onClick(dialog: DialogInterface?, which: Int) {
|
|
||||||
super.onClick(dialog, which)
|
|
||||||
if (Build.VERSION.SDK_INT < 23 && arg.p2pMode && which == DialogInterface.BUTTON_POSITIVE) {
|
|
||||||
RepeaterService.operatingChannel = (dialogView.band.selectedItem as BandOption).channel
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user