refactor: voice_*-Prefs hinter VoicePrefs-Fassade in settings_prefs (M2 storage-Leitplanke, gleiche Keys/Semantik)

This commit is contained in:
Bernd Steckmeister
2026-07-06 17:09:41 +02:00
parent b2335da2fb
commit d22f9c2961
6 changed files with 90 additions and 38 deletions
@@ -3,9 +3,9 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:matrix/matrix.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:webrtc_interface/webrtc_interface.dart';
import 'package:pyramid/core/ice_servers.dart';
import 'package:pyramid/core/settings_prefs.dart';
import 'package:pyramid/features/call_signaling/call_signaling_service.dart';
import 'package:pyramid/widgets/screen_share_picker.dart';
@@ -272,8 +272,7 @@ class PyramidVoipManager extends CallSignalingService
var v = value;
if (v == null) {
try {
final prefs = await SharedPreferences.getInstance();
v = prefs.getDouble('voice_output_volume') ?? 1.0;
v = await VoicePrefs.loadOutputVolume();
} catch (_) {
v = 1.0;
}
@@ -467,10 +466,10 @@ class MediaDevicesWrapper extends MediaDevices {
// In den Einstellungen gewählte Geräte (voice_*_device Prefs) anwenden —
// nur wenn kein Screenshare-Source gesetzt ist (sonst nicht anfassen).
try {
final prefs = await SharedPreferences.getInstance();
final mic = prefs.getString('voice_mic_device');
final cam = prefs.getString('voice_camera_device');
final speaker = prefs.getString('voice_speaker_device');
final devicePrefs = await VoicePrefs.loadDevices();
final mic = devicePrefs.mic;
final cam = devicePrefs.camera;
final speaker = devicePrefs.speaker;
if (mic != null &&
improvedConstraints['audio'] != null &&
improvedConstraints['audio'] != false) {
@@ -6,8 +6,8 @@ import 'package:livekit_client/livekit_client.dart';
import 'package:matrix/matrix.dart' hide Room;
import 'package:pyramid/core/ice_servers.dart';
import 'package:pyramid/core/livekit_token.dart';
import 'package:pyramid/core/settings_prefs.dart';
import 'package:pyramid/features/voice_channel/voice_channel_service.dart';
import 'package:shared_preferences/shared_preferences.dart';
const _kVoicePresenceType = 'io.pyramid.voice.presence';
@@ -260,11 +260,11 @@ class LiveKitCallManager extends VoiceChannelService {
String? prefMic, prefSpeaker, prefCam;
var deviceIds = <String>{};
try {
final prefs = await SharedPreferences.getInstance();
_outputVolume = prefs.getDouble('voice_output_volume') ?? 1.0;
prefMic = prefs.getString('voice_mic_device');
prefSpeaker = prefs.getString('voice_speaker_device');
prefCam = prefs.getString('voice_camera_device');
_outputVolume = await VoicePrefs.loadOutputVolume();
final devicePrefs = await VoicePrefs.loadDevices();
prefMic = devicePrefs.mic;
prefSpeaker = devicePrefs.speaker;
prefCam = devicePrefs.camera;
final devices = await rtc.navigator.mediaDevices.enumerateDevices();
deviceIds = devices.map((d) => d.deviceId).toSet();
} catch (e) {