refactor: replace focusManager parameter with LocalFocusManager

This commit is contained in:
andrekir 2023-09-08 16:05:40 -03:00
parent 0f372b8947
commit 86cdb0106f
23 changed files with 105 additions and 131 deletions

View file

@ -277,14 +277,11 @@ fun ChannelScreen(
settingsList = channelSet.settingsList,
modemPresetName = modemPresetName,
enabled = enabled,
focusManager = focusManager,
onNegativeClicked = {
focusManager.clearFocus()
showChannelEditor = false
},
positiveText = R.string.save,
onPositiveClicked = {
focusManager.clearFocus()
showChannelEditor = false
channelSet = channelSet.toBuilder().clearSettings().addAllSettings(it).build()
}

View file

@ -43,7 +43,6 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.platform.ViewCompositionStrategy
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
@ -166,7 +165,6 @@ sealed class PacketResponseState {
@Composable
fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
val navController = rememberNavController()
val focusManager = LocalFocusManager.current
val connectionState by viewModel.connectionState.observeAsState()
val connected = connectionState == MeshService.ConnectionState.CONNECTED
@ -405,9 +403,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
modemPresetName = Channel(Channel.default.settings, radioConfig.lora).name,
enabled = connected,
maxChannels = maxChannels,
focusManager = focusManager,
onPositiveClicked = { channelListInput ->
focusManager.clearFocus()
viewModel.updateChannels(destNum, channelList, channelListInput)
channelList.clear()
channelList.addAll(channelListInput)
@ -418,9 +414,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
UserConfigItemList(
userConfig = userConfig,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { userInput ->
focusManager.clearFocus()
viewModel.setRemoteOwner(destNum, userInput)
userConfig = userInput
}
@ -430,9 +424,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
DeviceConfigItemList(
deviceConfig = radioConfig.device,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { deviceInput ->
focusManager.clearFocus()
val config = config { device = deviceInput }
viewModel.setRemoteConfig(destNum, config)
radioConfig = config
@ -445,9 +437,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
location = location,
positionConfig = radioConfig.position,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { locationInput, positionInput ->
focusManager.clearFocus()
if (locationInput != node.position && positionInput.fixedPosition) {
locationInput?.let { viewModel.requestPosition(destNum, it) }
location = locationInput
@ -464,9 +454,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
PowerConfigItemList(
powerConfig = radioConfig.power,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { powerInput ->
focusManager.clearFocus()
val config = config { power = powerInput }
viewModel.setRemoteConfig(destNum, config)
radioConfig = config
@ -477,9 +465,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
NetworkConfigItemList(
networkConfig = radioConfig.network,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { networkInput ->
focusManager.clearFocus()
val config = config { network = networkInput }
viewModel.setRemoteConfig(destNum, config)
radioConfig = config
@ -490,9 +476,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
DisplayConfigItemList(
displayConfig = radioConfig.display,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { displayInput ->
focusManager.clearFocus()
val config = config { display = displayInput }
viewModel.setRemoteConfig(destNum, config)
radioConfig = config
@ -504,9 +488,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
loraConfig = radioConfig.lora,
primarySettings = channelList.getOrNull(0) ?: return@composable,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { loraInput ->
focusManager.clearFocus()
val config = config { lora = loraInput }
viewModel.setRemoteConfig(destNum, config)
radioConfig = config
@ -517,9 +499,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
BluetoothConfigItemList(
bluetoothConfig = radioConfig.bluetooth,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { bluetoothInput ->
focusManager.clearFocus()
val config = config { bluetooth = bluetoothInput }
viewModel.setRemoteConfig(destNum, config)
radioConfig = config
@ -530,9 +510,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
MQTTConfigItemList(
mqttConfig = moduleConfig.mqtt,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { mqttInput ->
focusManager.clearFocus()
val config = moduleConfig { mqtt = mqttInput }
viewModel.setModuleConfig(destNum, config)
moduleConfig = config
@ -543,9 +521,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
SerialConfigItemList(
serialConfig = moduleConfig.serial,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { serialInput ->
focusManager.clearFocus()
val config = moduleConfig { serial = serialInput }
viewModel.setModuleConfig(destNum, config)
moduleConfig = config
@ -557,9 +533,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
ringtone = ringtone,
extNotificationConfig = moduleConfig.externalNotification,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { ringtoneInput, extNotificationInput ->
focusManager.clearFocus()
if (ringtoneInput != ringtone) {
viewModel.setRingtone(destNum, ringtoneInput)
ringtone = ringtoneInput
@ -576,9 +550,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
StoreForwardConfigItemList(
storeForwardConfig = moduleConfig.storeForward,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { storeForwardInput ->
focusManager.clearFocus()
val config = moduleConfig { storeForward = storeForwardInput }
viewModel.setModuleConfig(destNum, config)
moduleConfig = config
@ -589,9 +561,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
RangeTestConfigItemList(
rangeTestConfig = moduleConfig.rangeTest,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { rangeTestInput ->
focusManager.clearFocus()
val config = moduleConfig { rangeTest = rangeTestInput }
viewModel.setModuleConfig(destNum, config)
moduleConfig = config
@ -602,9 +572,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
TelemetryConfigItemList(
telemetryConfig = moduleConfig.telemetry,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { telemetryInput ->
focusManager.clearFocus()
val config = moduleConfig { telemetry = telemetryInput }
viewModel.setModuleConfig(destNum, config)
moduleConfig = config
@ -616,9 +584,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
messages = cannedMessageMessages,
cannedMessageConfig = moduleConfig.cannedMessage,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { messagesInput, cannedMessageInput ->
focusManager.clearFocus()
if (messagesInput != cannedMessageMessages) {
viewModel.setCannedMessages(destNum, messagesInput)
cannedMessageMessages = messagesInput
@ -635,9 +601,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
AudioConfigItemList(
audioConfig = moduleConfig.audio,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { audioInput ->
focusManager.clearFocus()
val config = moduleConfig { audio = audioInput }
viewModel.setModuleConfig(destNum, config)
moduleConfig = config
@ -648,9 +612,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
RemoteHardwareConfigItemList(
remoteHardwareConfig = moduleConfig.remoteHardware,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { remoteHardwareInput ->
focusManager.clearFocus()
val config = moduleConfig { remoteHardware = remoteHardwareInput }
viewModel.setModuleConfig(destNum, config)
moduleConfig = config
@ -661,9 +623,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
NeighborInfoConfigItemList(
neighborInfoConfig = moduleConfig.neighborInfo,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { neighborInfoInput ->
focusManager.clearFocus()
val config = moduleConfig { neighborInfo = neighborInfoInput }
viewModel.setModuleConfig(destNum, config)
moduleConfig = config
@ -674,9 +634,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
AmbientLightingConfigItemList(
ambientLightingConfig = moduleConfig.ambientLighting,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { ambientLightingInput ->
focusManager.clearFocus()
val config = moduleConfig { ambientLighting = ambientLightingInput }
viewModel.setModuleConfig(destNum, config)
moduleConfig = config
@ -687,9 +645,7 @@ fun RadioConfigNavHost(node: NodeInfo, viewModel: UIViewModel = viewModel()) {
DetectionSensorConfigItemList(
detectionSensorConfig = moduleConfig.detectionSensor,
enabled = connected,
focusManager = focusManager,
onSaveClicked = { detectionSensorInput ->
focusManager.clearFocus()
val config = moduleConfig { detectionSensor = detectionSensorInput }
viewModel.setModuleConfig(destNum, config)
moduleConfig = config

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ModuleConfigProtos
@ -24,9 +23,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun AmbientLightingConfigItemList(
ambientLightingConfig: ModuleConfigProtos.ModuleConfig.AmbientLightingConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (ModuleConfigProtos.ModuleConfig.AmbientLightingConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var ambientLightingInput by remember(ambientLightingConfig) {
mutableStateOf(ambientLightingConfig)
}
@ -87,7 +86,10 @@ fun AmbientLightingConfigItemList(
focusManager.clearFocus()
ambientLightingInput = ambientLightingConfig
},
onSaveClicked = { onSaveClicked(ambientLightingInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(ambientLightingInput)
}
)
}
}
@ -99,7 +101,6 @@ private fun AmbientLightingConfigPreview() {
AmbientLightingConfigItemList(
ambientLightingConfig = ModuleConfigProtos.ModuleConfig.AmbientLightingConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ModuleConfigProtos.ModuleConfig.AudioConfig
@ -25,9 +24,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun AudioConfigItemList(
audioConfig: AudioConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (AudioConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var audioInput by remember(audioConfig) { mutableStateOf(audioConfig) }
LazyColumn(
@ -101,7 +100,10 @@ fun AudioConfigItemList(
focusManager.clearFocus()
audioInput = audioConfig
},
onSaveClicked = { onSaveClicked(audioInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(audioInput)
}
)
}
}
@ -113,7 +115,6 @@ private fun AudioConfigPreview() {
AudioConfigItemList(
audioConfig = AudioConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ConfigProtos.Config.BluetoothConfig
@ -25,9 +24,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun BluetoothConfigItemList(
bluetoothConfig: BluetoothConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (BluetoothConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var bluetoothInput by remember(bluetoothConfig) { mutableStateOf(bluetoothConfig) }
LazyColumn(
@ -72,7 +71,10 @@ fun BluetoothConfigItemList(
focusManager.clearFocus()
bluetoothInput = bluetoothConfig
},
onSaveClicked = { onSaveClicked(bluetoothInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(bluetoothInput)
}
)
}
}
@ -84,7 +86,6 @@ private fun BluetoothConfigPreview() {
BluetoothConfigItemList(
bluetoothConfig = BluetoothConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -11,7 +11,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
@ -29,9 +28,9 @@ fun CannedMessageConfigItemList(
messages: String,
cannedMessageConfig: CannedMessageConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (messages: String, config: CannedMessageConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var messagesInput by remember { mutableStateOf(messages) }
var cannedMessageInput by remember { mutableStateOf(cannedMessageConfig) }
@ -186,7 +185,10 @@ fun CannedMessageConfigItemList(
messagesInput = messages
cannedMessageInput = cannedMessageConfig
},
onSaveClicked = { onSaveClicked(messagesInput,cannedMessageInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(messagesInput,cannedMessageInput)
}
)
}
}
@ -199,7 +201,6 @@ private fun CannedMessageConfigPreview() {
messages = "",
cannedMessageConfig = CannedMessageConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { _, _ -> },
)
}

View file

@ -35,7 +35,6 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.stringResource
@ -92,11 +91,11 @@ fun ChannelSettingsItemList(
modemPresetName: String = "Default",
maxChannels: Int = 8,
enabled: Boolean,
focusManager: FocusManager,
onNegativeClicked: () -> Unit = { },
@StringRes positiveText: Int = R.string.send,
onPositiveClicked: (List<ChannelSettings>) -> Unit,
) {
val focusManager = LocalFocusManager.current
val settingsListInput = remember {
mutableStateListOf<ChannelSettings>().apply { addAll(settingsList) }
}
@ -154,7 +153,10 @@ fun ChannelSettingsItemList(
onNegativeClicked()
},
positiveText = positiveText,
onPositiveClicked = { onPositiveClicked(settingsListInput) }
onPositiveClicked = {
focusManager.clearFocus()
onPositiveClicked(settingsListInput)
}
)
}
}
@ -198,7 +200,6 @@ private fun ChannelSettingsPreview() {
},
),
enabled = true,
focusManager = LocalFocusManager.current,
onPositiveClicked = { },
)
}

View file

@ -11,7 +11,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
@ -27,9 +26,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun DetectionSensorConfigItemList(
detectionSensorConfig: ModuleConfigProtos.ModuleConfig.DetectionSensorConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (ModuleConfigProtos.ModuleConfig.DetectionSensorConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var detectionSensorInput by remember(detectionSensorConfig) {
mutableStateOf(detectionSensorConfig)
}
@ -131,7 +130,10 @@ fun DetectionSensorConfigItemList(
focusManager.clearFocus()
detectionSensorInput = detectionSensorConfig
},
onSaveClicked = { onSaveClicked(detectionSensorInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(detectionSensorInput)
}
)
}
}
@ -143,7 +145,6 @@ private fun DetectionSensorConfigPreview() {
DetectionSensorConfigItemList(
detectionSensorConfig = ModuleConfigProtos.ModuleConfig.DetectionSensorConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ConfigProtos.Config.DeviceConfig
@ -25,9 +24,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun DeviceConfigItemList(
deviceConfig: DeviceConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (DeviceConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var deviceInput by remember(deviceConfig) { mutableStateOf(deviceConfig) }
LazyColumn(
@ -130,7 +129,10 @@ fun DeviceConfigItemList(
focusManager.clearFocus()
deviceInput = deviceConfig
},
onSaveClicked = { onSaveClicked(deviceInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(deviceInput)
}
)
}
}
@ -142,7 +144,6 @@ private fun DeviceConfigPreview() {
DeviceConfigItemList(
deviceConfig = DeviceConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ConfigProtos.Config.DisplayConfig
@ -25,9 +24,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun DisplayConfigItemList(
displayConfig: DisplayConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (DisplayConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var displayInput by remember(displayConfig) { mutableStateOf(displayConfig) }
LazyColumn(
@ -136,7 +135,10 @@ fun DisplayConfigItemList(
focusManager.clearFocus()
displayInput = displayConfig
},
onSaveClicked = { onSaveClicked(displayInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(displayInput)
}
)
}
}
@ -149,7 +151,6 @@ private fun DisplayConfigPreview() {
DisplayConfigItemList(
displayConfig = DisplayConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -11,7 +11,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
@ -29,9 +28,9 @@ fun ExternalNotificationConfigItemList(
ringtone: String,
extNotificationConfig: ExternalNotificationConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (ringtone: String, config: ExternalNotificationConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var ringtoneInput by remember { mutableStateOf(ringtone) }
var externalNotificationInput by remember { mutableStateOf(extNotificationConfig) }
@ -208,7 +207,10 @@ fun ExternalNotificationConfigItemList(
ringtoneInput = ringtone
externalNotificationInput = extNotificationConfig
},
onSaveClicked = { onSaveClicked(ringtoneInput, externalNotificationInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(ringtoneInput, externalNotificationInput)
}
)
}
}
@ -221,7 +223,6 @@ private fun ExternalNotificationConfigPreview() {
ringtone = "",
extNotificationConfig = ExternalNotificationConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { _, _ -> },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ChannelProtos.ChannelSettings
@ -30,9 +29,9 @@ fun LoRaConfigItemList(
loraConfig: LoRaConfig,
primarySettings: ChannelSettings,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (LoRaConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var loraInput by remember(loraConfig) { mutableStateOf(loraConfig) }
val primaryChannel = Channel(primarySettings, loraInput)
@ -189,7 +188,10 @@ fun LoRaConfigItemList(
focusManager.clearFocus()
loraInput = loraConfig
},
onSaveClicked = { onSaveClicked(loraInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(loraInput)
}
)
}
}
@ -202,7 +204,6 @@ private fun LoRaConfigPreview() {
loraConfig = Channel.default.loraConfig,
primarySettings = Channel.default.settings,
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -11,7 +11,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
@ -28,9 +27,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun MQTTConfigItemList(
mqttConfig: MQTTConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (MQTTConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var mqttInput by remember(mqttConfig) { mutableStateOf(mqttConfig) }
LazyColumn(
@ -133,7 +132,10 @@ fun MQTTConfigItemList(
focusManager.clearFocus()
mqttInput = mqttConfig
},
onSaveClicked = { onSaveClicked(mqttInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(mqttInput)
}
)
}
}
@ -145,7 +147,6 @@ private fun MQTTConfigPreview() {
MQTTConfigItemList(
mqttConfig = MQTTConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ModuleConfigProtos
@ -24,9 +23,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun NeighborInfoConfigItemList(
neighborInfoConfig: ModuleConfigProtos.ModuleConfig.NeighborInfoConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (ModuleConfigProtos.ModuleConfig.NeighborInfoConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var neighborInfoInput by remember(neighborInfoConfig) { mutableStateOf(neighborInfoConfig) }
LazyColumn(
@ -61,7 +60,10 @@ fun NeighborInfoConfigItemList(
focusManager.clearFocus()
neighborInfoInput = neighborInfoConfig
},
onSaveClicked = { onSaveClicked(neighborInfoInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(neighborInfoInput)
}
)
}
}
@ -73,7 +75,6 @@ private fun NeighborInfoConfigPreview() {
NeighborInfoConfigItemList(
neighborInfoConfig = ModuleConfigProtos.ModuleConfig.NeighborInfoConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -11,7 +11,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
@ -30,9 +29,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun NetworkConfigItemList(
networkConfig: NetworkConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (NetworkConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var networkInput by remember(networkConfig) { mutableStateOf(networkConfig) }
LazyColumn(
@ -172,7 +171,10 @@ fun NetworkConfigItemList(
focusManager.clearFocus()
networkInput = networkConfig
},
onSaveClicked = { onSaveClicked(networkInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(networkInput)
}
)
}
}
@ -184,7 +186,6 @@ private fun NetworkConfigPreview() {
NetworkConfigItemList(
networkConfig = NetworkConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ConfigProtos
@ -29,9 +28,9 @@ fun PositionConfigItemList(
location: Position?,
positionConfig: PositionConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (position: Position?, config: PositionConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var locationInput by remember { mutableStateOf(location) }
var positionInput by remember { mutableStateOf(positionConfig) }
@ -182,7 +181,10 @@ fun PositionConfigItemList(
locationInput = location
positionInput = positionConfig
},
onSaveClicked = { onSaveClicked(locationInput, positionInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(locationInput, positionInput)
}
)
}
}
@ -195,7 +197,6 @@ private fun PositionConfigPreview() {
location = null,
positionConfig = PositionConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { _, _ -> },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ConfigProtos.Config.PowerConfig
@ -24,9 +23,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun PowerConfigItemList(
powerConfig: PowerConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (PowerConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var powerInput by remember(powerConfig) { mutableStateOf(powerConfig) }
LazyColumn(
@ -107,7 +106,10 @@ fun PowerConfigItemList(
focusManager.clearFocus()
powerInput = powerConfig
},
onSaveClicked = { onSaveClicked(powerInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(powerInput)
}
)
}
}
@ -119,7 +121,6 @@ private fun PowerConfigPreview() {
PowerConfigItemList(
powerConfig = PowerConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ModuleConfigProtos.ModuleConfig.RangeTestConfig
@ -24,9 +23,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun RangeTestConfigItemList(
rangeTestConfig: RangeTestConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (RangeTestConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var rangeTestInput by remember(rangeTestConfig) { mutableStateOf(rangeTestConfig) }
LazyColumn(
@ -65,7 +64,10 @@ fun RangeTestConfigItemList(
focusManager.clearFocus()
rangeTestInput = rangeTestConfig
},
onSaveClicked = { onSaveClicked(rangeTestInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(rangeTestInput)
}
)
}
}
@ -77,7 +79,6 @@ private fun RangeTestConfig() {
RangeTestConfigItemList(
rangeTestConfig = RangeTestConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ModuleConfigProtos.ModuleConfig.RemoteHardwareConfig
@ -24,9 +23,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun RemoteHardwareConfigItemList(
remoteHardwareConfig: RemoteHardwareConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (RemoteHardwareConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var remoteHardwareInput by remember(remoteHardwareConfig) { mutableStateOf(remoteHardwareConfig) }
LazyColumn(
@ -75,7 +74,10 @@ fun RemoteHardwareConfigItemList(
focusManager.clearFocus()
remoteHardwareInput = remoteHardwareConfig
},
onSaveClicked = { onSaveClicked(remoteHardwareInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(remoteHardwareInput)
}
)
}
}
@ -87,7 +89,6 @@ private fun RemoteHardwareConfigPreview() {
RemoteHardwareConfigItemList(
remoteHardwareConfig = RemoteHardwareConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ModuleConfigProtos.ModuleConfig.SerialConfig
@ -25,9 +24,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun SerialConfigItemList(
serialConfig: SerialConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (SerialConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var serialInput by remember(serialConfig) { mutableStateOf(serialConfig) }
LazyColumn(
@ -114,7 +113,10 @@ fun SerialConfigItemList(
focusManager.clearFocus()
serialInput = serialConfig
},
onSaveClicked = { onSaveClicked(serialInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(serialInput)
}
)
}
}
@ -126,7 +128,6 @@ private fun SerialConfigPreview() {
SerialConfigItemList(
serialConfig = SerialConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ModuleConfigProtos.ModuleConfig.StoreForwardConfig
@ -24,9 +23,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun StoreForwardConfigItemList(
storeForwardConfig: StoreForwardConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (StoreForwardConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var storeForwardInput by remember(storeForwardConfig) { mutableStateOf(storeForwardConfig) }
LazyColumn(
@ -87,7 +86,10 @@ fun StoreForwardConfigItemList(
focusManager.clearFocus()
storeForwardInput = storeForwardConfig
},
onSaveClicked = { onSaveClicked(storeForwardInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(storeForwardInput)
}
)
}
}
@ -99,7 +101,6 @@ private fun StoreForwardConfigPreview() {
StoreForwardConfigItemList(
storeForwardConfig = StoreForwardConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -10,7 +10,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.tooling.preview.Preview
import com.geeksville.mesh.ModuleConfigProtos.ModuleConfig.TelemetryConfig
@ -24,9 +23,9 @@ import com.geeksville.mesh.ui.components.SwitchPreference
fun TelemetryConfigItemList(
telemetryConfig: TelemetryConfig,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (TelemetryConfig) -> Unit,
) {
val focusManager = LocalFocusManager.current
var telemetryInput by remember(telemetryConfig) { mutableStateOf(telemetryConfig) }
LazyColumn(
@ -111,7 +110,10 @@ fun TelemetryConfigItemList(
focusManager.clearFocus()
telemetryInput = telemetryConfig
},
onSaveClicked = { onSaveClicked(telemetryInput) }
onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(telemetryInput)
}
)
}
}
@ -123,7 +125,6 @@ private fun TelemetryConfigPreview() {
TelemetryConfigItemList(
telemetryConfig = TelemetryConfig.getDefaultInstance(),
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}

View file

@ -11,7 +11,6 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
@ -30,9 +29,9 @@ import com.geeksville.mesh.user
fun UserConfigItemList(
userConfig: MeshProtos.User,
enabled: Boolean,
focusManager: FocusManager,
onSaveClicked: (MeshProtos.User) -> Unit,
) {
val focusManager = LocalFocusManager.current
var userInput by remember(userConfig) { mutableStateOf(userConfig) }
LazyColumn(
@ -98,7 +97,10 @@ fun UserConfigItemList(
onCancelClicked = {
focusManager.clearFocus()
userInput = userConfig
}, onSaveClicked = { onSaveClicked(userInput) }
}, onSaveClicked = {
focusManager.clearFocus()
onSaveClicked(userInput)
}
)
}
}
@ -116,7 +118,6 @@ private fun UserConfigPreview() {
isLicensed = false
},
enabled = true,
focusManager = LocalFocusManager.current,
onSaveClicked = { },
)
}