Skip to content

Commit

Permalink
Splitted some widgets into small chunks
Browse files Browse the repository at this point in the history
Card images are now wrapped into a fade image widget
  • Loading branch information
Wolfteam committed Dec 23, 2020
1 parent 7be9584 commit 493cfed
Show file tree
Hide file tree
Showing 31 changed files with 498 additions and 318 deletions.
6 changes: 5 additions & 1 deletion lib/bloc/characters/characters_bloc.dart
Expand Up @@ -10,14 +10,17 @@ import '../../common/enums/sort_direction_type.dart';
import '../../common/enums/weapon_type.dart';
import '../../models/models.dart';
import '../../services/genshing_service.dart';
import '../../services/settings_service.dart';

part 'characters_bloc.freezed.dart';
part 'characters_event.dart';
part 'characters_state.dart';

class CharactersBloc extends Bloc<CharactersEvent, CharactersState> {
final GenshinService _genshinService;
CharactersBloc(this._genshinService) : super(const CharactersState.loading());
final SettingsService _settingsService;

CharactersBloc(this._genshinService, this._settingsService) : super(const CharactersState.loading());

_LoadedState get currentState => state as _LoadedState;

Expand Down Expand Up @@ -113,6 +116,7 @@ class CharactersBloc extends Bloc<CharactersEvent, CharactersState> {
tempCharacterFilterType: characterFilterType,
sortDirectionType: sortDirectionType,
tempSortDirectionType: sortDirectionType,
showCharacterDetails: _settingsService.showCharacterDetails,
);
}

Expand Down
1 change: 1 addition & 0 deletions lib/bloc/characters/characters_state.dart
Expand Up @@ -6,6 +6,7 @@ abstract class CharactersState with _$CharactersState {
const factory CharactersState.loaded({
@required List<CharacterCardModel> characters,
String search,
@required bool showCharacterDetails,
@required List<WeaponType> weaponTypes,
@required List<WeaponType> tempWeaponTypes,
@required List<ElementType> elementTypes,
Expand Down
6 changes: 5 additions & 1 deletion lib/bloc/weapons/weapons_bloc.dart
Expand Up @@ -8,14 +8,17 @@ import '../../common/enums/weapon_filter_type.dart';
import '../../common/enums/weapon_type.dart';
import '../../models/models.dart';
import '../../services/genshing_service.dart';
import '../../services/settings_service.dart';

part 'weapons_bloc.freezed.dart';
part 'weapons_event.dart';
part 'weapons_state.dart';

class WeaponsBloc extends Bloc<WeaponsEvent, WeaponsState> {
final GenshinService _genshinService;
WeaponsBloc(this._genshinService) : super(const WeaponsState.loading());
final SettingsService _settingsService;

WeaponsBloc(this._genshinService, this._settingsService) : super(const WeaponsState.loading());

_LoadedState get currentState => state as _LoadedState;

Expand Down Expand Up @@ -86,6 +89,7 @@ class WeaponsBloc extends Bloc<WeaponsEvent, WeaponsState> {
tempWeaponFilterType: weaponFilterType,
sortDirectionType: sortDirectionType,
tempSortDirectionType: sortDirectionType,
showWeaponDetails: _settingsService.showWeaponDetails,
);
}

Expand Down
1 change: 1 addition & 0 deletions lib/bloc/weapons/weapons_state.dart
Expand Up @@ -6,6 +6,7 @@ abstract class WeaponsState with _$WeaponsState {
const factory WeaponsState.loaded({
@required List<WeaponCardModel> weapons,
String search,
@required bool showWeaponDetails,
@required List<WeaponType> weaponTypes,
@required List<WeaponType> tempWeaponTypes,
@required int rarity,
Expand Down
4 changes: 2 additions & 2 deletions lib/common/styles.dart
Expand Up @@ -3,8 +3,8 @@ import 'package:flutter/material.dart';
class Styles {
static const String appIconPath = 'assets/icon/icon.png';
static final RoundedRectangleBorder cardShape = RoundedRectangleBorder(borderRadius: BorderRadius.circular(10));
static final RoundedRectangleBorder mainCardShape = RoundedRectangleBorder(
borderRadius: const BorderRadius.only(
static const RoundedRectangleBorder mainCardShape = RoundedRectangleBorder(
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(35),
bottomRight: Radius.circular(35),
topLeft: Radius.circular(10),
Expand Down
6 changes: 4 additions & 2 deletions lib/main.dart
Expand Up @@ -45,7 +45,8 @@ class MyApp extends StatelessWidget {
BlocProvider(
create: (ctx) {
final genshinService = getIt<GenshinService>();
return CharactersBloc(genshinService);
final settingsService = getIt<SettingsService>();
return CharactersBloc(genshinService, settingsService);
},
),
BlocProvider(
Expand All @@ -57,7 +58,8 @@ class MyApp extends StatelessWidget {
BlocProvider(
create: (ctx) {
final genshinService = getIt<GenshinService>();
return WeaponsBloc(genshinService);
final settingsService = getIt<SettingsService>();
return WeaponsBloc(genshinService, settingsService);
},
),
BlocProvider(
Expand Down
30 changes: 30 additions & 0 deletions lib/services/settings_service.dart
Expand Up @@ -21,6 +21,12 @@ abstract class SettingsService {
bool get isFirstInstall;
set isFirstInstall(bool itIs);

bool get showCharacterDetails;
set showCharacterDetails(bool show);

bool get showWeaponDetails;
set showWeaponDetails(bool show);

Future<void> init();
}

Expand All @@ -29,6 +35,8 @@ class SettingsServiceImpl extends SettingsService {
final _accentColorKey = 'AccentColor';
final _appLanguageKey = 'AppLanguage';
final _firstInstallKey = 'FirstInstall';
final _showCharacterDetailsKey = 'ShowCharacterDetailsKey';
final _showWeaponDetailsKey = 'ShowWeaponDetailsKey';

bool _initialized = false;

Expand All @@ -55,12 +63,24 @@ class SettingsServiceImpl extends SettingsService {
@override
set isFirstInstall(bool itIs) => _prefs.setBool(_firstInstallKey, itIs);

@override
bool get showCharacterDetails => _prefs.getBool(_showCharacterDetailsKey);
@override
set showCharacterDetails(bool show) => _prefs.setBool(_showCharacterDetailsKey, show);

@override
bool get showWeaponDetails => _prefs.getBool(_showWeaponDetailsKey);
@override
set showWeaponDetails(bool show) => _prefs.setBool(_showWeaponDetailsKey, show);

@override
AppSettings get appSettings => AppSettings(
appTheme: appTheme,
useDarkAmoled: false,
accentColor: accentColor,
appLanguage: language,
showCharacterDetails: showCharacterDetails,
showWeaponDetails: showWeaponDetails,
);

SettingsServiceImpl(this._logger);
Expand Down Expand Up @@ -96,6 +116,16 @@ class SettingsServiceImpl extends SettingsService {
language = AppLanguageType.english;
}

if (_prefs.get(_showCharacterDetailsKey) == null) {
_logger.info(runtimeType, 'Character details are shown by default');
showCharacterDetails = true;
}

if (_prefs.get(_showWeaponDetailsKey) == null) {
_logger.info(runtimeType, 'Weapon details are shown by default');
showWeaponDetails = true;
}

_initialized = true;
_logger.info(runtimeType, 'Settings were initialized successfully');
}
Expand Down

0 comments on commit 493cfed

Please sign in to comment.