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:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import 'package:protobuf/protobuf.dart' show PbMap; class WhisperSettingsController extends CommonDataController> { WhisperSettingsController({ required this.imSettingType, }); final IMSettingType imSettingType; RxString title = ''.obs; @override void onInit() { super.onInit(); queryData(); } @override bool customHandleResponse( bool isRefresh, Success response) { title.value = response.response.pageTitle; loadingState.value = LoadingState.success(response.response.settings); return true; } @override Future> customGetData() => ImGrpc.getImSettings(type: imSettingType); Future onSet(PbMap settings) async { var res = await ImGrpc.setImSettings(settings: settings); if (!res['status']) { SmartDialog.showToast('err: ${res['msg']}'); } return res['status']; } }