Blame view

lib/pages/games/bloc.dart 1.61 KB
a4c3106a   吴启风   feat:游戏列表页
1
2
3
  import 'package:bloc/bloc.dart';
  import 'package:flutter/cupertino.dart';
  import 'package:flutter/services.dart';
2879454a   吴启风   feat:调通支付宝支付&游戏列表页
4
  import 'package:wow_english/common/extension/string_extension.dart';
025d8543   biao   首页gametime播放修改
5
  import 'package:wow_english/utils/audio_player_util.dart';
a4c3106a   吴启风   feat:游戏列表页
6
7
  
  import 'event.dart';
2879454a   吴启风   feat:调通支付宝支付&游戏列表页
8
  import 'game_entity.dart';
a4c3106a   吴启风   feat:游戏列表页
9
10
11
  import 'state.dart';
  
  class GamesBloc extends Bloc<GamesEvent, GamesState> {
a4c3106a   吴启风   feat:游戏列表页
12
13
    late MethodChannel _methodChannel;
  
2879454a   吴启风   feat:调通支付宝支付&游戏列表页
14
    //手动初始化4个GameEntity对象
b1869cf8   biao   背景音乐添加
15
    final List<GameEntity> _games = [
2879454a   吴启风   feat:调通支付宝支付&游戏列表页
16
17
      GameEntity()
        ..id = 1
e62c1a97   吴启风   feat:1、游戏列表页优化;2、...
18
19
        ..imageName = 'game_food_1'.assetPng
        ..name = 'Food',
2879454a   吴启风   feat:调通支付宝支付&游戏列表页
20
21
      GameEntity()
        ..id = 2
e62c1a97   吴启风   feat:1、游戏列表页优化;2、...
22
23
        ..imageName = 'game_halloween_2'.assetPng
        ..name = 'Halloween',
2879454a   吴启风   feat:调通支付宝支付&游戏列表页
24
25
      GameEntity()
        ..id = 3
e62c1a97   吴启风   feat:1、游戏列表页优化;2、...
26
27
        ..imageName = 'game_toy_3'.assetPng
        ..name = 'Toy',
2879454a   吴启风   feat:调通支付宝支付&游戏列表页
28
29
      GameEntity()
        ..id = 4
e62c1a97   吴启风   feat:1、游戏列表页优化;2、...
30
31
        ..imageName = 'game_animal_4'.assetPng
        ..name = 'Animal'
2879454a   吴启风   feat:调通支付宝支付&游戏列表页
32
33
    ];
  
b1869cf8   biao   背景音乐添加
34
    List<GameEntity> get listData => _games;
2879454a   吴启风   feat:调通支付宝支付&游戏列表页
35
  
a4c3106a   吴启风   feat:游戏列表页
36
37
38
39
40
41
    GamesBloc() : super(GamesState().init()) {
      on<InitEvent>(_init);
      on<GotoGamePageEvent>(_gotoGamePage);
    }
  
    void _init(InitEvent event, Emitter<GamesState> emit) async {
b1869cf8   biao   背景音乐添加
42
      AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.inMyTummy);
a4c3106a   吴启风   feat:游戏列表页
43
44
45
46
      emit(state.clone());
    }
  
    void _gotoGamePage(GotoGamePageEvent event, Emitter<GamesState> emit) async {
523864dd   吴启风   feat:音频播放单例增加声明周期感知
47
      await AudioPlayerUtil.getInstance().pause();
a4c3106a   吴启风   feat:游戏列表页
48
49
      try {
        _methodChannel = const MethodChannel('wow_english/game_method_channel');
b1869cf8   biao   背景音乐添加
50
51
        await _methodChannel
            .invokeMethod('openGamePage', {"gameId": event.gameId});
a4c3106a   吴启风   feat:游戏列表页
52
53
54
55
56
      } on PlatformException catch (e) {
        debugPrint("Failed to go to native page: '${e.message}'.");
      }
    }
  }