common: Remove platform interface

This commit is contained in:
Elias Projahn 2022-05-07 19:06:09 +02:00
parent 8987735797
commit b14dcd67f2
16 changed files with 44 additions and 204 deletions

View file

@ -4,7 +4,6 @@ import 'package:path/path.dart' as p;
import 'package:path_provider/path_provider.dart' as pp;
import 'settings.dart';
import 'platform.dart';
import 'playback.dart';
Future<void> main() async {
@ -16,7 +15,6 @@ Future<void> main() async {
runApp(MusicusApp(
dbPath: dbPath,
settingsStorage: SettingsStorage(),
platform: MusicusDesktopPlatform(),
playback: MusicusDesktopPlayback(),
));
}

View file

@ -1,58 +0,0 @@
import 'dart:io';
import 'package:file_picker/file_picker.dart';
import 'package:musicus_common/musicus_common.dart';
import 'package:path/path.dart' as p;
class MusicusDesktopPlatform extends MusicusPlatform {
@override
Future<String> chooseBasePath() async {
return await FilePicker.platform.getDirectoryPath();
}
@override
Future<List<Document>> getChildren(String parentId) async {
final List<Document> result = [];
final parent = Directory(parentId ?? basePath);
await for (final fse in parent.list()) {
result.add(Document(
id: fse.path,
name: p.basename(fse.path),
parent: parentId,
isDirectory: fse is Directory,
));
}
return result;
}
@override
Future<String> getIdentifier(String parentId, String fileName) async {
return p.absolute(parentId, fileName);
}
@override
Future<String> readDocument(String id) async {
try {
return await File(id).readAsString();
} on FileSystemException {
return null;
}
}
@override
Future<String> readDocumentByName(String parentId, String fileName) async {
try {
return await File(p.absolute(parentId, fileName)).readAsString();
} on FileSystemException {
return null;
}
}
@override
Future<void> writeDocumentByName(
String parentId, String fileName, String contents) async {
await File(p.absolute(parentId, fileName)).writeAsString(contents);
}
}

View file

@ -1,13 +1,12 @@
import 'package:musicus_common/musicus_common.dart';
import 'package:musicus_database/musicus_database.dart';
class MusicusDesktopPlayback extends MusicusPlayback {
@override
Future<void> setup() async {}
Future<void> setup(MusicusLibrary library) async {}
@override
Future<void> addTracks(List<Track> tracks) async {
final List<Track> newPlaylist = List.from(playlist.value);
Future<void> addTracks(List<String> tracks) async {
final List<String> newPlaylist = List.from(playlist.value);
newPlaylist.addAll(tracks);
playlist.add(newPlaylist);
active.add(true);
@ -20,7 +19,7 @@ class MusicusDesktopPlayback extends MusicusPlayback {
@override
Future<void> removeTrack(int index) async {
final List<Track> tracks = List.from(playlist.value);
final List<String> tracks = List.from(playlist.value);
tracks.removeAt(index);
playlist.add(tracks);
}
@ -29,7 +28,7 @@ class MusicusDesktopPlayback extends MusicusPlayback {
Future<void> seekTo(double pos) async {
if (active.value && pos >= 0.0 && pos <= 1.0) {
final durationMs = duration.value.inMilliseconds;
updatePosition((pos * durationMs).floor());
updatePosition(Duration(milliseconds: (pos * durationMs).floor()));
}
}