Fix Android startup defaults and window sizing
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"slices"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -413,6 +414,17 @@ func resolveFlagOrEnv(flagValue, envName, fallback string) string {
|
||||
return fallback
|
||||
}
|
||||
|
||||
func defaultModeForRuntime(goos string) string {
|
||||
if strings.EqualFold(strings.TrimSpace(goos), "android") {
|
||||
return "phone"
|
||||
}
|
||||
return "desktop"
|
||||
}
|
||||
|
||||
func shouldUsePreviewWindowSize(mode, goos string) bool {
|
||||
return !strings.EqualFold(strings.TrimSpace(goos), "android")
|
||||
}
|
||||
|
||||
func (u *ui) selectedAttachmentItems() []attachmentItem {
|
||||
item, ok := u.selectedEntry()
|
||||
if !ok || len(item.Attachments) == 0 {
|
||||
@@ -2903,7 +2915,7 @@ func main() {
|
||||
stateDir := flag.String("state-dir", "", "directory for KeePassGO state such as recent-vault history and default save targets")
|
||||
flag.Parse()
|
||||
|
||||
resolvedMode := resolveFlagOrEnv(*mode, "KEEPASSGO_MODE", "desktop")
|
||||
resolvedMode := resolveFlagOrEnv(*mode, "KEEPASSGO_MODE", defaultModeForRuntime(runtime.GOOS))
|
||||
resolvedStateDir := resolveFlagOrEnv(*stateDir, "KEEPASSGO_STATE_DIR", "")
|
||||
|
||||
width := unit.Dp(1180)
|
||||
@@ -2916,14 +2928,17 @@ func main() {
|
||||
|
||||
go func() {
|
||||
w := new(app.Window)
|
||||
w.Option(
|
||||
app.Title(productName),
|
||||
app.Size(width, height),
|
||||
)
|
||||
options := []app.Option{app.Title(productName)}
|
||||
if shouldUsePreviewWindowSize(resolvedMode, runtime.GOOS) {
|
||||
options = append(options, app.Size(width, height))
|
||||
}
|
||||
w.Option(options...)
|
||||
if err := run(w, strings.ToLower(resolvedMode), defaultStatePaths(resolvedStateDir)); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
os.Exit(0)
|
||||
if !strings.EqualFold(runtime.GOOS, "android") {
|
||||
os.Exit(0)
|
||||
}
|
||||
}()
|
||||
app.Main()
|
||||
}
|
||||
|
||||
@@ -2348,6 +2348,31 @@ func TestResolveFlagOrEnvPrefersFlagThenEnvThenFallback(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestDefaultModeForRuntimeUsesPhoneOnAndroid(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if got := defaultModeForRuntime("android"); got != "phone" {
|
||||
t.Fatalf("defaultModeForRuntime(android) = %q, want %q", got, "phone")
|
||||
}
|
||||
if got := defaultModeForRuntime("linux"); got != "desktop" {
|
||||
t.Fatalf("defaultModeForRuntime(linux) = %q, want %q", got, "desktop")
|
||||
}
|
||||
}
|
||||
|
||||
func TestShouldUsePreviewWindowSizeSkipsAndroid(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if got := shouldUsePreviewWindowSize("desktop", "android"); got {
|
||||
t.Fatal("shouldUsePreviewWindowSize(desktop, android) = true, want false")
|
||||
}
|
||||
if got := shouldUsePreviewWindowSize("phone", "android"); got {
|
||||
t.Fatal("shouldUsePreviewWindowSize(phone, android) = true, want false")
|
||||
}
|
||||
if got := shouldUsePreviewWindowSize("desktop", "linux"); !got {
|
||||
t.Fatal("shouldUsePreviewWindowSize(desktop, linux) = false, want true")
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnterOnLocalLifecycleScreenDefaultsToOpenVault(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user