forked from MeloNX/MeloNX
android - add log settings
This commit is contained in:
parent
819c7671bb
commit
e7ac8bf333
@ -52,3 +52,7 @@ class Logging(private var viewModel: MainViewModel) {
|
|||||||
File(logPath).mkdirs()
|
File(logPath).mkdirs()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal enum class LogLevel {
|
||||||
|
Debug, Stub, Info, Warning, Error, Guest, AccessLog, Notice, Trace
|
||||||
|
}
|
||||||
|
@ -20,6 +20,7 @@ import androidx.core.view.WindowInsetsControllerCompat
|
|||||||
import com.anggrayudi.storage.SimpleStorageHelper
|
import com.anggrayudi.storage.SimpleStorageHelper
|
||||||
import org.ryujinx.android.ui.theme.RyujinxAndroidTheme
|
import org.ryujinx.android.ui.theme.RyujinxAndroidTheme
|
||||||
import org.ryujinx.android.viewmodels.MainViewModel
|
import org.ryujinx.android.viewmodels.MainViewModel
|
||||||
|
import org.ryujinx.android.viewmodels.QuickSettings
|
||||||
import org.ryujinx.android.views.MainView
|
import org.ryujinx.android.views.MainView
|
||||||
import kotlin.math.abs
|
import kotlin.math.abs
|
||||||
|
|
||||||
@ -64,7 +65,17 @@ class MainActivity : BaseActivity() {
|
|||||||
return
|
return
|
||||||
|
|
||||||
val appPath: String = AppPath
|
val appPath: String = AppPath
|
||||||
val success = RyujinxNative.instance.initialize(NativeHelpers.instance.storeStringJava(appPath), false)
|
|
||||||
|
var quickSettings = QuickSettings(this)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Debug.ordinal, quickSettings.enableDebugLogs)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Info.ordinal, quickSettings.enableInfoLogs)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Stub.ordinal, quickSettings.enableStubLogs)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Warning.ordinal, quickSettings.enableWarningLogs)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Error.ordinal, quickSettings.enableErrorLogs)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.AccessLog.ordinal, quickSettings.enableAccessLogs)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Guest.ordinal, quickSettings.enableGuestLogs)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Trace.ordinal, quickSettings.enableTraceLogs)
|
||||||
|
val success = RyujinxNative.instance.initialize(NativeHelpers.instance.storeStringJava(appPath))
|
||||||
_isInit = success
|
_isInit = success
|
||||||
}
|
}
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
@ -78,7 +89,6 @@ class MainActivity : BaseActivity() {
|
|||||||
|
|
||||||
AppPath = this.getExternalFilesDir(null)!!.absolutePath
|
AppPath = this.getExternalFilesDir(null)!!.absolutePath
|
||||||
|
|
||||||
|
|
||||||
initialize()
|
initialize()
|
||||||
|
|
||||||
window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
|
window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
|
||||||
|
@ -4,7 +4,7 @@ import org.ryujinx.android.viewmodels.GameInfo
|
|||||||
|
|
||||||
@Suppress("KotlinJniMissingFunction")
|
@Suppress("KotlinJniMissingFunction")
|
||||||
class RyujinxNative {
|
class RyujinxNative {
|
||||||
external fun initialize(appPath: Long, enableDebugLogs : Boolean): Boolean
|
external fun initialize(appPath: Long): Boolean
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val instance: RyujinxNative = RyujinxNative()
|
val instance: RyujinxNative = RyujinxNative()
|
||||||
@ -64,4 +64,5 @@ class RyujinxNative {
|
|||||||
external fun userDeleteUser(userId: String)
|
external fun userDeleteUser(userId: String)
|
||||||
external fun userOpenUser(userId: Long)
|
external fun userOpenUser(userId: Long)
|
||||||
external fun userCloseUser(userId: String)
|
external fun userCloseUser(userId: String)
|
||||||
|
external fun loggingSetEnabled(logLevel: Int, enabled: Boolean)
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,16 @@ class QuickSettings(val activity: Activity) {
|
|||||||
var resScale : Float
|
var resScale : Float
|
||||||
var isGrid : Boolean
|
var isGrid : Boolean
|
||||||
|
|
||||||
|
// Logs
|
||||||
|
var enableDebugLogs: Boolean
|
||||||
|
var enableStubLogs: Boolean
|
||||||
|
var enableInfoLogs: Boolean
|
||||||
|
var enableWarningLogs: Boolean
|
||||||
|
var enableErrorLogs: Boolean
|
||||||
|
var enableGuestLogs: Boolean
|
||||||
|
var enableAccessLogs: Boolean
|
||||||
|
var enableTraceLogs: Boolean
|
||||||
|
|
||||||
private var sharedPref: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(activity)
|
private var sharedPref: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(activity)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@ -31,5 +41,41 @@ class QuickSettings(val activity: Activity) {
|
|||||||
resScale = sharedPref.getFloat("resScale", 1f)
|
resScale = sharedPref.getFloat("resScale", 1f)
|
||||||
useVirtualController = sharedPref.getBoolean("useVirtualController", true)
|
useVirtualController = sharedPref.getBoolean("useVirtualController", true)
|
||||||
isGrid = sharedPref.getBoolean("isGrid", true)
|
isGrid = sharedPref.getBoolean("isGrid", true)
|
||||||
|
|
||||||
|
enableDebugLogs = sharedPref.getBoolean("enableDebugLogs", false)
|
||||||
|
enableStubLogs = sharedPref.getBoolean("enableStubLogs", false)
|
||||||
|
enableInfoLogs = sharedPref.getBoolean("enableInfoLogs", true)
|
||||||
|
enableWarningLogs = sharedPref.getBoolean("enableWarningLogs", true)
|
||||||
|
enableErrorLogs = sharedPref.getBoolean("enableErrorLogs", true)
|
||||||
|
enableGuestLogs = sharedPref.getBoolean("enableGuestLogs", true)
|
||||||
|
enableAccessLogs = sharedPref.getBoolean("enableAccessLogs", false)
|
||||||
|
enableTraceLogs = sharedPref.getBoolean("enableStubLogs", false)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun save(){
|
||||||
|
val editor = sharedPref.edit()
|
||||||
|
|
||||||
|
editor.putBoolean("isHostMapped", isHostMapped)
|
||||||
|
editor.putBoolean("useNce", useNce)
|
||||||
|
editor.putBoolean("enableVsync", enableVsync)
|
||||||
|
editor.putBoolean("enableDocked", enableDocked)
|
||||||
|
editor.putBoolean("enablePtc", enablePtc)
|
||||||
|
editor.putBoolean("ignoreMissingServices", ignoreMissingServices)
|
||||||
|
editor.putBoolean("enableShaderCache", enableShaderCache)
|
||||||
|
editor.putBoolean("enableTextureRecompression", enableTextureRecompression)
|
||||||
|
editor.putFloat("resScale", resScale)
|
||||||
|
editor.putBoolean("useVirtualController", useVirtualController)
|
||||||
|
editor.putBoolean("isGrid", isGrid)
|
||||||
|
|
||||||
|
editor.putBoolean("enableDebugLogs", enableDebugLogs)
|
||||||
|
editor.putBoolean("enableStubLogs", enableStubLogs)
|
||||||
|
editor.putBoolean("enableInfoLogs", enableInfoLogs)
|
||||||
|
editor.putBoolean("enableWarningLogs", enableWarningLogs)
|
||||||
|
editor.putBoolean("enableErrorLogs", enableErrorLogs)
|
||||||
|
editor.putBoolean("enableGuestLogs", enableGuestLogs)
|
||||||
|
editor.putBoolean("enableAccessLogs", enableAccessLogs)
|
||||||
|
editor.putBoolean("enableTraceLogs", enableTraceLogs)
|
||||||
|
|
||||||
|
editor.apply()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,9 @@ import androidx.navigation.NavHostController
|
|||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.anggrayudi.storage.file.FileFullPath
|
import com.anggrayudi.storage.file.FileFullPath
|
||||||
import com.anggrayudi.storage.file.getAbsolutePath
|
import com.anggrayudi.storage.file.getAbsolutePath
|
||||||
|
import org.ryujinx.android.LogLevel
|
||||||
import org.ryujinx.android.MainActivity
|
import org.ryujinx.android.MainActivity
|
||||||
|
import org.ryujinx.android.RyujinxNative
|
||||||
|
|
||||||
class SettingsViewModel(var navController: NavHostController, val activity: MainActivity) {
|
class SettingsViewModel(var navController: NavHostController, val activity: MainActivity) {
|
||||||
private var previousCallback: ((requestCode: Int, folder: DocumentFile) -> Unit)?
|
private var previousCallback: ((requestCode: Int, folder: DocumentFile) -> Unit)?
|
||||||
@ -42,6 +44,14 @@ class SettingsViewModel(var navController: NavHostController, val activity: Main
|
|||||||
resScale: MutableState<Float>,
|
resScale: MutableState<Float>,
|
||||||
useVirtualController: MutableState<Boolean>,
|
useVirtualController: MutableState<Boolean>,
|
||||||
isGrid: MutableState<Boolean>,
|
isGrid: MutableState<Boolean>,
|
||||||
|
enableDebugLogs: MutableState<Boolean>,
|
||||||
|
enableStubLogs: MutableState<Boolean>,
|
||||||
|
enableInfoLogs: MutableState<Boolean>,
|
||||||
|
enableWarningLogs: MutableState<Boolean>,
|
||||||
|
enableErrorLogs: MutableState<Boolean>,
|
||||||
|
enableGuestLogs: MutableState<Boolean>,
|
||||||
|
enableAccessLogs: MutableState<Boolean>,
|
||||||
|
enableTraceLogs: MutableState<Boolean>
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -56,6 +66,15 @@ class SettingsViewModel(var navController: NavHostController, val activity: Main
|
|||||||
resScale.value = sharedPref.getFloat("resScale", 1f)
|
resScale.value = sharedPref.getFloat("resScale", 1f)
|
||||||
useVirtualController.value = sharedPref.getBoolean("useVirtualController", true)
|
useVirtualController.value = sharedPref.getBoolean("useVirtualController", true)
|
||||||
isGrid.value = sharedPref.getBoolean("isGrid", true)
|
isGrid.value = sharedPref.getBoolean("isGrid", true)
|
||||||
|
|
||||||
|
enableDebugLogs.value = sharedPref.getBoolean("enableDebugLogs", false)
|
||||||
|
enableStubLogs.value = sharedPref.getBoolean("enableStubLogs", false)
|
||||||
|
enableInfoLogs.value = sharedPref.getBoolean("enableInfoLogs", true)
|
||||||
|
enableWarningLogs.value = sharedPref.getBoolean("enableWarningLogs", true)
|
||||||
|
enableErrorLogs.value = sharedPref.getBoolean("enableErrorLogs", true)
|
||||||
|
enableGuestLogs.value = sharedPref.getBoolean("enableGuestLogs", true)
|
||||||
|
enableAccessLogs.value = sharedPref.getBoolean("enableAccessLogs", false)
|
||||||
|
enableTraceLogs.value = sharedPref.getBoolean("enableStubLogs", false)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun save(
|
fun save(
|
||||||
@ -69,7 +88,15 @@ class SettingsViewModel(var navController: NavHostController, val activity: Main
|
|||||||
enableTextureRecompression: MutableState<Boolean>,
|
enableTextureRecompression: MutableState<Boolean>,
|
||||||
resScale: MutableState<Float>,
|
resScale: MutableState<Float>,
|
||||||
useVirtualController: MutableState<Boolean>,
|
useVirtualController: MutableState<Boolean>,
|
||||||
isGrid: MutableState<Boolean>
|
isGrid: MutableState<Boolean>,
|
||||||
|
enableDebugLogs: MutableState<Boolean>,
|
||||||
|
enableStubLogs: MutableState<Boolean>,
|
||||||
|
enableInfoLogs: MutableState<Boolean>,
|
||||||
|
enableWarningLogs: MutableState<Boolean>,
|
||||||
|
enableErrorLogs: MutableState<Boolean>,
|
||||||
|
enableGuestLogs: MutableState<Boolean>,
|
||||||
|
enableAccessLogs: MutableState<Boolean>,
|
||||||
|
enableTraceLogs: MutableState<Boolean>
|
||||||
){
|
){
|
||||||
val editor = sharedPref.edit()
|
val editor = sharedPref.edit()
|
||||||
|
|
||||||
@ -85,8 +112,27 @@ class SettingsViewModel(var navController: NavHostController, val activity: Main
|
|||||||
editor.putBoolean("useVirtualController", useVirtualController.value)
|
editor.putBoolean("useVirtualController", useVirtualController.value)
|
||||||
editor.putBoolean("isGrid", isGrid.value)
|
editor.putBoolean("isGrid", isGrid.value)
|
||||||
|
|
||||||
|
|
||||||
|
editor.putBoolean("enableDebugLogs", enableDebugLogs.value)
|
||||||
|
editor.putBoolean("enableStubLogs", enableStubLogs.value)
|
||||||
|
editor.putBoolean("enableInfoLogs", enableInfoLogs.value)
|
||||||
|
editor.putBoolean("enableWarningLogs", enableWarningLogs.value)
|
||||||
|
editor.putBoolean("enableErrorLogs", enableErrorLogs.value)
|
||||||
|
editor.putBoolean("enableGuestLogs", enableGuestLogs.value)
|
||||||
|
editor.putBoolean("enableAccessLogs", enableAccessLogs.value)
|
||||||
|
editor.putBoolean("enableTraceLogs", enableTraceLogs.value)
|
||||||
|
|
||||||
editor.apply()
|
editor.apply()
|
||||||
activity.storageHelper!!.onFolderSelected = previousCallback
|
activity.storageHelper!!.onFolderSelected = previousCallback
|
||||||
|
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Debug.ordinal, enableDebugLogs.value)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Info.ordinal, enableInfoLogs.value)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Stub.ordinal, enableStubLogs.value)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Warning.ordinal, enableWarningLogs.value)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Error.ordinal, enableErrorLogs.value)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.AccessLog.ordinal, enableAccessLogs.value)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Guest.ordinal, enableGuestLogs.value)
|
||||||
|
RyujinxNative.instance.loggingSetEnabled(LogLevel.Trace.ordinal, enableTraceLogs.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -103,9 +103,16 @@ class SettingViews {
|
|||||||
val useVirtualController = remember {
|
val useVirtualController = remember {
|
||||||
mutableStateOf(true)
|
mutableStateOf(true)
|
||||||
}
|
}
|
||||||
val isGrid = remember {
|
val isGrid = remember { mutableStateOf(true) }
|
||||||
mutableStateOf(true)
|
|
||||||
}
|
val enableDebugLogs = remember { mutableStateOf(true) }
|
||||||
|
val enableStubLogs = remember { mutableStateOf(true) }
|
||||||
|
val enableInfoLogs = remember { mutableStateOf(true) }
|
||||||
|
val enableWarningLogs = remember { mutableStateOf(true) }
|
||||||
|
val enableErrorLogs = remember { mutableStateOf(true) }
|
||||||
|
val enableGuestLogs = remember { mutableStateOf(true) }
|
||||||
|
val enableAccessLogs = remember { mutableStateOf(true) }
|
||||||
|
val enableTraceLogs = remember { mutableStateOf(true) }
|
||||||
|
|
||||||
if (!loaded.value) {
|
if (!loaded.value) {
|
||||||
settingsViewModel.initializeState(
|
settingsViewModel.initializeState(
|
||||||
@ -116,7 +123,15 @@ class SettingViews {
|
|||||||
enableTextureRecompression,
|
enableTextureRecompression,
|
||||||
resScale,
|
resScale,
|
||||||
useVirtualController,
|
useVirtualController,
|
||||||
isGrid
|
isGrid,
|
||||||
|
enableDebugLogs,
|
||||||
|
enableStubLogs,
|
||||||
|
enableInfoLogs,
|
||||||
|
enableWarningLogs,
|
||||||
|
enableErrorLogs,
|
||||||
|
enableGuestLogs,
|
||||||
|
enableAccessLogs,
|
||||||
|
enableTraceLogs
|
||||||
)
|
)
|
||||||
loaded.value = true
|
loaded.value = true
|
||||||
}
|
}
|
||||||
@ -139,7 +154,15 @@ class SettingViews {
|
|||||||
enableTextureRecompression,
|
enableTextureRecompression,
|
||||||
resScale,
|
resScale,
|
||||||
useVirtualController,
|
useVirtualController,
|
||||||
isGrid
|
isGrid,
|
||||||
|
enableDebugLogs,
|
||||||
|
enableStubLogs,
|
||||||
|
enableInfoLogs,
|
||||||
|
enableWarningLogs,
|
||||||
|
enableErrorLogs,
|
||||||
|
enableGuestLogs,
|
||||||
|
enableAccessLogs,
|
||||||
|
enableTraceLogs
|
||||||
)
|
)
|
||||||
settingsViewModel.navController.popBackStack()
|
settingsViewModel.navController.popBackStack()
|
||||||
}) {
|
}) {
|
||||||
@ -637,17 +660,139 @@ class SettingViews {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ExpandableView(onCardArrowClick = { }, title = "Log") {
|
ExpandableView(onCardArrowClick = { }, title = "Log") {
|
||||||
Row(
|
Column(modifier = Modifier.fillMaxWidth()) {
|
||||||
modifier = Modifier
|
Row(
|
||||||
.fillMaxWidth()
|
modifier = Modifier
|
||||||
.padding(8.dp),
|
.fillMaxWidth()
|
||||||
horizontalArrangement = Arrangement.SpaceBetween,
|
.padding(8.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
) {
|
verticalAlignment = Alignment.CenterVertically
|
||||||
Button(onClick = {
|
) {
|
||||||
mainViewModel.logging.requestExport()
|
Text(
|
||||||
}) {
|
text = "Enable Debug Logs",
|
||||||
Text(text = "Send Logs")
|
modifier = Modifier.align(Alignment.CenterVertically)
|
||||||
|
)
|
||||||
|
Switch(checked = enableDebugLogs.value, onCheckedChange = {
|
||||||
|
enableDebugLogs.value = !enableDebugLogs.value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Row(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(8.dp),
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = "Enable Stub Logs",
|
||||||
|
modifier = Modifier.align(Alignment.CenterVertically)
|
||||||
|
)
|
||||||
|
Switch(checked = enableStubLogs.value, onCheckedChange = {
|
||||||
|
enableStubLogs.value = !enableStubLogs.value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Row(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(8.dp),
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = "Enable Info Logs",
|
||||||
|
modifier = Modifier.align(Alignment.CenterVertically)
|
||||||
|
)
|
||||||
|
Switch(checked = enableInfoLogs.value, onCheckedChange = {
|
||||||
|
enableInfoLogs.value = !enableInfoLogs.value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Row(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(8.dp),
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = "Enable Warning Logs",
|
||||||
|
modifier = Modifier.align(Alignment.CenterVertically)
|
||||||
|
)
|
||||||
|
Switch(checked = enableWarningLogs.value, onCheckedChange = {
|
||||||
|
enableWarningLogs.value = !enableWarningLogs.value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Row(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(8.dp),
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = "Enable Error Logs",
|
||||||
|
modifier = Modifier.align(Alignment.CenterVertically)
|
||||||
|
)
|
||||||
|
Switch(checked = enableErrorLogs.value, onCheckedChange = {
|
||||||
|
enableErrorLogs.value = !enableErrorLogs.value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Row(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(8.dp),
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = "Enable Guest Logs",
|
||||||
|
modifier = Modifier.align(Alignment.CenterVertically)
|
||||||
|
)
|
||||||
|
Switch(checked = enableGuestLogs.value, onCheckedChange = {
|
||||||
|
enableGuestLogs.value = !enableGuestLogs.value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Row(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(8.dp),
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = "Enable Access Logs",
|
||||||
|
modifier = Modifier.align(Alignment.CenterVertically)
|
||||||
|
)
|
||||||
|
Switch(checked = enableAccessLogs.value, onCheckedChange = {
|
||||||
|
enableAccessLogs.value = !enableAccessLogs.value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Row(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(8.dp),
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = "Enable Trace Logs",
|
||||||
|
modifier = Modifier.align(Alignment.CenterVertically)
|
||||||
|
)
|
||||||
|
Switch(checked = enableTraceLogs.value, onCheckedChange = {
|
||||||
|
enableTraceLogs.value = !enableTraceLogs.value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Row(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(8.dp),
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
) {
|
||||||
|
Button(onClick = {
|
||||||
|
mainViewModel.logging.requestExport()
|
||||||
|
}) {
|
||||||
|
Text(text = "Send Logs")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -661,7 +806,15 @@ class SettingViews {
|
|||||||
enableTextureRecompression,
|
enableTextureRecompression,
|
||||||
resScale,
|
resScale,
|
||||||
useVirtualController,
|
useVirtualController,
|
||||||
isGrid
|
isGrid,
|
||||||
|
enableDebugLogs,
|
||||||
|
enableStubLogs,
|
||||||
|
enableInfoLogs,
|
||||||
|
enableWarningLogs,
|
||||||
|
enableErrorLogs,
|
||||||
|
enableGuestLogs,
|
||||||
|
enableAccessLogs,
|
||||||
|
enableTraceLogs
|
||||||
)
|
)
|
||||||
settingsViewModel.navController.popBackStack()
|
settingsViewModel.navController.popBackStack()
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user