@@ -7,6 +7,7 @@ import androidx.appcompat.app.AppCompatActivity
77import androidx.compose.foundation.Image
88import androidx.compose.foundation.layout.Box
99import androidx.compose.foundation.layout.Column
10+ import androidx.compose.foundation.layout.Row
1011import androidx.compose.foundation.layout.Spacer
1112import androidx.compose.foundation.layout.fillMaxSize
1213import androidx.compose.foundation.layout.fillMaxWidth
@@ -23,6 +24,7 @@ import androidx.compose.material.icons.outlined.CloudDownload
2324import androidx.compose.material.icons.outlined.CloudUpload
2425import androidx.compose.material.icons.outlined.Code
2526import androidx.compose.material.icons.outlined.Devices
27+ import androidx.compose.material3.Checkbox
2628import androidx.compose.material3.MaterialTheme
2729import androidx.compose.material3.OutlinedTextField
2830import androidx.compose.material3.SnackbarHostState
@@ -115,6 +117,8 @@ fun SettingsScreen(
115117 versionName = uiState.appConfig.versionString,
116118 onValueChange = { viewModel.updateAddress(it) },
117119 onNotifyTest = { viewModel.notifyTest() },
120+ isWifiOnlyNotificationEnabled = uiState.isWifiOnlyNotificationEnabled,
121+ onWifiOnlySettingChanged = { viewModel.updateWifiOnlySetting(it) },
118122 onExportData = { viewModel.event(UiEvent .ExportData ()) },
119123 onImportData = { viewModel.event(UiEvent .ImportData ()) },
120124 onLicense = { navController.navigate(Screen .License .route) },
@@ -130,6 +134,8 @@ fun SettingsContent(
130134 versionName : String ,
131135 onValueChange : (String ) -> Unit ,
132136 onNotifyTest : () -> Unit ,
137+ isWifiOnlyNotificationEnabled : Boolean ,
138+ onWifiOnlySettingChanged : (Boolean ) -> Unit ,
133139 onExportData : () -> Unit ,
134140 onImportData : () -> Unit ,
135141 onLicense : () -> Unit ,
@@ -147,7 +153,9 @@ fun SettingsContent(
147153 NotifySettings (
148154 address = address,
149155 onValueChange = onValueChange,
150- onNotifyTest = onNotifyTest
156+ onNotifyTest = onNotifyTest,
157+ isWifiOnlyNotificationEnabled = isWifiOnlyNotificationEnabled,
158+ onWifiOnlySettingChanged = onWifiOnlySettingChanged
151159 )
152160 OtherSettings (
153161 onExportData = onExportData,
@@ -176,7 +184,9 @@ fun SettingsContent(
176184private fun NotifySettings (
177185 address : String ,
178186 onValueChange : (String ) -> Unit ,
179- onNotifyTest : () -> Unit
187+ onNotifyTest : () -> Unit ,
188+ isWifiOnlyNotificationEnabled : Boolean ,
189+ onWifiOnlySettingChanged : (Boolean ) -> Unit
180190) {
181191 val keyboardController = LocalSoftwareKeyboardController .current
182192 val focusManager = LocalFocusManager .current
@@ -216,6 +226,15 @@ private fun NotifySettings(
216226 text = stringResource(id = R .string.notify_test),
217227 onClick = onNotifyTest
218228 )
229+ Row (
230+ verticalAlignment = Alignment .CenterVertically
231+ ) {
232+ Checkbox (
233+ checked = isWifiOnlyNotificationEnabled,
234+ onCheckedChange = onWifiOnlySettingChanged
235+ )
236+ Text (" Wi-Fi接続時のみ転送する。" )
237+ }
219238}
220239
221240/* * その他の項目
@@ -293,6 +312,8 @@ private fun SettingsPreview() {
293312 versionName = " 1.0" ,
294313 onValueChange = { },
295314 onNotifyTest = { },
315+ isWifiOnlyNotificationEnabled = true ,
316+ onWifiOnlySettingChanged = { },
296317 onExportData = { },
297318 onImportData = { },
298319 onLicense = { },
0 commit comments