mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 07:47:24 +00:00
Ignore files starting with a dot when fetching local comic images, and improve local comic delete logic.
This commit is contained in:
@@ -5,6 +5,7 @@ import 'package:path_provider/path_provider.dart';
|
|||||||
import 'package:sqlite3/sqlite3.dart';
|
import 'package:sqlite3/sqlite3.dart';
|
||||||
import 'package:venera/foundation/comic_source/comic_source.dart';
|
import 'package:venera/foundation/comic_source/comic_source.dart';
|
||||||
import 'package:venera/foundation/comic_type.dart';
|
import 'package:venera/foundation/comic_type.dart';
|
||||||
|
import 'package:venera/foundation/favorites.dart';
|
||||||
import 'package:venera/foundation/log.dart';
|
import 'package:venera/foundation/log.dart';
|
||||||
import 'package:venera/network/download.dart';
|
import 'package:venera/network/download.dart';
|
||||||
import 'package:venera/pages/reader/reader.dart';
|
import 'package:venera/pages/reader/reader.dart';
|
||||||
@@ -346,6 +347,10 @@ class LocalManager with ChangeNotifier {
|
|||||||
comic.cover) {
|
comic.cover) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//Hidden file in some file system
|
||||||
|
if(entity.name.startsWith('.')) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
files.add(entity);
|
files.add(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -439,9 +444,20 @@ class LocalManager with ChangeNotifier {
|
|||||||
downloadingTasks.first.resume();
|
downloadingTasks.first.resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
void deleteComic(LocalComic c) {
|
void deleteComic(LocalComic c, [bool removeFileOnDisk = true]) {
|
||||||
var dir = Directory(FilePath.join(path, c.directory));
|
if(removeFileOnDisk) {
|
||||||
dir.deleteIgnoreError(recursive: true);
|
var dir = Directory(FilePath.join(path, c.directory));
|
||||||
|
dir.deleteIgnoreError(recursive: true);
|
||||||
|
}
|
||||||
|
//Deleting a local comic means that it's nolonger available, thus both favorite and history should be deleted.
|
||||||
|
if(HistoryManager().findSync(c.id, c.comicType) != null) {
|
||||||
|
HistoryManager().remove(c.id, c.comicType);
|
||||||
|
}
|
||||||
|
assert(c.comicType == ComicType.local);
|
||||||
|
var folders = LocalFavoritesManager().find(c.id, c.comicType);
|
||||||
|
for (var f in folders) {
|
||||||
|
LocalFavoritesManager().deleteComicWithId(f, c.id, c.comicType);
|
||||||
|
}
|
||||||
remove(c.id, c.comicType);
|
remove(c.id, c.comicType);
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user