feat(flutter): persist voice settings and per-user volume (TODO-039,040)
Add SharedPreferences persistence for transmit mode, release tail, input/output device. Per-user volume/mute persisted across sessions.
This commit is contained in:
@@ -67,4 +67,44 @@ void main() {
|
||||
|
||||
expect(settings.themeMode, UiThemeMode.system);
|
||||
});
|
||||
|
||||
test('loads null voice settings when unset', () async {
|
||||
final settings = await service.loadSettings();
|
||||
|
||||
expect(settings.transmitModeIndex, isNull);
|
||||
expect(settings.releaseTailMs, isNull);
|
||||
expect(settings.inputDeviceId, isNull);
|
||||
expect(settings.outputDeviceId, isNull);
|
||||
});
|
||||
|
||||
test('saves and loads transmit mode index', () async {
|
||||
await service.saveTransmitModeIndex(1);
|
||||
final settings = await service.loadSettings();
|
||||
|
||||
expect(settings.transmitModeIndex, 1);
|
||||
});
|
||||
|
||||
test('saves and loads release tail ms', () async {
|
||||
await service.saveReleaseTailMs(300);
|
||||
final settings = await service.loadSettings();
|
||||
|
||||
expect(settings.releaseTailMs, 300);
|
||||
});
|
||||
|
||||
test('saves and loads audio device ids', () async {
|
||||
await service.saveInputDeviceId('input-123');
|
||||
await service.saveOutputDeviceId('output-456');
|
||||
final settings = await service.loadSettings();
|
||||
|
||||
expect(settings.inputDeviceId, 'input-123');
|
||||
expect(settings.outputDeviceId, 'output-456');
|
||||
});
|
||||
|
||||
test('removes audio device id when set to null', () async {
|
||||
await service.saveInputDeviceId('input-123');
|
||||
await service.saveInputDeviceId(null);
|
||||
final settings = await service.loadSettings();
|
||||
|
||||
expect(settings.inputDeviceId, isNull);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user