Compare commits
No commits in common. "38d2bbf570747454a6d9b6c4070ab031fc4a7887" and "389e60209773ce10d133972d7f6fddd9a1058224" have entirely different histories.
38d2bbf570
...
389e602097
@ -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
|
||||||
|
|||||||
@ -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(
|
||||||
"✕",
|
"✕",
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user