|
|
|
@ -3,6 +3,7 @@ import 'dart:async'; |
|
|
|
import 'package:bloc/bloc.dart'; |
|
|
|
import 'package:flutter/cupertino.dart'; |
|
|
|
import 'package:go_router/go_router.dart'; |
|
|
|
import 'package:hadi_hoda_flutter/common_ui/resources/my_audios.dart'; |
|
|
|
import 'package:hadi_hoda_flutter/core/constants/my_constants.dart'; |
|
|
|
import 'package:hadi_hoda_flutter/core/routers/my_routes.dart'; |
|
|
|
import 'package:hadi_hoda_flutter/core/services/audio_service.dart'; |
|
|
|
@ -16,9 +17,11 @@ import 'package:hive/hive.dart'; |
|
|
|
class HomeBloc extends Bloc<HomeEvent, HomeState> { |
|
|
|
/// ------------constructor------------ |
|
|
|
HomeBloc( |
|
|
|
this._audioService, |
|
|
|
this._mainAudioService, |
|
|
|
this._effectAudioService, |
|
|
|
) : super(const HomeState()) { |
|
|
|
volumeStream = _audioService.volumeStream(); |
|
|
|
volumeStream = _mainAudioService.volumeStream(); |
|
|
|
playMusic(); |
|
|
|
on<GetHomeEvent>(_getHomeEvent); |
|
|
|
} |
|
|
|
|
|
|
|
@ -28,10 +31,12 @@ class HomeBloc extends Bloc<HomeEvent, HomeState> { |
|
|
|
late final Stream<double> volumeStream; |
|
|
|
|
|
|
|
/// ------------Controllers------------ |
|
|
|
final AudioService _audioService; |
|
|
|
final AudioService _mainAudioService; |
|
|
|
final AudioService _effectAudioService; |
|
|
|
|
|
|
|
/// ------------Functions------------ |
|
|
|
void goToLevelPage(BuildContext context){ |
|
|
|
playEffect(); |
|
|
|
final String? selectedLanguage = LocalStorage.readData(key: MyConstants.selectLanguage); |
|
|
|
final Box<TotalDataEntity> dataBox = Hive.box(MyConstants.levelBox); |
|
|
|
final TotalDataEntity findData = dataBox.values.singleWhere( |
|
|
|
@ -46,16 +51,36 @@ class HomeBloc extends Bloc<HomeEvent, HomeState> { |
|
|
|
} |
|
|
|
|
|
|
|
void goToLanguagePage(BuildContext context){ |
|
|
|
playEffect(); |
|
|
|
context.pushNamed(Routes.languagePage); |
|
|
|
} |
|
|
|
|
|
|
|
void showAboutUs(BuildContext context){ |
|
|
|
playEffect(); |
|
|
|
showAboutUsDialog(context: context); |
|
|
|
} |
|
|
|
|
|
|
|
Future<void> changeMute() async { |
|
|
|
await _audioService.changeMute(); |
|
|
|
playEffect(); |
|
|
|
await Future.wait([ |
|
|
|
_mainAudioService.changeMute(), |
|
|
|
_effectAudioService.changeMute(), |
|
|
|
]); |
|
|
|
} |
|
|
|
|
|
|
|
Future<void> playMusic() async { |
|
|
|
Future.wait([ |
|
|
|
_mainAudioService.setAudio(assetPath: MyAudios.homeMusic), |
|
|
|
_mainAudioService.setLoopMode(isLoop: true), |
|
|
|
]); |
|
|
|
await _mainAudioService.play(); |
|
|
|
} |
|
|
|
|
|
|
|
Future<void> playEffect() async{ |
|
|
|
await _effectAudioService.setAudio(assetPath: MyAudios.clickButton); |
|
|
|
await _effectAudioService.play(); |
|
|
|
} |
|
|
|
|
|
|
|
/// ------------Api Calls------------ |
|
|
|
FutureOr<void> _getHomeEvent(event, emit) async {} |
|
|
|
} |