bloc.dart
1.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import 'package:audioplayers/audioplayers.dart';
import 'package:bloc/bloc.dart';
import 'package:wow_english/common/core/user_util.dart';
import 'package:wow_english/common/extension/string_extension.dart';
import 'package:wow_english/utils/audio_player_util.dart';
import '../../common/core/app_config_helper.dart';
import '../../common/request/dao/system_dao.dart';
import '../../models/app_version_entity.dart';
import '../../utils/log_util.dart';
import 'event.dart';
import 'state.dart';
class HomeBloc extends Bloc<HomeEvent, HomeState> {
HomeBloc() : super(HomeState().init()) {
on<InitEvent>(_init);
on<ExchangeSuccessEvent>(_exchangeSuccess);
}
bool exchangeResult = false;
void _init(InitEvent event, Emitter<HomeState> emit) async {
if (UserUtil.isLogined()) {
AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.welcomeToWow);
}
await _checkUpdate(emit);
}
void _exchangeSuccess(
ExchangeSuccessEvent event, Emitter<HomeState> emit) async {
if (exchangeResult) {
emit(HomeState());
}
}
Future<void> _checkUpdate(Emitter<HomeState> emit) async {
if (AppConfigHelper.checkedUpdate) {
return;
}
int localVersion = int.parse(await AppConfigHelper.getAppVersion());
AppVersionEntity? appVersionEntity = await SystemDao.getVersionInfo();
AppConfigHelper.checkedUpdate = true;
if (appVersionEntity == null) {
return;
}
Log.d(
"HomeBloc _checkUpdate appVersionEntity: $appVersionEntity localVersion=$localVersion");
if (localVersion < int.parse(appVersionEntity.version ?? '0')) {
emit(UpdateDialogState(
appVersionEntity.volType == UpdateStrategy.FORCE.name,
appVersionEntity));
}
}
}