fix:修复进入语音包设置时不进行更新选中的问题

This commit is contained in:
liyi 2025-07-28 15:07:03 +08:00
parent 02d395b7a4
commit b06e3b61c8

View File

@ -45,10 +45,9 @@ class SpeechLanguageSettingsLogic extends BaseGetXController {
} else if (reply is VoicePackageConfigureProcessReply) {
_handlerVoicePackageConfigureProcess(reply);
} else if (reply is VoicePackageConfigureConfirmationReply) {
_handlerVoicePackageConfigureConfirmation(reply);
handleVoiceConfigureThrottled(reply);
}
});
await initList();
}
@ -110,14 +109,22 @@ class SpeechLanguageSettingsLogic extends BaseGetXController {
.lockSetInfoData.value.lockSettingInfo?.currentVoiceTimbre?.lang;
final timbre = state
.lockSetInfoData.value.lockSettingInfo?.currentVoiceTimbre?.timbre;
state.languages.value.forEach((element) {
final timbres = element.timbres;
timbres.forEach((item) {
if (lang == element.lang && item.timbre == timbre) {
state.selectSoundTypeIndex.value = item.isFemale;
// for 访
for (int i = 0; i < state.languages.length; i++) {
final language = state.languages[i]; //
if (language.lang == lang) {
print('匹配到下标:$i,元素:$language');
final timbres = language.timbres;
for (int j = 0; j < timbres.length; j++) {
final item = timbres[j];
if (lang == language.lang && item.timbre == timbre) {
state.selectSoundTypeIndex.value = item.isFemale;
state.selectPassthroughListIndex.value = i;
break;
}
}
});
});
}
}
}
} catch (e) {
debugPrint('获取语音包出现错误:$e');
@ -358,7 +365,31 @@ class SpeechLanguageSettingsLogic extends BaseGetXController {
super.onClose();
}
void _handlerVoicePackageConfigureConfirmation(
bool _isThrottled = false;
void handleVoiceConfigureThrottled(
VoicePackageConfigureConfirmationReply reply,
) {
if (_isThrottled) return;
_isThrottled = true;
//
_executeLogic(reply);
// 1
Future.delayed(Duration(seconds: 1), () {
_isThrottled = false;
});
}
Future<void> _executeLogic(
VoicePackageConfigureConfirmationReply reply) async {
await _handlerVoicePackageConfigureConfirmation(reply);
dismissEasyLoading();
}
_handlerVoicePackageConfigureConfirmation(
VoicePackageConfigureConfirmationReply reply,
) async {
final int status = reply.data[2];