forked from geode-sdk/android-launcher
add load testing preference
This commit is contained in:
2 files changed
+87
-46
No files matched your search
@@ -25,8 +25,10 @@ import androidx.compose.ui.semantics.Role
|
|||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import dev.xyze.geodelauncher.utils.LaunchUtils
|
import androidx.core.content.edit
|
||||||
import dev.xyze.geodelauncher.ui.theme.GeodeLauncherTheme
|
import dev.xyze.geodelauncher.ui.theme.GeodeLauncherTheme
|
||||||
|
import dev.xyze.geodelauncher.utils.LaunchUtils
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
|
|
||||||
class MainActivity : ComponentActivity() {
|
class MainActivity : ComponentActivity() {
|
||||||
@@ -56,6 +58,33 @@ fun onSettings(context: Context) {
|
|||||||
Toast.makeText(context, "Settings are not implemented yet!", Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, "Settings are not implemented yet!", Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun onOpenFolder(context: Context) {
|
||||||
|
context.getExternalFilesDir(null)?.let { file ->
|
||||||
|
val geodePath = file.path + File.separator + "geode" + File.separator
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun toggleLoadTesting(context: Context): Boolean {
|
||||||
|
val preferences = context.getSharedPreferences(
|
||||||
|
context.getString(R.string.preference_file_key), Context.MODE_PRIVATE)
|
||||||
|
|
||||||
|
val current = preferences.getBoolean(
|
||||||
|
context.getString(R.string.preference_load_testing), false)
|
||||||
|
preferences.edit {
|
||||||
|
putBoolean(context.getString(R.string.preference_load_testing), !current)
|
||||||
|
commit()
|
||||||
|
}
|
||||||
|
|
||||||
|
return preferences.getBoolean(context.getString(R.string.preference_load_testing), false)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getLoadTesting(context: Context): Boolean {
|
||||||
|
val preferences = context.getSharedPreferences(
|
||||||
|
context.getString(R.string.preference_file_key), Context.MODE_PRIVATE)
|
||||||
|
|
||||||
|
return preferences.getBoolean(context.getString(R.string.preference_load_testing), false)
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun MainScreen(gdInstalled: Boolean = true) {
|
fun MainScreen(gdInstalled: Boolean = true) {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
@@ -113,54 +142,63 @@ fun MainScreen(gdInstalled: Boolean = true) {
|
|||||||
|
|
||||||
Spacer(modifier = Modifier.height(12.dp))
|
Spacer(modifier = Modifier.height(12.dp))
|
||||||
|
|
||||||
val isLoadTesting = remember { mutableStateOf(true) }
|
TestingUtils()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Card(
|
@Composable
|
||||||
elevation = CardDefaults.elevatedCardElevation(),
|
fun TestingUtils() {
|
||||||
colors = CardDefaults.elevatedCardColors(),
|
val context = LocalContext.current
|
||||||
|
|
||||||
|
val isLoadTesting = remember { mutableStateOf(getLoadTesting(context)) }
|
||||||
|
|
||||||
|
Card(
|
||||||
|
elevation = CardDefaults.elevatedCardElevation(),
|
||||||
|
colors = CardDefaults.elevatedCardColors(),
|
||||||
|
) {
|
||||||
|
Column(
|
||||||
|
Modifier.padding(16.dp),
|
||||||
|
verticalArrangement = Arrangement.spacedBy(4.dp, Alignment.CenterVertically),
|
||||||
|
horizontalAlignment = Alignment.CenterHorizontally,
|
||||||
) {
|
) {
|
||||||
Column(
|
Row {
|
||||||
Modifier.padding(16.dp),
|
Icon(
|
||||||
verticalArrangement = Arrangement.spacedBy(4.dp, Alignment.CenterVertically),
|
Icons.Filled.Warning,
|
||||||
horizontalAlignment = Alignment.CenterHorizontally,
|
contentDescription = "Warning Icon"
|
||||||
|
)
|
||||||
|
Spacer(Modifier.size(4.dp))
|
||||||
|
Text("Testing Utils")
|
||||||
|
}
|
||||||
|
Row(
|
||||||
|
Modifier
|
||||||
|
.height(48.dp)
|
||||||
|
.toggleable(
|
||||||
|
value = isLoadTesting.value,
|
||||||
|
onValueChange = { isLoadTesting.value = toggleLoadTesting(context) },
|
||||||
|
role = Role.Checkbox
|
||||||
|
)
|
||||||
|
.padding(horizontal = 16.dp),
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
) {
|
) {
|
||||||
Row {
|
Checkbox(
|
||||||
Icon(
|
checked = isLoadTesting.value,
|
||||||
Icons.Filled.Warning,
|
onCheckedChange = null
|
||||||
contentDescription = "Warning Icon"
|
)
|
||||||
)
|
Text(
|
||||||
Spacer(Modifier.size(4.dp))
|
text = "Load testing libraries",
|
||||||
Text("Testing Utils")
|
style = MaterialTheme.typography.bodyLarge,
|
||||||
}
|
modifier = Modifier.padding(start = 16.dp)
|
||||||
Row(
|
)
|
||||||
Modifier
|
}
|
||||||
.height(48.dp)
|
Button(
|
||||||
.toggleable(
|
onClick = { onOpenFolder(context) }
|
||||||
value = isLoadTesting.value,
|
) {
|
||||||
onValueChange = { isLoadTesting.value = !isLoadTesting.value },
|
Icon(
|
||||||
role = Role.Checkbox
|
Icons.Filled.ExitToApp,
|
||||||
)
|
contentDescription = "Folder Icon"
|
||||||
.padding(horizontal = 16.dp),
|
)
|
||||||
verticalAlignment = Alignment.CenterVertically
|
Spacer(Modifier.size(ButtonDefaults.IconSpacing))
|
||||||
) {
|
Text("Open Geode folder")
|
||||||
Checkbox(
|
|
||||||
checked = isLoadTesting.value,
|
|
||||||
onCheckedChange = null
|
|
||||||
)
|
|
||||||
Text(
|
|
||||||
text = "Load testing libraries",
|
|
||||||
style = MaterialTheme.typography.bodyLarge,
|
|
||||||
modifier = Modifier.padding(start = 16.dp)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
Button(onClick = { /* TODO: add geode folder open */ }) {
|
|
||||||
Icon(
|
|
||||||
Icons.Filled.ExitToApp,
|
|
||||||
contentDescription = "Folder Icon"
|
|
||||||
)
|
|
||||||
Spacer(Modifier.size(ButtonDefaults.IconSpacing))
|
|
||||||
Text("Open Geode folder")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,7 @@
|
|||||||
<string name="app_name">Geode</string>
|
<string name="app_name">Geode</string>
|
||||||
<string name="title_activity_geometry_dash">GeometryDash</string>
|
<string name="title_activity_geometry_dash">GeometryDash</string>
|
||||||
<string name="failed_mod_core">Failed to load mod core.</string>
|
<string name="failed_mod_core">Failed to load mod core.</string>
|
||||||
|
<string name="no_activity_found">No activity found for this action.</string>
|
||||||
|
<string name="preference_file_key">GeodeLauncherPreferencesFileKey</string>
|
||||||
|
<string name="preference_load_testing">PreferenceLoadTesting</string>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in new issue
Block a user