fix: Put the database somewhere more sensible on Linux
This commit is contained in:
@@ -9,7 +9,8 @@ class OtherTitlesConverter implements JsonConverter<OtherTitles, String> {
|
|||||||
const OtherTitlesConverter();
|
const OtherTitlesConverter();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
OtherTitles fromJson(String json) => OtherTitles.fromJson(jsonDecode(json) as Map<String, dynamic>);
|
OtherTitles fromJson(String json) =>
|
||||||
|
OtherTitles.fromJson(jsonDecode(json) as Map<String, dynamic>);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toJson(OtherTitles object) => jsonEncode(object.toJson());
|
String toJson(OtherTitles object) => jsonEncode(object.toJson());
|
||||||
|
|||||||
@@ -26,8 +26,10 @@ abstract class AnimeSearchResult with _$AnimeSearchResult {
|
|||||||
);
|
);
|
||||||
return AnimeSearchResult(
|
return AnimeSearchResult(
|
||||||
title: (json['title']! as Map<String, dynamic>)['romaji']! as String,
|
title: (json['title']! as Map<String, dynamic>)['romaji']! as String,
|
||||||
titleEnglish: (json['title']! as Map<String, dynamic>)['english'] as String?,
|
titleEnglish:
|
||||||
titleJapanese: (json['title']! as Map<String, dynamic>)['native'] as String?,
|
(json['title']! as Map<String, dynamic>)['english'] as String?,
|
||||||
|
titleJapanese:
|
||||||
|
(json['title']! as Map<String, dynamic>)['native'] as String?,
|
||||||
id: (json['id']! as int).toString(),
|
id: (json['id']! as int).toString(),
|
||||||
episodes: json['episodes'] as int?,
|
episodes: json['episodes'] as int?,
|
||||||
imageUrl:
|
imageUrl:
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import 'package:anitrack/src/service/migrations/0000_airing.dart';
|
|||||||
import 'package:anitrack/src/service/migrations/0000_score.dart';
|
import 'package:anitrack/src/service/migrations/0000_score.dart';
|
||||||
import 'package:anitrack/src/service/migrations/0001_anime_watcher.dart';
|
import 'package:anitrack/src/service/migrations/0001_anime_watcher.dart';
|
||||||
import 'package:anitrack/src/service/migrations/0002_anilist.dart';
|
import 'package:anitrack/src/service/migrations/0002_anilist.dart';
|
||||||
|
import 'package:path/path.dart' as p;
|
||||||
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
|
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
|
||||||
|
|
||||||
const animeTable = 'Anime';
|
const animeTable = 'Anime';
|
||||||
@@ -83,6 +85,15 @@ class DatabaseService {
|
|||||||
/// Cached AnimeWatchers.
|
/// Cached AnimeWatchers.
|
||||||
List<AnimeWatcher>? _watcherCache;
|
List<AnimeWatcher>? _watcherCache;
|
||||||
|
|
||||||
|
Future<String> _getDatabasePath() async {
|
||||||
|
if (Platform.isAndroid || Platform.isIOS) {
|
||||||
|
return 'anitrack.db';
|
||||||
|
}
|
||||||
|
|
||||||
|
final supportDir = await getApplicationSupportDirectory();
|
||||||
|
return p.join(supportDir.path, 'anitrack.db');
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> initialize() async {
|
Future<void> initialize() async {
|
||||||
// Allow initializing the database on Windows and Linux as well.
|
// Allow initializing the database on Windows and Linux as well.
|
||||||
if (Platform.isLinux || Platform.isWindows) {
|
if (Platform.isLinux || Platform.isWindows) {
|
||||||
@@ -90,8 +101,10 @@ class DatabaseService {
|
|||||||
databaseFactory = databaseFactoryFfi;
|
databaseFactory = databaseFactoryFfi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final databasePath = await _getDatabasePath();
|
||||||
|
print('Opening database at $databasePath');
|
||||||
_db = await openDatabase(
|
_db = await openDatabase(
|
||||||
'anitrack.db',
|
databasePath,
|
||||||
version: 5,
|
version: 5,
|
||||||
onConfigure: (db) async {
|
onConfigure: (db) async {
|
||||||
// In order to do schema changes during database upgrades, we disable foreign
|
// In order to do schema changes during database upgrades, we disable foreign
|
||||||
@@ -119,7 +132,6 @@ class DatabaseService {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
print(_db.path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<AnimeTrackingData>> loadAnimes() async {
|
Future<List<AnimeTrackingData>> loadAnimes() async {
|
||||||
|
|||||||
@@ -758,7 +758,7 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.1"
|
version: "1.9.1"
|
||||||
path_provider:
|
path_provider:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: path_provider
|
name: path_provider
|
||||||
sha256: a7f4874f987173da295a61c181b8ee71dab59b332a486b391babf26a1b884825
|
sha256: a7f4874f987173da295a61c181b8ee71dab59b332a486b391babf26a1b884825
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ dependencies:
|
|||||||
graphql: ^5.2.4
|
graphql: ^5.2.4
|
||||||
jikan_api: ^2.2.1
|
jikan_api: ^2.2.1
|
||||||
json_annotation: ^4.11.0
|
json_annotation: ^4.11.0
|
||||||
path: ^1.9.0
|
path: ^1.9.1
|
||||||
|
path_provider: ^2.1.6
|
||||||
permission_handler: ^12.0.1
|
permission_handler: ^12.0.1
|
||||||
slang: ^4.13.0
|
slang: ^4.13.0
|
||||||
slang_flutter: ^4.13.0
|
slang_flutter: ^4.13.0
|
||||||
|
|||||||
Reference in New Issue
Block a user