Autosave Android settings and refine header
This commit is contained in:
@@ -2803,27 +2803,35 @@ func (u *ui) layout(gtx layout.Context) layout.Dimensions {
|
|||||||
}
|
}
|
||||||
for u.settingsDensityDense.Clicked(gtx) {
|
for u.settingsDensityDense.Clicked(gtx) {
|
||||||
u.settingsDraft.Accessibility.DisplayDensity = displayDensityDense
|
u.settingsDraft.Accessibility.DisplayDensity = displayDensityDense
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.settingsDensityComfortable.Clicked(gtx) {
|
for u.settingsDensityComfortable.Clicked(gtx) {
|
||||||
u.settingsDraft.Accessibility.DisplayDensity = displayDensityComfortable
|
u.settingsDraft.Accessibility.DisplayDensity = displayDensityComfortable
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.settingsContrastStandard.Clicked(gtx) {
|
for u.settingsContrastStandard.Clicked(gtx) {
|
||||||
u.settingsDraft.Accessibility.Contrast = contrastStandard
|
u.settingsDraft.Accessibility.Contrast = contrastStandard
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.settingsContrastHigh.Clicked(gtx) {
|
for u.settingsContrastHigh.Clicked(gtx) {
|
||||||
u.settingsDraft.Accessibility.Contrast = contrastHigh
|
u.settingsDraft.Accessibility.Contrast = contrastHigh
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.settingsReducedMotionOff.Clicked(gtx) {
|
for u.settingsReducedMotionOff.Clicked(gtx) {
|
||||||
u.settingsDraft.Accessibility.ReducedMotion = false
|
u.settingsDraft.Accessibility.ReducedMotion = false
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.settingsReducedMotionOn.Clicked(gtx) {
|
for u.settingsReducedMotionOn.Clicked(gtx) {
|
||||||
u.settingsDraft.Accessibility.ReducedMotion = true
|
u.settingsDraft.Accessibility.ReducedMotion = true
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.settingsKeyboardFocusStandard.Clicked(gtx) {
|
for u.settingsKeyboardFocusStandard.Clicked(gtx) {
|
||||||
u.settingsDraft.Accessibility.KeyboardFocus = keyboardFocusStandard
|
u.settingsDraft.Accessibility.KeyboardFocus = keyboardFocusStandard
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.settingsKeyboardFocusProminent.Clicked(gtx) {
|
for u.settingsKeyboardFocusProminent.Clicked(gtx) {
|
||||||
u.settingsDraft.Accessibility.KeyboardFocus = keyboardFocusProminent
|
u.settingsDraft.Accessibility.KeyboardFocus = keyboardFocusProminent
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.unlockVault.Clicked(gtx) {
|
for u.unlockVault.Clicked(gtx) {
|
||||||
u.startUnlockAction()
|
u.startUnlockAction()
|
||||||
@@ -2890,24 +2898,31 @@ func (u *ui) layout(gtx layout.Context) layout.Dimensions {
|
|||||||
}
|
}
|
||||||
for u.showSettingsSyncLocal.Clicked(gtx) {
|
for u.showSettingsSyncLocal.Clicked(gtx) {
|
||||||
u.settingsDraft.Sync.SourceDefault = syncSourceLocal
|
u.settingsDraft.Sync.SourceDefault = syncSourceLocal
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.showSettingsSyncRemote.Clicked(gtx) {
|
for u.showSettingsSyncRemote.Clicked(gtx) {
|
||||||
u.settingsDraft.Sync.SourceDefault = syncSourceRemote
|
u.settingsDraft.Sync.SourceDefault = syncSourceRemote
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.showSettingsSyncPull.Clicked(gtx) {
|
for u.showSettingsSyncPull.Clicked(gtx) {
|
||||||
u.settingsDraft.Sync.DirectionDefault = syncDirectionPull
|
u.settingsDraft.Sync.DirectionDefault = syncDirectionPull
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.showSettingsSyncPush.Clicked(gtx) {
|
for u.showSettingsSyncPush.Clicked(gtx) {
|
||||||
u.settingsDraft.Sync.DirectionDefault = syncDirectionPush
|
u.settingsDraft.Sync.DirectionDefault = syncDirectionPush
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
}
|
}
|
||||||
for u.showAutofillApprovalAsk.Clicked(gtx) {
|
for u.showAutofillApprovalAsk.Clicked(gtx) {
|
||||||
u.autofillFirstFillApprovalMode = autofillFirstFillApprovalAsk
|
u.autofillFirstFillApprovalMode = autofillFirstFillApprovalAsk
|
||||||
|
u.saveUIPreferences()
|
||||||
}
|
}
|
||||||
for u.showAutofillApprovalAllow.Clicked(gtx) {
|
for u.showAutofillApprovalAllow.Clicked(gtx) {
|
||||||
u.autofillFirstFillApprovalMode = autofillFirstFillApprovalAllow
|
u.autofillFirstFillApprovalMode = autofillFirstFillApprovalAllow
|
||||||
|
u.saveUIPreferences()
|
||||||
}
|
}
|
||||||
for u.showAutofillApprovalBlock.Clicked(gtx) {
|
for u.showAutofillApprovalBlock.Clicked(gtx) {
|
||||||
u.autofillFirstFillApprovalMode = autofillFirstFillApprovalBlock
|
u.autofillFirstFillApprovalMode = autofillFirstFillApprovalBlock
|
||||||
|
u.saveUIPreferences()
|
||||||
}
|
}
|
||||||
for u.allowApproval.Clicked(gtx) {
|
for u.allowApproval.Clicked(gtx) {
|
||||||
u.runAction("allow API request", func() error {
|
u.runAction("allow API request", func() error {
|
||||||
@@ -3143,6 +3158,23 @@ func (u *ui) layout(gtx layout.Context) layout.Dimensions {
|
|||||||
u.state.StatusMessage = ""
|
u.state.StatusMessage = ""
|
||||||
u.statusExpiresAt = time.Time{}
|
u.statusExpiresAt = time.Time{}
|
||||||
}
|
}
|
||||||
|
if u.securityDialogOpen {
|
||||||
|
if _, changed := u.securityCipher.Update(gtx); changed {
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
|
}
|
||||||
|
if _, changed := u.securityKDF.Update(gtx); changed {
|
||||||
|
_ = u.applySecuritySettingsLive()
|
||||||
|
}
|
||||||
|
if _, changed := u.autofillBrowserAllowlist.Update(gtx); changed {
|
||||||
|
u.saveUIPreferences()
|
||||||
|
}
|
||||||
|
if _, changed := u.autofillAppAllowlist.Update(gtx); changed {
|
||||||
|
u.saveUIPreferences()
|
||||||
|
}
|
||||||
|
if _, changed := u.autofillPackageRules.Update(gtx); changed {
|
||||||
|
u.saveUIPreferences()
|
||||||
|
}
|
||||||
|
}
|
||||||
for u.togglePassword.Clicked(gtx) {
|
for u.togglePassword.Clicked(gtx) {
|
||||||
u.showPassword = !u.showPassword
|
u.showPassword = !u.showPassword
|
||||||
}
|
}
|
||||||
@@ -3598,8 +3630,10 @@ func (u *ui) securityDialogContent(gtx layout.Context) layout.Dimensions {
|
|||||||
labeledEditorHelp(u.theme, "App and package allowlist", "One Android package name or trusted app identifier per line.", &u.autofillAppAllowlist, false),
|
labeledEditorHelp(u.theme, "App and package allowlist", "One Android package name or trusted app identifier per line.", &u.autofillAppAllowlist, false),
|
||||||
layout.Spacer{Height: unit.Dp(8)}.Layout,
|
layout.Spacer{Height: unit.Dp(8)}.Layout,
|
||||||
labeledEditorHelp(u.theme, "Package rules", "One rule per line, for example `com.android.chrome=hostname` or `org.keepassgo.browser=view-id`.", &u.autofillPackageRules, false),
|
labeledEditorHelp(u.theme, "Package rules", "One rule per line, for example `com.android.chrome=hostname` or `org.keepassgo.browser=view-id`.", &u.autofillPackageRules, false),
|
||||||
layout.Spacer{Height: unit.Dp(12)}.Layout,
|
|
||||||
func(gtx layout.Context) layout.Dimensions {
|
func(gtx layout.Context) layout.Dimensions {
|
||||||
|
if u.mode == "phone" {
|
||||||
|
return layout.Dimensions{}
|
||||||
|
}
|
||||||
return layout.Flex{Spacing: layout.SpaceStart}.Layout(gtx,
|
return layout.Flex{Spacing: layout.SpaceStart}.Layout(gtx,
|
||||||
layout.Rigid(func(gtx layout.Context) layout.Dimensions {
|
layout.Rigid(func(gtx layout.Context) layout.Dimensions {
|
||||||
return tonedButton(gtx, u.theme, &u.closeSecuritySettings, "Close")
|
return tonedButton(gtx, u.theme, &u.closeSecuritySettings, "Close")
|
||||||
@@ -3909,7 +3943,8 @@ func (u *ui) header(gtx layout.Context) layout.Dimensions {
|
|||||||
}
|
}
|
||||||
return layout.Flex{Axis: layout.Vertical}.Layout(gtx,
|
return layout.Flex{Axis: layout.Vertical}.Layout(gtx,
|
||||||
layout.Rigid(func(gtx layout.Context) layout.Dimensions {
|
layout.Rigid(func(gtx layout.Context) layout.Dimensions {
|
||||||
return layout.E.Layout(gtx, u.headerActions)
|
gtx.Constraints.Min.X = gtx.Constraints.Max.X
|
||||||
|
return u.headerActions(gtx)
|
||||||
}),
|
}),
|
||||||
layout.Rigid(func(gtx layout.Context) layout.Dimensions {
|
layout.Rigid(func(gtx layout.Context) layout.Dimensions {
|
||||||
if !u.mainMenuOpen {
|
if !u.mainMenuOpen {
|
||||||
|
|||||||
+8
-1
@@ -118,6 +118,14 @@ func (u *ui) loadSettingsDraft() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (u *ui) saveSecuritySettingsAction() error {
|
func (u *ui) saveSecuritySettingsAction() error {
|
||||||
|
if err := u.applySecuritySettingsLive(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
u.securityDialogOpen = false
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u *ui) applySecuritySettingsLive() error {
|
||||||
settings := vault.SecuritySettings{
|
settings := vault.SecuritySettings{
|
||||||
Cipher: strings.TrimSpace(u.securityCipher.Text()),
|
Cipher: strings.TrimSpace(u.securityCipher.Text()),
|
||||||
KDF: strings.TrimSpace(u.securityKDF.Text()),
|
KDF: strings.TrimSpace(u.securityKDF.Text()),
|
||||||
@@ -135,7 +143,6 @@ func (u *ui) saveSecuritySettingsAction() error {
|
|||||||
u.applyAccessibilityPreferences(u.settingsDraft.Accessibility)
|
u.applyAccessibilityPreferences(u.settingsDraft.Accessibility)
|
||||||
u.saveSettings()
|
u.saveSettings()
|
||||||
u.saveUIPreferences()
|
u.saveUIPreferences()
|
||||||
u.securityDialogOpen = false
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user