diff --git a/lib/main/framework/ui/basic_configuration_tab.dart b/lib/main/framework/ui/basic_configuration_tab.dart index 24b4d15..ca145a0 100644 --- a/lib/main/framework/ui/basic_configuration_tab.dart +++ b/lib/main/framework/ui/basic_configuration_tab.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:minecraft_server_installer/main/framework/ui/strings.dart'; -import 'package:minecraft_server_installer/vanila/adapter/presentation/game_version_bloc.dart'; +import 'package:minecraft_server_installer/vanila/adapter/presentation/vanila_bloc.dart'; import 'package:minecraft_server_installer/vanila/adapter/presentation/game_version_view_model.dart'; import 'package:minecraft_server_installer/vanila/framework/ui/game_version_dropdown.dart'; @@ -22,7 +22,7 @@ class _BasicConfigurationTabState extends State { const GameVersionDropdown(), const Spacer(), ElevatedButton.icon( - onPressed: context.watch().state.isGameVersionSelected ? _downloadServerFile : null, + onPressed: context.watch().state.isGameVersionSelected ? _downloadServerFile : null, icon: const Icon(Icons.download), label: const Text(Strings.buttonStartToInstall), ), @@ -31,6 +31,6 @@ class _BasicConfigurationTabState extends State { } void _downloadServerFile() { - context.read().add(VanilaServerFileDownloadedEvent()); + context.read().add(VanilaServerFileDownloadedEvent()); } } diff --git a/lib/main/framework/ui/minecraft_server_installer.dart b/lib/main/framework/ui/minecraft_server_installer.dart index 55bb6ce..5913c58 100644 --- a/lib/main/framework/ui/minecraft_server_installer.dart +++ b/lib/main/framework/ui/minecraft_server_installer.dart @@ -1,21 +1,21 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:minecraft_server_installer/main/framework/ui/basic_configuration_tab.dart'; -import 'package:minecraft_server_installer/vanila/adapter/gateway/game_version_repository_impl.dart'; -import 'package:minecraft_server_installer/vanila/adapter/presentation/game_version_bloc.dart'; +import 'package:minecraft_server_installer/vanila/adapter/gateway/vanila_repository_impl.dart'; +import 'package:minecraft_server_installer/vanila/adapter/presentation/vanila_bloc.dart'; import 'package:minecraft_server_installer/vanila/application/use_case/download_server_file_use_case.dart'; import 'package:minecraft_server_installer/vanila/application/use_case/get_game_version_list_use_case.dart'; -import 'package:minecraft_server_installer/vanila/framework/api/game_version_api_service_impl.dart'; -import 'package:minecraft_server_installer/vanila/framework/storage/game_version_file_storage_impl.dart'; +import 'package:minecraft_server_installer/vanila/framework/api/vanila_api_service_impl.dart'; +import 'package:minecraft_server_installer/vanila/framework/storage/vanila_file_storage_impl.dart'; class MinecraftServerInstaller extends StatelessWidget { const MinecraftServerInstaller({super.key}); @override Widget build(BuildContext context) { - final gameVersionApiService = GameVersionApiServiceImpl(); - final gameVersionFileStorage = GameVersionFileStorageImpl(); - final gameVersionRepository = GameVersionRepositoryImpl(gameVersionApiService, gameVersionFileStorage); + final gameVersionApiService = VanilaApiServiceImpl(); + final gameVersionFileStorage = VanilaFileStorageImpl(); + final gameVersionRepository = VanilaRepositoryImpl(gameVersionApiService, gameVersionFileStorage); final getGameVersionListUseCase = GetGameVersionListUseCase(gameVersionRepository); final downloadServerFileUseCase = DownloadServerFileUseCase(gameVersionRepository); @@ -24,8 +24,8 @@ class MinecraftServerInstaller extends StatelessWidget { theme: ThemeData(primarySwatch: Colors.blue), home: MultiBlocProvider( providers: [ - BlocProvider( - create: (context) => GameVersionBloc(getGameVersionListUseCase, downloadServerFileUseCase), + BlocProvider( + create: (context) => VanilaBloc(getGameVersionListUseCase, downloadServerFileUseCase), ), ], child: const Scaffold( diff --git a/lib/vanila/adapter/gateway/game_version_api_service.dart b/lib/vanila/adapter/gateway/vanila_api_service.dart similarity index 81% rename from lib/vanila/adapter/gateway/game_version_api_service.dart rename to lib/vanila/adapter/gateway/vanila_api_service.dart index 9e3dc1c..a3fa6fb 100644 --- a/lib/vanila/adapter/gateway/game_version_api_service.dart +++ b/lib/vanila/adapter/gateway/vanila_api_service.dart @@ -2,7 +2,7 @@ import 'dart:typed_data'; import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart'; -abstract interface class GameVersionApiService { +abstract interface class VanilaApiService { Future> fetchGameVersionList(); Future fetchServerFile(Uri url); diff --git a/lib/vanila/adapter/gateway/game_version_file_storage.dart b/lib/vanila/adapter/gateway/vanila_file_storage.dart similarity index 64% rename from lib/vanila/adapter/gateway/game_version_file_storage.dart rename to lib/vanila/adapter/gateway/vanila_file_storage.dart index d4eac33..7ba203d 100644 --- a/lib/vanila/adapter/gateway/game_version_file_storage.dart +++ b/lib/vanila/adapter/gateway/vanila_file_storage.dart @@ -1,5 +1,5 @@ import 'dart:typed_data'; -abstract interface class GameVersionFileStorage { +abstract interface class VanilaFileStorage { Future saveFile(Uint8List fileBytes, String savePath); } diff --git a/lib/vanila/adapter/gateway/game_version_repository_impl.dart b/lib/vanila/adapter/gateway/vanila_repository_impl.dart similarity index 62% rename from lib/vanila/adapter/gateway/game_version_repository_impl.dart rename to lib/vanila/adapter/gateway/vanila_repository_impl.dart index 12bb1a2..f60e44e 100644 --- a/lib/vanila/adapter/gateway/game_version_repository_impl.dart +++ b/lib/vanila/adapter/gateway/vanila_repository_impl.dart @@ -1,13 +1,13 @@ -import 'package:minecraft_server_installer/vanila/adapter/gateway/game_version_api_service.dart'; -import 'package:minecraft_server_installer/vanila/adapter/gateway/game_version_file_storage.dart'; -import 'package:minecraft_server_installer/vanila/application/repository/game_version_repository.dart'; +import 'package:minecraft_server_installer/vanila/adapter/gateway/vanila_api_service.dart'; +import 'package:minecraft_server_installer/vanila/adapter/gateway/vanila_file_storage.dart'; +import 'package:minecraft_server_installer/vanila/application/repository/vanila_repository.dart'; import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart'; -class GameVersionRepositoryImpl implements GameVersionRepository { - final GameVersionApiService _gameVersionApiService; - final GameVersionFileStorage _gameVersionFileStorage; +class VanilaRepositoryImpl implements VanilaRepository { + final VanilaApiService _gameVersionApiService; + final VanilaFileStorage _gameVersionFileStorage; - GameVersionRepositoryImpl(this._gameVersionApiService, this._gameVersionFileStorage); + VanilaRepositoryImpl(this._gameVersionApiService, this._gameVersionFileStorage); @override Future> getGameVersionList() => _gameVersionApiService.fetchGameVersionList(); diff --git a/lib/vanila/adapter/presentation/game_version_bloc.dart b/lib/vanila/adapter/presentation/vanila_bloc.dart similarity index 62% rename from lib/vanila/adapter/presentation/game_version_bloc.dart rename to lib/vanila/adapter/presentation/vanila_bloc.dart index 597f957..e5d1188 100644 --- a/lib/vanila/adapter/presentation/game_version_bloc.dart +++ b/lib/vanila/adapter/presentation/vanila_bloc.dart @@ -1,14 +1,14 @@ -import 'package:equatable/equatable.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:minecraft_server_installer/vanila/adapter/presentation/game_version_view_model.dart'; +import 'package:minecraft_server_installer/vanila/adapter/presentation/vanila_state.dart'; import 'package:minecraft_server_installer/vanila/application/use_case/download_server_file_use_case.dart'; import 'package:minecraft_server_installer/vanila/application/use_case/get_game_version_list_use_case.dart'; -class GameVersionBloc extends Bloc { +class VanilaBloc extends Bloc { final GetGameVersionListUseCase _getGameVersionListUseCase; final DownloadServerFileUseCase _downloadServerFileUseCase; - GameVersionBloc(this._getGameVersionListUseCase, this._downloadServerFileUseCase) : super(const VanilaState.empty()) { + VanilaBloc(this._getGameVersionListUseCase, this._downloadServerFileUseCase) : super(const VanilaState.empty()) { on((_, emit) async { try { final gameVersions = await _getGameVersionListUseCase(); @@ -49,23 +49,3 @@ class VanilaGameVersionSelectedEvent extends VanilaEvent { } class VanilaServerFileDownloadedEvent extends VanilaEvent {} - -class VanilaState with EquatableMixin { - final List gameVersions; - final GameVersionViewModel? selectedGameVersion; - - const VanilaState({required this.gameVersions, required this.selectedGameVersion}); - - const VanilaState.empty() : this(gameVersions: const [], selectedGameVersion: null); - - @override - List get props => [gameVersions, selectedGameVersion]; - - bool get isGameVersionSelected => selectedGameVersion != null; - - VanilaState copyWith({List? gameVersions, GameVersionViewModel? selectedGameVersion}) => - VanilaState( - gameVersions: gameVersions ?? this.gameVersions, - selectedGameVersion: selectedGameVersion ?? this.selectedGameVersion, - ); -} diff --git a/lib/vanila/adapter/presentation/vanila_state.dart b/lib/vanila/adapter/presentation/vanila_state.dart new file mode 100644 index 0000000..ee1ca90 --- /dev/null +++ b/lib/vanila/adapter/presentation/vanila_state.dart @@ -0,0 +1,23 @@ + +import 'package:equatable/equatable.dart'; +import 'package:minecraft_server_installer/vanila/adapter/presentation/game_version_view_model.dart'; + +class VanilaState with EquatableMixin { + final List gameVersions; + final GameVersionViewModel? selectedGameVersion; + + const VanilaState({required this.gameVersions, required this.selectedGameVersion}); + + const VanilaState.empty() : this(gameVersions: const [], selectedGameVersion: null); + + @override + List get props => [gameVersions, selectedGameVersion]; + + bool get isGameVersionSelected => selectedGameVersion != null; + + VanilaState copyWith({List? gameVersions, GameVersionViewModel? selectedGameVersion}) => + VanilaState( + gameVersions: gameVersions ?? this.gameVersions, + selectedGameVersion: selectedGameVersion ?? this.selectedGameVersion, + ); +} \ No newline at end of file diff --git a/lib/vanila/application/repository/game_version_repository.dart b/lib/vanila/application/repository/vanila_repository.dart similarity index 81% rename from lib/vanila/application/repository/game_version_repository.dart rename to lib/vanila/application/repository/vanila_repository.dart index bf9d2d5..faa8b62 100644 --- a/lib/vanila/application/repository/game_version_repository.dart +++ b/lib/vanila/application/repository/vanila_repository.dart @@ -1,6 +1,6 @@ import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart'; -abstract interface class GameVersionRepository { +abstract interface class VanilaRepository { Future> getGameVersionList(); Future downloadServerFile(GameVersion version, String savePath); diff --git a/lib/vanila/application/use_case/download_server_file_use_case.dart b/lib/vanila/application/use_case/download_server_file_use_case.dart index 02b5a34..e01d2a8 100644 --- a/lib/vanila/application/use_case/download_server_file_use_case.dart +++ b/lib/vanila/application/use_case/download_server_file_use_case.dart @@ -1,8 +1,8 @@ -import 'package:minecraft_server_installer/vanila/application/repository/game_version_repository.dart'; +import 'package:minecraft_server_installer/vanila/application/repository/vanila_repository.dart'; import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart'; class DownloadServerFileUseCase { - final GameVersionRepository _gameVersionRepository; + final VanilaRepository _gameVersionRepository; DownloadServerFileUseCase(this._gameVersionRepository); diff --git a/lib/vanila/application/use_case/get_game_version_list_use_case.dart b/lib/vanila/application/use_case/get_game_version_list_use_case.dart index 355bdab..b99349f 100644 --- a/lib/vanila/application/use_case/get_game_version_list_use_case.dart +++ b/lib/vanila/application/use_case/get_game_version_list_use_case.dart @@ -1,8 +1,8 @@ -import 'package:minecraft_server_installer/vanila/application/repository/game_version_repository.dart'; +import 'package:minecraft_server_installer/vanila/application/repository/vanila_repository.dart'; import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart'; class GetGameVersionListUseCase { - final GameVersionRepository _gameVersionRepository; + final VanilaRepository _gameVersionRepository; GetGameVersionListUseCase(this._gameVersionRepository); diff --git a/lib/vanila/framework/api/game_version_api_service_impl.dart b/lib/vanila/framework/api/vanila_api_service_impl.dart similarity index 90% rename from lib/vanila/framework/api/game_version_api_service_impl.dart rename to lib/vanila/framework/api/vanila_api_service_impl.dart index 5cfc416..19fd8c1 100644 --- a/lib/vanila/framework/api/game_version_api_service_impl.dart +++ b/lib/vanila/framework/api/vanila_api_service_impl.dart @@ -1,10 +1,10 @@ import 'dart:typed_data'; import 'package:http/http.dart' as http; -import 'package:minecraft_server_installer/vanila/adapter/gateway/game_version_api_service.dart'; +import 'package:minecraft_server_installer/vanila/adapter/gateway/vanila_api_service.dart'; import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart'; -class GameVersionApiServiceImpl implements GameVersionApiService { +class VanilaApiServiceImpl implements VanilaApiService { @override Future> fetchGameVersionList() async { final sourceUrl = Uri.parse('https://www.dropbox.com/s/mtz3moc9dpjtz7s/GameVersions.txt?dl=1'); diff --git a/lib/vanila/framework/storage/game_version_file_storage_impl.dart b/lib/vanila/framework/storage/vanila_file_storage_impl.dart similarity index 79% rename from lib/vanila/framework/storage/game_version_file_storage_impl.dart rename to lib/vanila/framework/storage/vanila_file_storage_impl.dart index 73c116a..656379e 100644 --- a/lib/vanila/framework/storage/game_version_file_storage_impl.dart +++ b/lib/vanila/framework/storage/vanila_file_storage_impl.dart @@ -1,9 +1,9 @@ import 'dart:io'; import 'dart:typed_data'; -import 'package:minecraft_server_installer/vanila/adapter/gateway/game_version_file_storage.dart'; +import 'package:minecraft_server_installer/vanila/adapter/gateway/vanila_file_storage.dart'; -class GameVersionFileStorageImpl implements GameVersionFileStorage { +class VanilaFileStorageImpl implements VanilaFileStorage { @override Future saveFile(Uint8List fileBytes, String savePath) async { final file = File(savePath); diff --git a/lib/vanila/framework/ui/game_version_dropdown.dart b/lib/vanila/framework/ui/game_version_dropdown.dart index 4ab1c5f..7f5b8af 100644 --- a/lib/vanila/framework/ui/game_version_dropdown.dart +++ b/lib/vanila/framework/ui/game_version_dropdown.dart @@ -1,8 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:minecraft_server_installer/main/framework/ui/strings.dart'; -import 'package:minecraft_server_installer/vanila/adapter/presentation/game_version_bloc.dart'; +import 'package:minecraft_server_installer/vanila/adapter/presentation/vanila_bloc.dart'; import 'package:minecraft_server_installer/vanila/adapter/presentation/game_version_view_model.dart'; +import 'package:minecraft_server_installer/vanila/adapter/presentation/vanila_state.dart'; class GameVersionDropdown extends StatefulWidget { const GameVersionDropdown({super.key}); @@ -15,11 +16,11 @@ class _GameVersionDropdownState extends State { @override void initState() { super.initState(); - context.read().add(VanilaGameVersionListLoadedEvent()); + context.read().add(VanilaGameVersionListLoadedEvent()); } @override - Widget build(BuildContext context) => BlocConsumer( + Widget build(BuildContext context) => BlocConsumer( listener: (_, __) {}, builder: (_, state) => DropdownMenu( @@ -29,7 +30,7 @@ class _GameVersionDropdownState extends State { label: const Text(Strings.fieldGameVersion), onSelected: (value) { if (value != null) { - context.read().add(VanilaGameVersionSelectedEvent(value)); + context.read().add(VanilaGameVersionSelectedEvent(value)); } }, dropdownMenuEntries: