Compare commits

..

2 Commits

Author SHA1 Message Date
05744c37c3 MCSI-1 refactor: move bloc higher layer 2025-06-29 11:58:45 +08:00
e8ad6592f5 MCSI-1 feat: version selection 2025-06-29 04:59:49 +08:00
8 changed files with 4 additions and 38 deletions

View File

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:minecraft_server_installer/main/framework/ui/strings.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';
@ -15,12 +14,6 @@ class _BasicConfigurationTabState extends State<BasicConfigurationTab> {
@override
Widget build(BuildContext context) {
return const Column(
children: [
GameVersionDropdown(onChanged: print),
Spacer(),
ElevatedButton(onPressed: null, child: Text(Strings.buttonStartToInstall)),
],
);
return const Column(children: [GameVersionDropdown(onChanged: print)]);
}
}

View File

@ -1,4 +1,3 @@
abstract class Strings {
static const fieldGameVersion = '遊戲版本';
static const buttonStartToInstall = '開始安裝';
}

View File

@ -1,6 +1,9 @@
import 'package:flutter/material.dart';
import 'package:minecraft_server_installer/main/framework/ui/minecraft_server_installer.dart';
import 'package:minecraft_server_installer/vanila/framework/api/game_version_api_service_impl.dart';
void main() {
final apiService = GameVersionApiServiceImpl();
apiService.fetchGameVersionList();
runApp(const MinecraftServerInstaller());
}

View File

@ -1,9 +1,5 @@
import 'dart:typed_data';
import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart';
abstract interface class GameVersionApiService {
Future<List<GameVersion>> fetchGameVersionList();
Future<Uint8List> fetchServerFile(Uri url);
}

View File

@ -9,9 +9,4 @@ class GameVersionRepositoryImpl implements GameVersionRepository {
@override
Future<List<GameVersion>> getGameVersionList() => _gameVersionApiService.fetchGameVersionList();
@override
Future<void> downloadServerFile(GameVersion version, String savePath) async {
final fileBytes = await _gameVersionApiService.fetchServerFile(version.url);
}
}

View File

@ -2,6 +2,4 @@ import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dar
abstract interface class GameVersionRepository {
Future<List<GameVersion>> getGameVersionList();
Future<void> downloadServerFile(GameVersion version, String savePath);
}

View File

@ -1,10 +0,0 @@
import 'package:minecraft_server_installer/vanila/application/repository/game_version_repository.dart';
import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart';
class DownloadServerFileUseCase {
final GameVersionRepository _gameVersionRepository;
DownloadServerFileUseCase(this._gameVersionRepository);
Future<void> call(GameVersion version, String savePath) => _gameVersionRepository.downloadServerFile(version, savePath);
}

View File

@ -1,5 +1,3 @@
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/domain/entity/game_version.dart';
@ -19,10 +17,4 @@ class GameVersionApiServiceImpl implements GameVersionApiService {
return gameVersionList;
}
@override
Future<Uint8List> fetchServerFile(Uri url) async {
final response = await http.get(url);
return response.bodyBytes;
}
}