Fixed an edge case durring disonnect when remember transmission

This commit is contained in:
Storm Dragon
2026-09-06 18:41:28 -04:00
parent e8df68c749
commit ca9c25f2d8
5 changed files with 11 additions and 7 deletions
+1 -1
View File
@@ -209,7 +209,7 @@ func (b *Barnard) audioSettingsItems() []uiterm.TreeItem {
}},
adminItem{label: "Remember transmission state: " + rememberTransmissionState + "; Enter toggles", applicationAction: true, action: func() {
enabled := !b.UserConfig.GetRememberTransmissionState()
if err := b.UserConfig.SetRememberTransmissionState(enabled); err != nil {
if err := b.UserConfig.SetRememberTransmissionState(enabled, b.isTransmitting()); err != nil {
b.AddOutputLine("Settings: could not save remember transmission state: " + err.Error())
return
}
+3 -3
View File
@@ -444,14 +444,14 @@ func (c *Config) GetRememberTransmissionState() bool {
return *c.config.RememberTransmissionState
}
func (c *Config) SetRememberTransmissionState(enabled bool) error {
func (c *Config) SetRememberTransmissionState(enabled, transmissionActive bool) error {
c.mu.Lock()
defer c.mu.Unlock()
c.config.RememberTransmissionState = &enabled
if !enabled {
active := false
c.config.TransmissionActive = &active
transmissionActive = false
}
c.config.TransmissionActive = &transmissionActive
return c.saveConfigLocked()
}
+2 -2
View File
@@ -190,7 +190,7 @@ func TestRememberTransmissionStateDefaultsOffAndPersists(t *testing.T) {
t.Fatal("expected remembered transmission state to default off")
}
if err := cfg.SetRememberTransmissionState(true); err != nil {
if err := cfg.SetRememberTransmissionState(true, false); err != nil {
t.Fatal(err)
}
if err := cfg.SetTransmissionActive(true); err != nil {
@@ -209,7 +209,7 @@ func TestRememberTransmissionStateDefaultsOffAndPersists(t *testing.T) {
t.Fatal("expected enabled transmission-state remembering and active state to persist")
}
if err := reloaded.SetRememberTransmissionState(false); err != nil {
if err := reloaded.SetRememberTransmissionState(false, true); err != nil {
t.Fatal(err)
}
reloaded = NewConfig(&configPath)
+1 -1
View File
@@ -10,7 +10,7 @@ import (
func TestDisconnectClearPreservesRememberedTransmissionState(t *testing.T) {
configPath := filepath.Join(t.TempDir(), "barnard.toml")
userConfig := config.NewConfig(&configPath)
if err := userConfig.SetRememberTransmissionState(true); err != nil {
if err := userConfig.SetRememberTransmissionState(true, false); err != nil {
t.Fatal(err)
}
b := &Barnard{UserConfig: userConfig}
+4
View File
@@ -40,6 +40,7 @@ func TestAudioSettingsExposeCurrentValuesAndPersistMicChanges(t *testing.T) {
items[0].(adminItem).action()
items[1].(adminItem).action()
b.setTransmitting(true)
items[2].(adminItem).action()
reloaded := config.NewConfig(&configPath)
if reloaded.GetAGCEnabled() {
@@ -51,6 +52,9 @@ func TestAudioSettingsExposeCurrentValuesAndPersistMicChanges(t *testing.T) {
if !reloaded.GetRememberTransmissionState() {
t.Fatal("settings action did not persist enabled transmission-state remembering")
}
if !reloaded.GetTransmissionActive() {
t.Fatal("settings action did not capture the active transmission state")
}
if got := b.adjustMicVolume(-0.1); got < 0.899 || got > 0.901 {
t.Fatalf("adjusted microphone level = %v, want 0.9", got)