tmp
This commit is contained in:
parent
91298fd13e
commit
ca1fece7ab
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
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/adapter/presentation/game_version_view_model.dart';
|
||||||
import 'package:minecraft_server_installer/vanila/framework/ui/game_version_dropdown.dart';
|
import 'package:minecraft_server_installer/vanila/framework/ui/game_version_dropdown.dart';
|
||||||
|
|
||||||
@ -14,6 +15,12 @@ class _BasicConfigurationTabState extends State<BasicConfigurationTab> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return const Column(children: [GameVersionDropdown(onChanged: print)]);
|
return const Column(
|
||||||
|
children: [
|
||||||
|
GameVersionDropdown(onChanged: print),
|
||||||
|
Spacer(),
|
||||||
|
ElevatedButton(onPressed: null, child: Text(Strings.buttonStartToInstall)),
|
||||||
|
],
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
abstract class Strings {
|
abstract class Strings {
|
||||||
static const fieldGameVersion = '遊戲版本';
|
static const fieldGameVersion = '遊戲版本';
|
||||||
|
static const buttonStartToInstall = '開始安裝';
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
|
import 'dart:typed_data';
|
||||||
|
|
||||||
import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart';
|
import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart';
|
||||||
|
|
||||||
abstract interface class GameVersionApiService {
|
abstract interface class GameVersionApiService {
|
||||||
Future<List<GameVersion>> fetchGameVersionList();
|
Future<List<GameVersion>> fetchGameVersionList();
|
||||||
|
|
||||||
|
Future<Uint8List> fetchServerFile(Uri url);
|
||||||
}
|
}
|
||||||
|
@ -9,4 +9,9 @@ class GameVersionRepositoryImpl implements GameVersionRepository {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Future<List<GameVersion>> getGameVersionList() => _gameVersionApiService.fetchGameVersionList();
|
Future<List<GameVersion>> getGameVersionList() => _gameVersionApiService.fetchGameVersionList();
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> downloadServerFile(GameVersion version, String savePath) async {
|
||||||
|
final fileBytes = await _gameVersionApiService.fetchServerFile(version.url);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,4 +2,6 @@ import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dar
|
|||||||
|
|
||||||
abstract interface class GameVersionRepository {
|
abstract interface class GameVersionRepository {
|
||||||
Future<List<GameVersion>> getGameVersionList();
|
Future<List<GameVersion>> getGameVersionList();
|
||||||
|
|
||||||
|
Future<void> downloadServerFile(GameVersion version, String savePath);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
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);
|
||||||
|
}
|
@ -1,3 +1,5 @@
|
|||||||
|
import 'dart:typed_data';
|
||||||
|
|
||||||
import 'package:http/http.dart' as http;
|
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/game_version_api_service.dart';
|
||||||
import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart';
|
import 'package:minecraft_server_installer/vanila/domain/entity/game_version.dart';
|
||||||
@ -17,4 +19,10 @@ class GameVersionApiServiceImpl implements GameVersionApiService {
|
|||||||
|
|
||||||
return gameVersionList;
|
return gameVersionList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<Uint8List> fetchServerFile(Uri url) async {
|
||||||
|
final response = await http.get(url);
|
||||||
|
return response.bodyBytes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user