Compare commits

..

No commits in common. "38d2bbf570747454a6d9b6c4070ab031fc4a7887" and "389e60209773ce10d133972d7f6fddd9a1058224" have entirely different histories.

4 changed files with 7 additions and 67 deletions

View File

@ -11,8 +11,8 @@ android {
applicationId = "com.archipelago.app" applicationId = "com.archipelago.app"
minSdk = 26 minSdk = 26
targetSdk = 35 targetSdk = 35
versionCode = 16 versionCode = 15
versionName = "0.4.12" versionName = "0.4.11"
vectorDrawables { vectorDrawables {
useSupportLibrary = true useSupportLibrary = true

View File

@ -75,7 +75,6 @@ fun NESMenu(
onDismiss: () -> Unit, onDismiss: () -> Unit,
onSelectServer: (ServerEntry) -> Unit, onSelectServer: (ServerEntry) -> Unit,
onAddServer: (ServerEntry) -> Unit, onAddServer: (ServerEntry) -> Unit,
onEditServer: (ServerEntry, ServerEntry) -> Unit,
onRemoveServer: (ServerEntry) -> Unit, onRemoveServer: (ServerEntry) -> Unit,
onToggleMode: () -> Unit, onToggleMode: () -> Unit,
onToggleStyle: () -> Unit, onToggleStyle: () -> Unit,
@ -88,7 +87,7 @@ fun NESMenu(
contentAlignment = Alignment.Center, contentAlignment = Alignment.Center,
) { ) {
AnimatedVisibility(visible = visible, enter = fadeIn() + scaleIn(initialScale = 0.95f), exit = fadeOut() + scaleOut(targetScale = 0.95f)) { AnimatedVisibility(visible = visible, enter = fadeIn() + scaleIn(initialScale = 0.95f), exit = fadeOut() + scaleOut(targetScale = 0.95f)) {
MenuPanel(servers, activeServer, isGamepadMode, controllerStyle, onDismiss, onSelectServer, onAddServer, onEditServer, onRemoveServer, onToggleMode, onToggleStyle, onBackToWebView) MenuPanel(servers, activeServer, isGamepadMode, controllerStyle, onDismiss, onSelectServer, onAddServer, onRemoveServer, onToggleMode, onToggleStyle, onBackToWebView)
} }
} }
} }
@ -103,39 +102,21 @@ private fun MenuPanel(
onDismiss: () -> Unit, onDismiss: () -> Unit,
onSelectServer: (ServerEntry) -> Unit, onSelectServer: (ServerEntry) -> Unit,
onAddServer: (ServerEntry) -> Unit, onAddServer: (ServerEntry) -> Unit,
onEditServer: (ServerEntry, ServerEntry) -> Unit,
onRemoveServer: (ServerEntry) -> Unit, onRemoveServer: (ServerEntry) -> Unit,
onToggleMode: () -> Unit, onToggleMode: () -> Unit,
onToggleStyle: () -> Unit, onToggleStyle: () -> Unit,
onBackToWebView: (() -> Unit)?, onBackToWebView: (() -> Unit)?,
) { ) {
var showAdd by remember { mutableStateOf(false) } var showAdd by remember { mutableStateOf(false) }
// The saved server being edited, or null when adding a new one.
var editing by remember { mutableStateOf<ServerEntry?>(null) }
var nm by remember { mutableStateOf("") } var nm by remember { mutableStateOf("") }
var addr by remember { mutableStateOf("") } var addr by remember { mutableStateOf("") }
var pwd by remember { mutableStateOf("") } var pwd by remember { mutableStateOf("") }
fun resetForm() {
nm = ""; addr = ""; pwd = ""; showAdd = false; editing = null
}
fun startEdit(server: ServerEntry) {
editing = server
nm = server.name; addr = server.address; pwd = server.password
showAdd = false
}
fun submit() { fun submit() {
if (addr.isBlank()) return if (addr.isNotBlank()) {
val orig = editing
if (orig != null) {
// Preserve fields the compact form doesn't expose (scheme, port).
onEditServer(orig, orig.copy(address = addr, password = pwd, name = nm))
} else {
onAddServer(ServerEntry(addr, false, password = pwd, name = nm)) onAddServer(ServerEntry(addr, false, password = pwd, name = nm))
nm = ""; addr = ""; pwd = ""; showAdd = false
} }
resetForm()
} }
Column( Column(
@ -168,7 +149,6 @@ private fun MenuPanel(
label = server.displayName(), label = server.displayName(),
selected = active, selected = active,
onClick = { onSelectServer(server) }, onClick = { onSelectServer(server) },
onEdit = { startEdit(server) },
onRemove = { onRemoveServer(server) }, onRemove = { onRemoveServer(server) },
) )
} }
@ -177,8 +157,8 @@ private fun MenuPanel(
Text("No servers", color = TextMuted, fontSize = 14.sp, modifier = Modifier.padding(vertical = 4.dp)) Text("No servers", color = TextMuted, fontSize = 14.sp, modifier = Modifier.padding(vertical = 4.dp))
} }
// Add / edit server // Add server
if (showAdd || editing != null) { if (showAdd) {
Column( Column(
Modifier Modifier
.fillMaxWidth() .fillMaxWidth()
@ -188,25 +168,6 @@ private fun MenuPanel(
.padding(12.dp), .padding(12.dp),
verticalArrangement = Arrangement.spacedBy(8.dp), verticalArrangement = Arrangement.spacedBy(8.dp),
) { ) {
Row(
Modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween,
) {
Text(
if (editing != null) "Edit Server" else "Add Server",
color = TextMuted,
fontSize = 13.sp,
letterSpacing = 1.sp,
fontWeight = FontWeight.Medium,
)
Text(
"Cancel",
color = TextMuted,
fontSize = 13.sp,
modifier = Modifier.clickable { resetForm() }.padding(start = 8.dp),
)
}
GlassField( GlassField(
value = nm, onValueChange = { nm = it }, value = nm, onValueChange = { nm = it },
placeholder = "Name (optional)", placeholder = "Name (optional)",
@ -267,7 +228,6 @@ private fun MenuItem(
selected: Boolean = false, selected: Boolean = false,
labelColor: Color = TextPrimary, labelColor: Color = TextPrimary,
onClick: () -> Unit, onClick: () -> Unit,
onEdit: (() -> Unit)? = null,
onRemove: (() -> Unit)? = null, onRemove: (() -> Unit)? = null,
) { ) {
Row( Row(
@ -287,16 +247,7 @@ private fun MenuItem(
color = if (selected) BitcoinOrange else labelColor, color = if (selected) BitcoinOrange else labelColor,
fontSize = 16.sp, fontSize = 16.sp,
fontWeight = FontWeight.Medium, fontWeight = FontWeight.Medium,
modifier = Modifier.weight(1f),
) )
if (onEdit != null) {
Text(
"",
color = TextMuted,
fontSize = 16.sp,
modifier = Modifier.clickable { onEdit() }.padding(horizontal = 8.dp),
)
}
if (onRemove != null) { if (onRemove != null) {
Text( Text(
"", "",

View File

@ -216,17 +216,6 @@ fun RemoteInputScreen(onBack: () -> Unit) {
onAddServer = { server -> onAddServer = { server ->
scope.launch { prefs.addSavedServer(server); if (activeServer == null) prefs.setActiveServer(server) } scope.launch { prefs.addSavedServer(server); if (activeServer == null) prefs.setActiveServer(server) }
}, },
onEditServer = { original, updated ->
scope.launch {
prefs.updateSavedServer(original, updated)
// If the edited server is the live one, reconnect with the new
// address/credentials so the change takes effect immediately.
if (original.serialize() == activeServer?.serialize()) {
ws.disconnect()
prefs.setActiveServer(updated)
}
}
},
onRemoveServer = { server -> onRemoveServer = { server ->
scope.launch { scope.launch {
prefs.removeSavedServer(server) prefs.removeSavedServer(server)