From 159693d6b8931b0b49248463deb8020c9f2031db Mon Sep 17 00:00:00 2001 From: Efrain Bastidas Date: Tue, 30 Aug 2022 22:47:59 -0500 Subject: [PATCH] [Domain] Updated the file services with new props --- lib/application/settings/settings_bloc.dart | 2 +- lib/domain/app_constants.dart | 1 + lib/domain/services/api_service.dart | 5 +++++ lib/domain/services/changelog_provider.dart | 2 -- lib/domain/services/data_service.dart | 4 ++++ lib/domain/services/device_info_service.dart | 2 ++ lib/domain/services/file/artifact_file_service.dart | 2 +- .../services/file/banner_history_file_service.dart | 2 +- lib/domain/services/file/base_file_service.dart | 12 +++++++++++- lib/domain/services/file/character_file_service.dart | 7 +++++++ lib/domain/services/file/element_file_service.dart | 2 +- lib/domain/services/file/furniture_file_service.dart | 2 +- lib/domain/services/file/gadget_file_service.dart | 2 +- lib/domain/services/file/material_file_service.dart | 4 +++- lib/domain/services/file/monster_file_service.dart | 2 +- .../services/file/translation_file_service.dart | 5 +++-- lib/domain/services/file/weapon_file_service.dart | 5 ++++- lib/domain/services/logging_service.dart | 2 ++ 18 files changed, 49 insertions(+), 14 deletions(-) create mode 100644 lib/domain/services/api_service.dart diff --git a/lib/application/settings/settings_bloc.dart b/lib/application/settings/settings_bloc.dart index ad5016a8e..13ccda6fe 100644 --- a/lib/application/settings/settings_bloc.dart +++ b/lib/application/settings/settings_bloc.dart @@ -43,7 +43,7 @@ class SettingsBloc extends Bloc { useDarkAmoledTheme: settings.useDarkAmoled, currentAccentColor: settings.accentColor, currentLanguage: settings.appLanguage, - appVersion: _deviceInfoService.version, + appVersion: _deviceInfoService.versionWithBuildNumber, showCharacterDetails: settings.showCharacterDetails, showWeaponDetails: settings.showWeaponDetails, serverResetTime: settings.serverResetTime, diff --git a/lib/domain/app_constants.dart b/lib/domain/app_constants.dart index 3cb67d9fc..c7b7ab9b8 100644 --- a/lib/domain/app_constants.dart +++ b/lib/domain/app_constants.dart @@ -3,6 +3,7 @@ import 'package:shiori/domain/enums/enums.dart'; import 'models/models.dart'; +const na = 'N/A'; const githubPage = 'https://github.com/Wolfteam/Shiori'; //This order matches the one in the game, and the numbers represent each image diff --git a/lib/domain/services/api_service.dart b/lib/domain/services/api_service.dart new file mode 100644 index 000000000..d426862c9 --- /dev/null +++ b/lib/domain/services/api_service.dart @@ -0,0 +1,5 @@ +typedef ProgressChanged = void Function(double); + +abstract class ApiService { + Future getChangelog(String defaultValue); +} diff --git a/lib/domain/services/changelog_provider.dart b/lib/domain/services/changelog_provider.dart index 4aacc970d..9d028fee7 100644 --- a/lib/domain/services/changelog_provider.dart +++ b/lib/domain/services/changelog_provider.dart @@ -1,5 +1,3 @@ abstract class ChangelogProvider { - String get defaultChangelog; - Future load(); } diff --git a/lib/domain/services/data_service.dart b/lib/domain/services/data_service.dart index 3a5a779f5..c6c0735f9 100644 --- a/lib/domain/services/data_service.dart +++ b/lib/domain/services/data_service.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:flutter/foundation.dart'; import 'package:shiori/domain/services/persistence/calculator_data_service.dart'; import 'package:shiori/domain/services/persistence/custom_builds_data_service.dart'; import 'package:shiori/domain/services/persistence/game_codes_data_service.dart'; @@ -22,6 +23,9 @@ abstract class DataService { Future init({String dir = 'shiori_data'}); + @visibleForTesting + Future initForTests(String path); + Future deleteThemAll(); Future closeThemAll(); diff --git a/lib/domain/services/device_info_service.dart b/lib/domain/services/device_info_service.dart index a9fd77806..312e1d952 100644 --- a/lib/domain/services/device_info_service.dart +++ b/lib/domain/services/device_info_service.dart @@ -5,6 +5,8 @@ abstract class DeviceInfoService { String get version; + String get versionWithBuildNumber; + bool get versionChanged; String? get userAgent; diff --git a/lib/domain/services/file/artifact_file_service.dart b/lib/domain/services/file/artifact_file_service.dart index af04a7fca..f6d79a5b6 100644 --- a/lib/domain/services/file/artifact_file_service.dart +++ b/lib/domain/services/file/artifact_file_service.dart @@ -2,7 +2,7 @@ import 'package:shiori/domain/enums/enums.dart'; import 'package:shiori/domain/models/models.dart'; import 'package:shiori/domain/services/file/base_file_service.dart'; -abstract class ArtifactFileService implements BaseFileService { +abstract class ArtifactFileService extends BaseFileService { List getArtifactsForCard({ArtifactType? type}); ArtifactCardModel getArtifactForCard(String key); diff --git a/lib/domain/services/file/banner_history_file_service.dart b/lib/domain/services/file/banner_history_file_service.dart index 3dd6ee8e9..528c0b1ea 100644 --- a/lib/domain/services/file/banner_history_file_service.dart +++ b/lib/domain/services/file/banner_history_file_service.dart @@ -2,7 +2,7 @@ import 'package:shiori/domain/enums/enums.dart'; import 'package:shiori/domain/models/models.dart'; import 'package:shiori/domain/services/file/base_file_service.dart'; -abstract class BannerHistoryFileService implements BaseFileService { +abstract class BannerHistoryFileService extends BaseFileService { List getBannerHistoryVersions(SortDirectionType type); List getBannerHistory(BannerHistoryItemType type); diff --git a/lib/domain/services/file/base_file_service.dart b/lib/domain/services/file/base_file_service.dart index 9b6b785a1..f79af5ebb 100644 --- a/lib/domain/services/file/base_file_service.dart +++ b/lib/domain/services/file/base_file_service.dart @@ -1,3 +1,13 @@ +import 'package:shiori/domain/assets.dart'; +import 'package:shiori/domain/services/file/file_infrastructure.dart'; + abstract class BaseFileService { - Future init(); + TranslationFileService get translations; + + Future> readJson(String assetPath) async { + final jsonString = await Assets.getJsonFromPath(assetPath); + return jsonString; + } + + Future init(String assetPath); } diff --git a/lib/domain/services/file/character_file_service.dart b/lib/domain/services/file/character_file_service.dart index abf2976bd..2d1ecfc00 100644 --- a/lib/domain/services/file/character_file_service.dart +++ b/lib/domain/services/file/character_file_service.dart @@ -1,8 +1,15 @@ import 'package:shiori/domain/enums/enums.dart'; import 'package:shiori/domain/models/models.dart'; import 'package:shiori/domain/services/file/base_file_service.dart'; +import 'package:shiori/domain/services/file/file_infrastructure.dart'; abstract class CharacterFileService extends BaseFileService { + ArtifactFileService get artifacts; + + MaterialFileService get materials; + + WeaponFileService get weapons; + List getCharactersForCard(); CharacterCardModel getCharacterForCard(String key); diff --git a/lib/domain/services/file/element_file_service.dart b/lib/domain/services/file/element_file_service.dart index 185052692..b70081344 100644 --- a/lib/domain/services/file/element_file_service.dart +++ b/lib/domain/services/file/element_file_service.dart @@ -1,7 +1,7 @@ import 'package:shiori/domain/models/models.dart'; import 'package:shiori/domain/services/file/base_file_service.dart'; -abstract class ElementFileService implements BaseFileService { +abstract class ElementFileService extends BaseFileService { List getElementDebuffs(); List getElementReactions(); diff --git a/lib/domain/services/file/furniture_file_service.dart b/lib/domain/services/file/furniture_file_service.dart index da1324030..6fcf549e7 100644 --- a/lib/domain/services/file/furniture_file_service.dart +++ b/lib/domain/services/file/furniture_file_service.dart @@ -1,7 +1,7 @@ import 'package:shiori/domain/models/models.dart'; import 'package:shiori/domain/services/file/base_file_service.dart'; -abstract class FurnitureFileService implements BaseFileService { +abstract class FurnitureFileService extends BaseFileService { FurnitureFileModel getDefaultFurnitureForNotifications(); FurnitureFileModel getFurniture(String key); diff --git a/lib/domain/services/file/gadget_file_service.dart b/lib/domain/services/file/gadget_file_service.dart index 8ef2420bc..ff9763e3a 100644 --- a/lib/domain/services/file/gadget_file_service.dart +++ b/lib/domain/services/file/gadget_file_service.dart @@ -1,7 +1,7 @@ import 'package:shiori/domain/models/models.dart'; import 'package:shiori/domain/services/file/base_file_service.dart'; -abstract class GadgetFileService implements BaseFileService { +abstract class GadgetFileService extends BaseFileService { List getAllGadgetsForNotifications(); GadgetFileModel getGadget(String key); diff --git a/lib/domain/services/file/material_file_service.dart b/lib/domain/services/file/material_file_service.dart index f4dddb98e..f4d3595a0 100644 --- a/lib/domain/services/file/material_file_service.dart +++ b/lib/domain/services/file/material_file_service.dart @@ -2,7 +2,7 @@ import 'package:shiori/domain/enums/enums.dart'; import 'package:shiori/domain/models/models.dart'; import 'package:shiori/domain/services/file/base_file_service.dart'; -abstract class MaterialFileService implements BaseFileService { +abstract class MaterialFileService extends BaseFileService { List getAllMaterialsForCard(); MaterialCardModel getMaterialForCard(String key); @@ -33,4 +33,6 @@ abstract class MaterialFileService implements BaseFileService { MaterialFileModel getRealmCurrencyMaterial(); MaterialFileModel getPrimogemMaterial(); + + MaterialFileModel getFragileResinMaterial(); } diff --git a/lib/domain/services/file/monster_file_service.dart b/lib/domain/services/file/monster_file_service.dart index 3ee65ce8d..a2bbe9c9d 100644 --- a/lib/domain/services/file/monster_file_service.dart +++ b/lib/domain/services/file/monster_file_service.dart @@ -2,7 +2,7 @@ import 'package:shiori/domain/enums/enums.dart'; import 'package:shiori/domain/models/models.dart'; import 'package:shiori/domain/services/file/base_file_service.dart'; -abstract class MonsterFileService implements BaseFileService { +abstract class MonsterFileService extends BaseFileService { MonsterFileModel getMonster(String key); List getAllMonstersForCard(); diff --git a/lib/domain/services/file/translation_file_service.dart b/lib/domain/services/file/translation_file_service.dart index a5c909d30..3afdfd919 100644 --- a/lib/domain/services/file/translation_file_service.dart +++ b/lib/domain/services/file/translation_file_service.dart @@ -1,8 +1,9 @@ import 'package:shiori/domain/enums/enums.dart'; import 'package:shiori/domain/models/models.dart'; +import 'package:shiori/domain/services/file/base_file_service.dart'; -abstract class TranslationFileService { - Future init(AppLanguageType languageType); +abstract class TranslationFileService extends BaseFileService { + Future initTranslations(AppLanguageType languageType, String assetPath); TranslationCharacterFile getCharacterTranslation(String key); diff --git a/lib/domain/services/file/weapon_file_service.dart b/lib/domain/services/file/weapon_file_service.dart index 1bf41cd39..3e303126c 100644 --- a/lib/domain/services/file/weapon_file_service.dart +++ b/lib/domain/services/file/weapon_file_service.dart @@ -1,8 +1,11 @@ import 'package:shiori/domain/enums/enums.dart'; import 'package:shiori/domain/models/models.dart'; import 'package:shiori/domain/services/file/base_file_service.dart'; +import 'package:shiori/domain/services/file/file_infrastructure.dart'; + +abstract class WeaponFileService extends BaseFileService { + MaterialFileService get materials; -abstract class WeaponFileService implements BaseFileService { List getWeaponsForCard(); WeaponCardModel getWeaponForCard(String key); diff --git a/lib/domain/services/logging_service.dart b/lib/domain/services/logging_service.dart index 3b94497a6..b90f232dd 100644 --- a/lib/domain/services/logging_service.dart +++ b/lib/domain/services/logging_service.dart @@ -1,6 +1,8 @@ abstract class LoggingService { void info(Type type, String msg, [List? args]); + void debug(Type type, String msg, [List? args]); + void warning(Type type, String msg, [dynamic ex, StackTrace? trace]); void error(Type type, String msg, [dynamic ex, StackTrace? trace]);