@@ -16,50 +16,37 @@ import androidx.compose.foundation.layout.fillMaxWidth
1616import androidx.compose.foundation.layout.height
1717import androidx.compose.foundation.layout.padding
1818import androidx.compose.foundation.rememberScrollState
19- import androidx.compose.foundation.shape.RoundedCornerShape
2019import androidx.compose.foundation.verticalScroll
2120import androidx.compose.material.icons.Icons
2221import androidx.compose.material.icons.automirrored.filled.ArrowBack
2322import androidx.compose.material.icons.outlined.BatteryChargingFull
24- import androidx.compose.material.icons.outlined.Memory
2523import androidx.compose.material3.Button
2624import androidx.compose.material3.Card
2725import androidx.compose.material3.CardDefaults
2826import androidx.compose.material3.ExperimentalMaterial3Api
2927import androidx.compose.material3.Icon
3028import androidx.compose.material3.IconButton
31- import androidx.compose.material3.ListItem
32- import androidx.compose.material3.ListItemDefaults
3329import androidx.compose.material3.MaterialTheme
3430import androidx.compose.material3.OutlinedButton
35- import androidx.compose.material3.Switch
3631import androidx.compose.material3.Text
3732import androidx.compose.material3.TopAppBar
3833import androidx.compose.runtime.Composable
3934import androidx.compose.runtime.LaunchedEffect
4035import androidx.compose.runtime.getValue
4136import androidx.compose.runtime.mutableStateOf
4237import androidx.compose.runtime.remember
43- import androidx.compose.runtime.rememberCoroutineScope
4438import androidx.compose.runtime.setValue
4539import androidx.compose.ui.Alignment
4640import androidx.compose.ui.Modifier
47- import androidx.compose.ui.draw.clip
48- import androidx.compose.ui.graphics.Color
4941import androidx.compose.ui.platform.LocalContext
5042import androidx.compose.ui.res.stringResource
5143import androidx.compose.ui.text.font.FontWeight
5244import androidx.compose.ui.unit.dp
5345import androidx.navigation.NavController
5446import io.nekohasekai.sfa.R
5547import io.nekohasekai.sfa.bg.ServiceConnection
56- import io.nekohasekai.sfa.compose.base.GlobalEventBus
57- import io.nekohasekai.sfa.compose.base.UiEvent
5848import io.nekohasekai.sfa.compose.topbar.OverrideTopBar
59- import io.nekohasekai.sfa.database.Settings
6049import io.nekohasekai.sfa.ktx.launchCustomTab
61- import kotlinx.coroutines.Dispatchers
62- import kotlinx.coroutines.launch
6350
6451@OptIn(ExperimentalMaterial3Api ::class )
6552@Composable
@@ -79,11 +66,8 @@ fun ServiceSettingsScreen(navController: NavController, serviceConnection: Servi
7966 }
8067
8168 val context = LocalContext .current
82- val scope = rememberCoroutineScope()
8369 // Check battery optimization status
8470 var isBatteryOptimizationIgnored by remember { mutableStateOf(false ) }
85- var ignoreMemoryLimit by remember { mutableStateOf(Settings .disableMemoryLimit) }
86-
8771 // Activity result launcher for battery optimization permission
8872 val requestBatteryOptimizationLauncher =
8973 rememberLauncherForActivityResult(
@@ -187,56 +171,6 @@ fun ServiceSettingsScreen(navController: NavController, serviceConnection: Servi
187171 }
188172 }
189173
190- // Options Section
191- Card (
192- modifier =
193- Modifier
194- .fillMaxWidth()
195- .padding(horizontal = 16 .dp),
196- colors =
197- CardDefaults .cardColors(
198- containerColor = MaterialTheme .colorScheme.surfaceContainer,
199- ),
200- ) {
201- ListItem (
202- headlineContent = {
203- Text (
204- stringResource(R .string.ignore_memory_limit),
205- style = MaterialTheme .typography.bodyLarge,
206- )
207- },
208- supportingContent = {
209- Text (
210- stringResource(R .string.ignore_memory_limit_description),
211- style = MaterialTheme .typography.bodyMedium,
212- color = MaterialTheme .colorScheme.onSurfaceVariant,
213- modifier = Modifier .padding(top = 4 .dp),
214- )
215- },
216- leadingContent = {
217- Icon (
218- imageVector = Icons .Outlined .Memory ,
219- contentDescription = null ,
220- tint = MaterialTheme .colorScheme.primary,
221- )
222- },
223- trailingContent = {
224- Switch (checked = ignoreMemoryLimit, onCheckedChange = { checked ->
225- ignoreMemoryLimit = checked
226- scope.launch(Dispatchers .IO ) {
227- Settings .disableMemoryLimit = checked
228- GlobalEventBus .tryEmit(UiEvent .RestartToTakeEffect )
229- }
230- })
231- },
232- modifier = Modifier .clip(RoundedCornerShape (12 .dp)),
233- colors =
234- ListItemDefaults .colors(
235- containerColor = Color .Transparent ,
236- ),
237- )
238- }
239-
240174 Spacer (modifier = Modifier .height(16 .dp))
241175 }
242176}
0 commit comments