import 'dart:async'; import 'dart:convert' as convert; import 'package:zhiying_base_widget/pages/security_page/models/security_style_model.dart'; import 'package:zhiying_comm/util/base_bloc.dart'; import 'package:zhiying_comm/zhiying_comm.dart'; class SecurityPageBloc extends BlocBase { SecurityStyleModel _style; Map _securityStatus; StreamController _styleController = StreamController(); Stream get outData => _styleController.stream; @override void dispose() { _styleController.close(); _styleController = null; } void loadData(String skipIdentifier) async { Api api = Api( '/api/v1/mod/${skipIdentifier.toString()}', method: NetMethod.GET, ); _loadData(await api.onCache()); _securityStatus = Map.from(await _getStatus()); _loadData(await api.onRequest()); } // 获取授权状态等信息 Future _getStatus() { Api api = Api( '/api/v1/settings/account/security', method: NetMethod.GET, ); return api.onRequest(); } void _loadData(dynamic data) { Map json = Map.from(data); if (json == null || json.length == 0) { return; } String d = json['data']; Map da = Map.from(convert.jsonDecode(d)); _style = SecurityStyleModel.fromJson(da); if (_securityStatus != null) { _style.settings.forEach((item) { List keys = item.dataKeys; if (keys.length > 0) { item.desc = _securityStatus[keys.first] ?? ''; } }); } _styleController.add(_style); } }