diff --git a/lib/modules/voice_replication/controllers/voice_replication_controller.dart b/lib/modules/voice_replication/controllers/voice_replication_controller.dart index 7a44eec0e..021ba01f0 100644 --- a/lib/modules/voice_replication/controllers/voice_replication_controller.dart +++ b/lib/modules/voice_replication/controllers/voice_replication_controller.dart @@ -1,5 +1,36 @@ import 'package:get/get.dart'; +import 'package:get_storage/get_storage.dart'; +import 'package:record/record.dart'; class VoiceReplicationController extends GetxController { + final GetStorage _storage = GetStorage(); + final _record = AudioRecorder(); + + RxBool isReplicating = false.obs; + RxString speakerProfileId = ''.obs; + + @override + void onInit() { + super.onInit(); + _getDefaultData(); + } + + @override + void onClose() { + _record.dispose(); + super.onClose(); + } + + void _getDefaultData() { + isReplicating.value = _storage.read('open_voice_replication') ?? false; + speakerProfileId.value = _storage.read('speakerProfileId') ?? ''; + } + + void switchChange(bool value) { + isReplicating.value = value; + if (speakerProfileId.value.isNotEmpty) { + _storage.write('open_voice_replication', value); + } + } } diff --git a/lib/modules/voice_replication/views/voice_replication_view.dart b/lib/modules/voice_replication/views/voice_replication_view.dart index db12c694b..f861c73be 100644 --- a/lib/modules/voice_replication/views/voice_replication_view.dart +++ b/lib/modules/voice_replication/views/voice_replication_view.dart @@ -129,10 +129,8 @@ class VoiceReplicationView extends GetView { ), Obx( () => Switch( - value: controller.speakerProfileId.value.isNotEmpty, - onChanged: (bool value) { - controller.speakerProfileId.value = value ? '0' : ''; - }, + value: controller.isReplicating.value, + onChanged: controller.switchChange, ), ), ],