import 'package:PiliPlus/grpc/bilibili/app/im/v1.pb.dart' show GetImSettingsReply, IMSettingType, Setting; import 'package:PiliPlus/grpc/im.dart'; import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/pages/common/common_data_controller.dart'; import 'package:get/get.dart'; import 'package:protobuf/protobuf.dart' show PbMap; class WhisperSettingsController extends CommonDataController> { WhisperSettingsController({ required this.imSettingType, }); final IMSettingType imSettingType; final RxString title = ''.obs; @override void onInit() { super.onInit(); queryData(); } @override bool customHandleResponse( bool isRefresh, Success response, ) { title.value = response.response.pageTitle; loadingState.value = Success(response.response.settings); return true; } @override Future> customGetData() => ImGrpc.getImSettings(type: imSettingType); Future onSet(PbMap settings) async { final res = await ImGrpc.setImSettings(settings: settings); if (!res.isSuccess) { res.toast(); } return res.isSuccess; } }