Remove memory limit settings
This commit is contained in:
@@ -131,7 +131,6 @@ class BoxService(private val service: Service, private val platformInterface: Pl
|
|||||||
}
|
}
|
||||||
|
|
||||||
DefaultNetworkMonitor.start()
|
DefaultNetworkMonitor.start()
|
||||||
Libbox.setMemoryLimit(!Settings.disableMemoryLimit)
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
commandServer.startOrReloadService(
|
commandServer.startOrReloadService(
|
||||||
|
|||||||
@@ -16,23 +16,18 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||||
import androidx.compose.material.icons.outlined.BatteryChargingFull
|
import androidx.compose.material.icons.outlined.BatteryChargingFull
|
||||||
import androidx.compose.material.icons.outlined.Memory
|
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.Card
|
import androidx.compose.material3.Card
|
||||||
import androidx.compose.material3.CardDefaults
|
import androidx.compose.material3.CardDefaults
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
import androidx.compose.material3.ListItem
|
|
||||||
import androidx.compose.material3.ListItemDefaults
|
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.OutlinedButton
|
import androidx.compose.material3.OutlinedButton
|
||||||
import androidx.compose.material3.Switch
|
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.material3.TopAppBar
|
import androidx.compose.material3.TopAppBar
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@@ -40,12 +35,9 @@ import androidx.compose.runtime.LaunchedEffect
|
|||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
|
||||||
import androidx.compose.ui.graphics.Color
|
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
@@ -53,13 +45,8 @@ import androidx.compose.ui.unit.dp
|
|||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import io.nekohasekai.sfa.R
|
import io.nekohasekai.sfa.R
|
||||||
import io.nekohasekai.sfa.bg.ServiceConnection
|
import io.nekohasekai.sfa.bg.ServiceConnection
|
||||||
import io.nekohasekai.sfa.compose.base.GlobalEventBus
|
|
||||||
import io.nekohasekai.sfa.compose.base.UiEvent
|
|
||||||
import io.nekohasekai.sfa.compose.topbar.OverrideTopBar
|
import io.nekohasekai.sfa.compose.topbar.OverrideTopBar
|
||||||
import io.nekohasekai.sfa.database.Settings
|
|
||||||
import io.nekohasekai.sfa.ktx.launchCustomTab
|
import io.nekohasekai.sfa.ktx.launchCustomTab
|
||||||
import kotlinx.coroutines.Dispatchers
|
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
@@ -79,11 +66,8 @@ fun ServiceSettingsScreen(navController: NavController, serviceConnection: Servi
|
|||||||
}
|
}
|
||||||
|
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
val scope = rememberCoroutineScope()
|
|
||||||
// Check battery optimization status
|
// Check battery optimization status
|
||||||
var isBatteryOptimizationIgnored by remember { mutableStateOf(false) }
|
var isBatteryOptimizationIgnored by remember { mutableStateOf(false) }
|
||||||
var ignoreMemoryLimit by remember { mutableStateOf(Settings.disableMemoryLimit) }
|
|
||||||
|
|
||||||
// Activity result launcher for battery optimization permission
|
// Activity result launcher for battery optimization permission
|
||||||
val requestBatteryOptimizationLauncher =
|
val requestBatteryOptimizationLauncher =
|
||||||
rememberLauncherForActivityResult(
|
rememberLauncherForActivityResult(
|
||||||
@@ -187,56 +171,6 @@ fun ServiceSettingsScreen(navController: NavController, serviceConnection: Servi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Options Section
|
|
||||||
Card(
|
|
||||||
modifier =
|
|
||||||
Modifier
|
|
||||||
.fillMaxWidth()
|
|
||||||
.padding(horizontal = 16.dp),
|
|
||||||
colors =
|
|
||||||
CardDefaults.cardColors(
|
|
||||||
containerColor = MaterialTheme.colorScheme.surfaceContainer,
|
|
||||||
),
|
|
||||||
) {
|
|
||||||
ListItem(
|
|
||||||
headlineContent = {
|
|
||||||
Text(
|
|
||||||
stringResource(R.string.ignore_memory_limit),
|
|
||||||
style = MaterialTheme.typography.bodyLarge,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
supportingContent = {
|
|
||||||
Text(
|
|
||||||
stringResource(R.string.ignore_memory_limit_description),
|
|
||||||
style = MaterialTheme.typography.bodyMedium,
|
|
||||||
color = MaterialTheme.colorScheme.onSurfaceVariant,
|
|
||||||
modifier = Modifier.padding(top = 4.dp),
|
|
||||||
)
|
|
||||||
},
|
|
||||||
leadingContent = {
|
|
||||||
Icon(
|
|
||||||
imageVector = Icons.Outlined.Memory,
|
|
||||||
contentDescription = null,
|
|
||||||
tint = MaterialTheme.colorScheme.primary,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
trailingContent = {
|
|
||||||
Switch(checked = ignoreMemoryLimit, onCheckedChange = { checked ->
|
|
||||||
ignoreMemoryLimit = checked
|
|
||||||
scope.launch(Dispatchers.IO) {
|
|
||||||
Settings.disableMemoryLimit = checked
|
|
||||||
GlobalEventBus.tryEmit(UiEvent.RestartToTakeEffect)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
modifier = Modifier.clip(RoundedCornerShape(12.dp)),
|
|
||||||
colors =
|
|
||||||
ListItemDefaults.colors(
|
|
||||||
containerColor = Color.Transparent,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
Spacer(modifier = Modifier.height(16.dp))
|
Spacer(modifier = Modifier.height(16.dp))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ object SettingsKey {
|
|||||||
const val SILENT_INSTALL_ENABLED = "silent_install_enabled"
|
const val SILENT_INSTALL_ENABLED = "silent_install_enabled"
|
||||||
const val SILENT_INSTALL_METHOD = "silent_install_method"
|
const val SILENT_INSTALL_METHOD = "silent_install_method"
|
||||||
const val AUTO_UPDATE_ENABLED = "auto_update_enabled"
|
const val AUTO_UPDATE_ENABLED = "auto_update_enabled"
|
||||||
const val DISABLE_MEMORY_LIMIT = "disable_memory_limit"
|
|
||||||
const val DYNAMIC_NOTIFICATION = "dynamic_notification"
|
const val DYNAMIC_NOTIFICATION = "dynamic_notification"
|
||||||
const val DISABLE_DEPRECATED_WARNINGS = "disable_deprecated_warnings"
|
const val DISABLE_DEPRECATED_WARNINGS = "disable_deprecated_warnings"
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ object Settings {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var autoUpdateEnabled by dataStore.boolean(SettingsKey.AUTO_UPDATE_ENABLED) { false }
|
var autoUpdateEnabled by dataStore.boolean(SettingsKey.AUTO_UPDATE_ENABLED) { false }
|
||||||
var disableMemoryLimit by dataStore.boolean(SettingsKey.DISABLE_MEMORY_LIMIT)
|
|
||||||
var dynamicNotification by dataStore.boolean(SettingsKey.DYNAMIC_NOTIFICATION) { true }
|
var dynamicNotification by dataStore.boolean(SettingsKey.DYNAMIC_NOTIFICATION) { true }
|
||||||
var disableDeprecatedWarnings by dataStore.boolean(SettingsKey.DISABLE_DEPRECATED_WARNINGS) { false }
|
var disableDeprecatedWarnings by dataStore.boolean(SettingsKey.DISABLE_DEPRECATED_WARNINGS) { false }
|
||||||
|
|
||||||
|
|||||||
@@ -199,8 +199,6 @@
|
|||||||
<string name="sponsor">حامی مالی</string>
|
<string name="sponsor">حامی مالی</string>
|
||||||
<string name="working_directory">پوشه کاری</string>
|
<string name="working_directory">پوشه کاری</string>
|
||||||
<string name="disable_deprecated_warnings">غیرفعالکردن هشدارهای منسوخ</string>
|
<string name="disable_deprecated_warnings">غیرفعالکردن هشدارهای منسوخ</string>
|
||||||
<string name="ignore_memory_limit">نادیده گرفتن محدودیت حافظه</string>
|
|
||||||
<string name="ignore_memory_limit_description">محدودیت حافظه روی sing-box اعمال نشود.</string>
|
|
||||||
<string name="notification_settings">اعلانها</string>
|
<string name="notification_settings">اعلانها</string>
|
||||||
<string name="enable_notification">فعالکردن اعلان</string>
|
<string name="enable_notification">فعالکردن اعلان</string>
|
||||||
<string name="dynamic_notification">نمایش سرعت بلادرنگ در اعلان</string>
|
<string name="dynamic_notification">نمایش سرعت بلادرنگ در اعلان</string>
|
||||||
|
|||||||
@@ -199,8 +199,6 @@
|
|||||||
<string name="sponsor">Поддержать</string>
|
<string name="sponsor">Поддержать</string>
|
||||||
<string name="working_directory">Рабочая директория</string>
|
<string name="working_directory">Рабочая директория</string>
|
||||||
<string name="disable_deprecated_warnings">Отключить предупреждения об устаревании</string>
|
<string name="disable_deprecated_warnings">Отключить предупреждения об устаревании</string>
|
||||||
<string name="ignore_memory_limit">Игнорировать ограничение памяти</string>
|
|
||||||
<string name="ignore_memory_limit_description">Не применять ограничения по памяти для sing-box.</string>
|
|
||||||
<string name="notification_settings">Уведомления</string>
|
<string name="notification_settings">Уведомления</string>
|
||||||
<string name="enable_notification">Включить уведомления</string>
|
<string name="enable_notification">Включить уведомления</string>
|
||||||
<string name="dynamic_notification">Отображать скорость в реальном времени в уведомлении</string>
|
<string name="dynamic_notification">Отображать скорость в реальном времени в уведомлении</string>
|
||||||
|
|||||||
@@ -199,8 +199,6 @@
|
|||||||
<string name="sponsor">赞助</string>
|
<string name="sponsor">赞助</string>
|
||||||
<string name="working_directory">工作目录</string>
|
<string name="working_directory">工作目录</string>
|
||||||
<string name="disable_deprecated_warnings">禁用弃用警告</string>
|
<string name="disable_deprecated_warnings">禁用弃用警告</string>
|
||||||
<string name="ignore_memory_limit">忽略内存限制</string>
|
|
||||||
<string name="ignore_memory_limit_description">不对 sing-box 强制执行内存限制。</string>
|
|
||||||
<string name="notification_settings">通知</string>
|
<string name="notification_settings">通知</string>
|
||||||
<string name="enable_notification">启用通知</string>
|
<string name="enable_notification">启用通知</string>
|
||||||
<string name="dynamic_notification">在通知中显示实时网速</string>
|
<string name="dynamic_notification">在通知中显示实时网速</string>
|
||||||
|
|||||||
@@ -199,8 +199,6 @@
|
|||||||
<string name="sponsor">贊助</string>
|
<string name="sponsor">贊助</string>
|
||||||
<string name="working_directory">工作目錄</string>
|
<string name="working_directory">工作目錄</string>
|
||||||
<string name="disable_deprecated_warnings">停用過時警告</string>
|
<string name="disable_deprecated_warnings">停用過時警告</string>
|
||||||
<string name="ignore_memory_limit">忽略記憶體限制</string>
|
|
||||||
<string name="ignore_memory_limit_description">不對 sing-box 強制執行記憶體限制。</string>
|
|
||||||
<string name="notification_settings">通知</string>
|
<string name="notification_settings">通知</string>
|
||||||
<string name="enable_notification">啟用通知</string>
|
<string name="enable_notification">啟用通知</string>
|
||||||
<string name="dynamic_notification">在通知中顯示即時網速</string>
|
<string name="dynamic_notification">在通知中顯示即時網速</string>
|
||||||
|
|||||||
@@ -199,8 +199,6 @@
|
|||||||
<string name="sponsor">Sponsor</string>
|
<string name="sponsor">Sponsor</string>
|
||||||
<string name="working_directory">Working Directory</string>
|
<string name="working_directory">Working Directory</string>
|
||||||
<string name="disable_deprecated_warnings">Disable Deprecated Warnings</string>
|
<string name="disable_deprecated_warnings">Disable Deprecated Warnings</string>
|
||||||
<string name="ignore_memory_limit">Ignore Memory Limit</string>
|
|
||||||
<string name="ignore_memory_limit_description">Do not enforce memory limits on sing-box.</string>
|
|
||||||
<string name="notification_settings">Notification</string>
|
<string name="notification_settings">Notification</string>
|
||||||
<string name="enable_notification">Enable Notification</string>
|
<string name="enable_notification">Enable Notification</string>
|
||||||
<string name="dynamic_notification">Display realtime speed in notification</string>
|
<string name="dynamic_notification">Display realtime speed in notification</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user