import 'package:PiliPlus/http/live.dart'; import 'package:PiliPlus/http/loading_state.dart'; import 'package:PiliPlus/models/live/live_area_list/area_item.dart'; import 'package:PiliPlus/models/live/live_area_list/area_list.dart'; import 'package:PiliPlus/pages/common/common_list_controller.dart'; import 'package:PiliPlus/utils/storage.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; class LiveAreaController extends CommonListController?, AreaList> { final isLogin = Accounts.main.isLogin; late final isEditing = false.obs; @override void onInit() { super.onInit(); if (isLogin) { queryFavTags(); } queryData(); } @override Future onRefresh() { if (isLogin) { queryFavTags(); } return super.onRefresh(); } Rx>> favState = LoadingState>.loading().obs; @override Future?>> customGetData() => LiveHttp.liveAreaList(isLogin: isLogin); Future queryFavTags() async { favState.value = await LiveHttp.getLiveFavTag(isLogin: isLogin); } Future setFavTag() async { if (favState.value is Success) { final res = await LiveHttp.setLiveFavTag( ids: favState.value.data.map((e) => e.id).toList()); if (res['status']) { isEditing.value = !isEditing.value; SmartDialog.showToast('设置成功'); } else { SmartDialog.showToast(res['msg']); } } else { isEditing.value = !isEditing.value; } } void onEdit() { if (isEditing.value) { setFavTag(); } else { isEditing.value = !isEditing.value; } } }