|
@ -20,6 +20,7 @@ class LevelBloc extends Bloc<LevelEvent, LevelState> { |
|
|
this._getLeveslUseCase, |
|
|
this._getLeveslUseCase, |
|
|
) : super(const LevelState()) { |
|
|
) : super(const LevelState()) { |
|
|
on<GetLevelListEvent>(_getLevelListEvent); |
|
|
on<GetLevelListEvent>(_getLevelListEvent); |
|
|
|
|
|
on<SetCurrentLevelEvent>(_setCurrentLevelEvent); |
|
|
on<StartScrollEvent>(_startScrollEvent); |
|
|
on<StartScrollEvent>(_startScrollEvent); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -81,10 +82,9 @@ class LevelBloc extends Bloc<LevelEvent, LevelState> { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
LevelType getLevelType(int index) { |
|
|
LevelType getLevelType(int index) { |
|
|
final int currentLevel = int.parse(LocalStorage |
|
|
|
|
|
.readData(key: MyConstants.currentLevel) |
|
|
|
|
|
.isEmpty ? '1' : LocalStorage |
|
|
|
|
|
.readData(key: MyConstants.currentLevel)); |
|
|
|
|
|
|
|
|
final int currentLevel = int.parse( |
|
|
|
|
|
LocalStorage.readData(key: MyConstants.currentLevel), |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
if (index < currentLevel) { |
|
|
if (index < currentLevel) { |
|
|
return LevelType.finished; |
|
|
return LevelType.finished; |
|
@ -98,6 +98,9 @@ class LevelBloc extends Bloc<LevelEvent, LevelState> { |
|
|
/// ------------Api Calls------------ |
|
|
/// ------------Api Calls------------ |
|
|
FutureOr<void> _getLevelListEvent(GetLevelListEvent event, |
|
|
FutureOr<void> _getLevelListEvent(GetLevelListEvent event, |
|
|
Emitter<LevelState> emit) async { |
|
|
Emitter<LevelState> emit) async { |
|
|
|
|
|
final int currentLevel = int.parse( |
|
|
|
|
|
LocalStorage.readData(key: MyConstants.currentLevel), |
|
|
|
|
|
); |
|
|
await _getLeveslUseCase(LevelParams()).then((value) { |
|
|
await _getLeveslUseCase(LevelParams()).then((value) { |
|
|
value.fold( |
|
|
value.fold( |
|
|
(data) async { |
|
|
(data) async { |
|
@ -107,7 +110,7 @@ class LevelBloc extends Bloc<LevelEvent, LevelState> { |
|
|
} |
|
|
} |
|
|
emit(state.copyWith( |
|
|
emit(state.copyWith( |
|
|
getLevelStatus: const BaseComplete(''), |
|
|
getLevelStatus: const BaseComplete(''), |
|
|
chooseLevel: data.first, |
|
|
|
|
|
|
|
|
chooseLevel: data.singleWhere((e) => e.order == currentLevel), |
|
|
)); |
|
|
)); |
|
|
add(StartScrollEvent()); |
|
|
add(StartScrollEvent()); |
|
|
}, |
|
|
}, |
|
@ -120,10 +123,9 @@ class LevelBloc extends Bloc<LevelEvent, LevelState> { |
|
|
StartScrollEvent event, |
|
|
StartScrollEvent event, |
|
|
Emitter<LevelState> emit, |
|
|
Emitter<LevelState> emit, |
|
|
) async { |
|
|
) async { |
|
|
final int currentLevel = int.parse(LocalStorage |
|
|
|
|
|
.readData(key: MyConstants.currentLevel) |
|
|
|
|
|
.isEmpty ? '1' : LocalStorage |
|
|
|
|
|
.readData(key: MyConstants.currentLevel)); |
|
|
|
|
|
|
|
|
final int currentLevel = int.parse( |
|
|
|
|
|
LocalStorage.readData(key: MyConstants.currentLevel), |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
await Future.delayed(const Duration(seconds: 1)); |
|
|
await Future.delayed(const Duration(seconds: 1)); |
|
|
if (scrollController.hasClients) { |
|
|
if (scrollController.hasClients) { |
|
@ -142,4 +144,14 @@ class LevelBloc extends Bloc<LevelEvent, LevelState> { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
FutureOr<void> _setCurrentLevelEvent(SetCurrentLevelEvent event, |
|
|
|
|
|
Emitter<LevelState> emit) async { |
|
|
|
|
|
final String currentLevel = LocalStorage.readData( |
|
|
|
|
|
key: MyConstants.currentLevel); |
|
|
|
|
|
if (currentLevel.isEmpty) { |
|
|
|
|
|
await LocalStorage.saveData(key: MyConstants.currentLevel, value: '1'); |
|
|
|
|
|
} |
|
|
|
|
|
add(GetLevelListEvent()); |
|
|
|
|
|
} |
|
|
} |
|
|
} |