chatapp3-flutter/lib/services/room/rc_room_manager.dart
2026-04-09 21:32:23 +08:00

53 lines
2.0 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:yumi/app_localizations.dart';
import 'package:yumi/ui_kit/components/sc_tts.dart';
import 'package:yumi/shared/tools/sc_loading_manager.dart';
import 'package:yumi/shared/data_sources/sources/repositories/sc_room_repository_imp.dart';
import 'package:yumi/shared/data_sources/sources/repositories/sc_user_repository_impl.dart';
import 'package:yumi/shared/business_logic/models/res/sc_edit_room_info_res.dart';
import 'package:yumi/shared/business_logic/models/res/my_room_res.dart';
import 'package:yumi/shared/business_logic/models/res/sc_room_contribute_level_res.dart';
class SocialChatRoomManager extends ChangeNotifier {
MyRoomRes? myRoom;
SCRoomContributeLevelRes? roomContributeLevelRes;
void fetchMyRoomData() async {
myRoom = null;
myRoom = await SCAccountRepository().myProfile();
notifyListeners();
}
void updateMyRoomInfo(SCEditRoomInfoRes roomInfo) {
if (myRoom != null && myRoom!.id == roomInfo.id) {
myRoom?.setRoomName = roomInfo.roomName ?? "";
myRoom?.setRoomDesc = roomInfo.roomDesc ?? "";
notifyListeners();
}
}
void createNewRoom(BuildContext context, {String? customName}) async {
SCLoadingManager.show(context: context);
// 差异化:添加自定义名称参数(暂未使用,为未来扩展预留)
if (customName != null) {
// TODO: 实现自定义房间名称
print('创建房间使用自定义名称: $customName');
}
await SCAccountRepository().createRoom();
myRoom = await SCAccountRepository().myProfile();
SCTts.show(SCAppLocalizations.of(context)!.createRoomSuccsess);
notifyListeners();
SCLoadingManager.hide();
}
void fetchContributionLevelData(String roomId, {bool forceRefresh = false}) {
if (forceRefresh) {
roomContributeLevelRes = null;
}
SCChatRoomRepository().roomContributionActivity(roomId).then((value){
roomContributeLevelRes = value;
notifyListeners();
});
}
}