mirror of https://github.com/openclaw/openclaw.git
fix(android): theme popup surfaces
This commit is contained in:
parent
db20141993
commit
37c79f84ba
|
|
@ -22,6 +22,7 @@ Docs: https://docs.openclaw.ai
|
||||||
- Configure/startup: move outbound send-deps resolution into a lightweight helper so `openclaw configure` no longer stalls after the banner while eagerly loading channel plugins. (#46301) thanks @scoootscooob.
|
- Configure/startup: move outbound send-deps resolution into a lightweight helper so `openclaw configure` no longer stalls after the banner while eagerly loading channel plugins. (#46301) thanks @scoootscooob.
|
||||||
- Zalo Personal/group gating: stop reapplying `dmPolicy.allowFrom` as a sender gate for already-allowlisted groups when `groupAllowFrom` is unset, so any member of an allowed group can trigger replies while DMs stay restricted. (#40146)
|
- Zalo Personal/group gating: stop reapplying `dmPolicy.allowFrom` as a sender gate for already-allowlisted groups when `groupAllowFrom` is unset, so any member of an allowed group can trigger replies while DMs stay restricted. (#40146)
|
||||||
- Plugins/install precedence: keep bundled plugins ahead of auto-discovered globals by default, but let an explicitly installed plugin record win its own duplicate-id tie so installed channel plugins load from `~/.openclaw/extensions` after `openclaw plugins install`.
|
- Plugins/install precedence: keep bundled plugins ahead of auto-discovered globals by default, but let an explicitly installed plugin record win its own duplicate-id tie so installed channel plugins load from `~/.openclaw/extensions` after `openclaw plugins install`.
|
||||||
|
- Android/chat: theme the thinking dropdown and TLS trust dialogs explicitly so popup surfaces match the active app theme instead of falling back to mismatched Material defaults.
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -92,20 +92,28 @@ fun ConnectTabScreen(viewModel: MainViewModel) {
|
||||||
val prompt = pendingTrust!!
|
val prompt = pendingTrust!!
|
||||||
AlertDialog(
|
AlertDialog(
|
||||||
onDismissRequest = { viewModel.declineGatewayTrustPrompt() },
|
onDismissRequest = { viewModel.declineGatewayTrustPrompt() },
|
||||||
title = { Text("Trust this gateway?") },
|
containerColor = mobileCardSurface,
|
||||||
|
title = { Text("Trust this gateway?", style = mobileHeadline, color = mobileText) },
|
||||||
text = {
|
text = {
|
||||||
Text(
|
Text(
|
||||||
"First-time TLS connection.\n\nVerify this SHA-256 fingerprint before trusting:\n${prompt.fingerprintSha256}",
|
"First-time TLS connection.\n\nVerify this SHA-256 fingerprint before trusting:\n${prompt.fingerprintSha256}",
|
||||||
style = mobileCallout,
|
style = mobileCallout,
|
||||||
|
color = mobileText,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
confirmButton = {
|
confirmButton = {
|
||||||
TextButton(onClick = { viewModel.acceptGatewayTrustPrompt() }) {
|
TextButton(
|
||||||
|
onClick = { viewModel.acceptGatewayTrustPrompt() },
|
||||||
|
colors = ButtonDefaults.textButtonColors(contentColor = mobileAccent),
|
||||||
|
) {
|
||||||
Text("Trust and continue")
|
Text("Trust and continue")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
dismissButton = {
|
dismissButton = {
|
||||||
TextButton(onClick = { viewModel.declineGatewayTrustPrompt() }) {
|
TextButton(
|
||||||
|
onClick = { viewModel.declineGatewayTrustPrompt() },
|
||||||
|
colors = ButtonDefaults.textButtonColors(contentColor = mobileTextSecondary),
|
||||||
|
) {
|
||||||
Text("Cancel")
|
Text("Cancel")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -455,19 +455,28 @@ fun OnboardingFlow(viewModel: MainViewModel, modifier: Modifier = Modifier) {
|
||||||
val prompt = pendingTrust!!
|
val prompt = pendingTrust!!
|
||||||
AlertDialog(
|
AlertDialog(
|
||||||
onDismissRequest = { viewModel.declineGatewayTrustPrompt() },
|
onDismissRequest = { viewModel.declineGatewayTrustPrompt() },
|
||||||
title = { Text("Trust this gateway?") },
|
containerColor = onboardingSurface,
|
||||||
|
title = { Text("Trust this gateway?", style = onboardingHeadlineStyle, color = onboardingText) },
|
||||||
text = {
|
text = {
|
||||||
Text(
|
Text(
|
||||||
"First-time TLS connection.\n\nVerify this SHA-256 fingerprint before trusting:\n${prompt.fingerprintSha256}",
|
"First-time TLS connection.\n\nVerify this SHA-256 fingerprint before trusting:\n${prompt.fingerprintSha256}",
|
||||||
|
style = onboardingCalloutStyle,
|
||||||
|
color = onboardingText,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
confirmButton = {
|
confirmButton = {
|
||||||
TextButton(onClick = { viewModel.acceptGatewayTrustPrompt() }) {
|
TextButton(
|
||||||
|
onClick = { viewModel.acceptGatewayTrustPrompt() },
|
||||||
|
colors = ButtonDefaults.textButtonColors(contentColor = onboardingAccent),
|
||||||
|
) {
|
||||||
Text("Trust and continue")
|
Text("Trust and continue")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
dismissButton = {
|
dismissButton = {
|
||||||
TextButton(onClick = { viewModel.declineGatewayTrustPrompt() }) {
|
TextButton(
|
||||||
|
onClick = { viewModel.declineGatewayTrustPrompt() },
|
||||||
|
colors = ButtonDefaults.textButtonColors(contentColor = onboardingTextSecondary),
|
||||||
|
) {
|
||||||
Text("Cancel")
|
Text("Cancel")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,15 @@ fun ChatComposer(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DropdownMenu(expanded = showThinkingMenu, onDismissRequest = { showThinkingMenu = false }) {
|
DropdownMenu(
|
||||||
|
expanded = showThinkingMenu,
|
||||||
|
onDismissRequest = { showThinkingMenu = false },
|
||||||
|
shape = RoundedCornerShape(16.dp),
|
||||||
|
containerColor = mobileCardSurface,
|
||||||
|
tonalElevation = 0.dp,
|
||||||
|
shadowElevation = 8.dp,
|
||||||
|
border = BorderStroke(1.dp, mobileBorder),
|
||||||
|
) {
|
||||||
ThinkingMenuItem("off", thinkingLevel, onSetThinkingLevel) { showThinkingMenu = false }
|
ThinkingMenuItem("off", thinkingLevel, onSetThinkingLevel) { showThinkingMenu = false }
|
||||||
ThinkingMenuItem("low", thinkingLevel, onSetThinkingLevel) { showThinkingMenu = false }
|
ThinkingMenuItem("low", thinkingLevel, onSetThinkingLevel) { showThinkingMenu = false }
|
||||||
ThinkingMenuItem("medium", thinkingLevel, onSetThinkingLevel) { showThinkingMenu = false }
|
ThinkingMenuItem("medium", thinkingLevel, onSetThinkingLevel) { showThinkingMenu = false }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue