Fixed an edge case durring disonnect when remember transmission
This commit is contained in:
@@ -209,7 +209,7 @@ func (b *Barnard) audioSettingsItems() []uiterm.TreeItem {
|
|||||||
}},
|
}},
|
||||||
adminItem{label: "Remember transmission state: " + rememberTransmissionState + "; Enter toggles", applicationAction: true, action: func() {
|
adminItem{label: "Remember transmission state: " + rememberTransmissionState + "; Enter toggles", applicationAction: true, action: func() {
|
||||||
enabled := !b.UserConfig.GetRememberTransmissionState()
|
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())
|
b.AddOutputLine("Settings: could not save remember transmission state: " + err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -444,14 +444,14 @@ func (c *Config) GetRememberTransmissionState() bool {
|
|||||||
return *c.config.RememberTransmissionState
|
return *c.config.RememberTransmissionState
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Config) SetRememberTransmissionState(enabled bool) error {
|
func (c *Config) SetRememberTransmissionState(enabled, transmissionActive bool) error {
|
||||||
c.mu.Lock()
|
c.mu.Lock()
|
||||||
defer c.mu.Unlock()
|
defer c.mu.Unlock()
|
||||||
c.config.RememberTransmissionState = &enabled
|
c.config.RememberTransmissionState = &enabled
|
||||||
if !enabled {
|
if !enabled {
|
||||||
active := false
|
transmissionActive = false
|
||||||
c.config.TransmissionActive = &active
|
|
||||||
}
|
}
|
||||||
|
c.config.TransmissionActive = &transmissionActive
|
||||||
return c.saveConfigLocked()
|
return c.saveConfigLocked()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -190,7 +190,7 @@ func TestRememberTransmissionStateDefaultsOffAndPersists(t *testing.T) {
|
|||||||
t.Fatal("expected remembered transmission state to default off")
|
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)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
if err := cfg.SetTransmissionActive(true); err != nil {
|
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")
|
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)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
reloaded = NewConfig(&configPath)
|
reloaded = NewConfig(&configPath)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
func TestDisconnectClearPreservesRememberedTransmissionState(t *testing.T) {
|
func TestDisconnectClearPreservesRememberedTransmissionState(t *testing.T) {
|
||||||
configPath := filepath.Join(t.TempDir(), "barnard.toml")
|
configPath := filepath.Join(t.TempDir(), "barnard.toml")
|
||||||
userConfig := config.NewConfig(&configPath)
|
userConfig := config.NewConfig(&configPath)
|
||||||
if err := userConfig.SetRememberTransmissionState(true); err != nil {
|
if err := userConfig.SetRememberTransmissionState(true, false); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
b := &Barnard{UserConfig: userConfig}
|
b := &Barnard{UserConfig: userConfig}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ func TestAudioSettingsExposeCurrentValuesAndPersistMicChanges(t *testing.T) {
|
|||||||
|
|
||||||
items[0].(adminItem).action()
|
items[0].(adminItem).action()
|
||||||
items[1].(adminItem).action()
|
items[1].(adminItem).action()
|
||||||
|
b.setTransmitting(true)
|
||||||
items[2].(adminItem).action()
|
items[2].(adminItem).action()
|
||||||
reloaded := config.NewConfig(&configPath)
|
reloaded := config.NewConfig(&configPath)
|
||||||
if reloaded.GetAGCEnabled() {
|
if reloaded.GetAGCEnabled() {
|
||||||
@@ -51,6 +52,9 @@ func TestAudioSettingsExposeCurrentValuesAndPersistMicChanges(t *testing.T) {
|
|||||||
if !reloaded.GetRememberTransmissionState() {
|
if !reloaded.GetRememberTransmissionState() {
|
||||||
t.Fatal("settings action did not persist enabled transmission-state remembering")
|
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 {
|
if got := b.adjustMicVolume(-0.1); got < 0.899 || got > 0.901 {
|
||||||
t.Fatalf("adjusted microphone level = %v, want 0.9", got)
|
t.Fatalf("adjusted microphone level = %v, want 0.9", got)
|
||||||
|
|||||||
Reference in New Issue
Block a user