mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 15:57:25 +00:00
Improve reordering local comics. Close #374
This commit is contained in:
@@ -392,7 +392,8 @@
|
||||
"Source URL": "源地址",
|
||||
"The URL should point to a 'index.json' file": "该URL应指向一个'index.json'文件",
|
||||
"Double tap to zoom": "双击缩放",
|
||||
"Clear Unfavorited": "清除未收藏"
|
||||
"Clear Unfavorited": "清除未收藏",
|
||||
"Reverse": "反转"
|
||||
},
|
||||
"zh_TW": {
|
||||
"Home": "首頁",
|
||||
@@ -787,6 +788,7 @@
|
||||
"Source URL": "源地址",
|
||||
"The URL should point to a 'index.json' file": "該URL應指向一個'index.json'文件",
|
||||
"Double tap to zoom": "雙擊縮放",
|
||||
"Clear Unfavorited": "清除未收藏"
|
||||
"Clear Unfavorited": "清除未收藏",
|
||||
"Reverse": "反轉"
|
||||
}
|
||||
}
|
@@ -205,8 +205,10 @@ class Settings with ChangeNotifier {
|
||||
|
||||
operator []=(String key, dynamic value) {
|
||||
_data[key] = value;
|
||||
if (key != "dataVersion") {
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
|
@@ -714,11 +714,26 @@ class LocalFavoritesManager with ChangeNotifier {
|
||||
if (!existsFolder(folder)) {
|
||||
throw Exception("Failed to reorder: folder not found");
|
||||
}
|
||||
deleteFolder(folder);
|
||||
createFolder(folder);
|
||||
_db.execute("BEGIN TRANSACTION");
|
||||
try {
|
||||
for (int i = 0; i < newFolder.length; i++) {
|
||||
addComic(folder, newFolder[i], i);
|
||||
_db.execute("""
|
||||
update "$folder"
|
||||
set display_order = ?
|
||||
where id == ? and type == ?;
|
||||
""", [
|
||||
i,
|
||||
newFolder[i].id,
|
||||
newFolder[i].type.value
|
||||
]);
|
||||
}
|
||||
}
|
||||
catch (e) {
|
||||
Log.error("Reorder", e.toString());
|
||||
_db.execute("ROLLBACK");
|
||||
return;
|
||||
}
|
||||
_db.execute("COMMIT");
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
|
@@ -864,7 +864,10 @@ class _ReorderComicsPageState extends State<_ReorderComicsPage> {
|
||||
@override
|
||||
void dispose() {
|
||||
if (changed) {
|
||||
// Delay to ensure navigation is completed
|
||||
Future.delayed(const Duration(milliseconds: 200), () {
|
||||
LocalFavoritesManager().reorder(comics, widget.name);
|
||||
});
|
||||
}
|
||||
super.dispose();
|
||||
}
|
||||
@@ -899,7 +902,9 @@ class _ReorderComicsPageState extends State<_ReorderComicsPage> {
|
||||
appBar: Appbar(
|
||||
title: Text("Reorder".tl),
|
||||
actions: [
|
||||
IconButton(
|
||||
Tooltip(
|
||||
message: "Information".tl,
|
||||
child: IconButton(
|
||||
icon: const Icon(Icons.info_outline),
|
||||
onPressed: () {
|
||||
showInfoDialog(
|
||||
@@ -909,17 +914,19 @@ class _ReorderComicsPageState extends State<_ReorderComicsPage> {
|
||||
);
|
||||
},
|
||||
),
|
||||
IconButton(
|
||||
),
|
||||
Tooltip(
|
||||
message: "Reverse".tl,
|
||||
child: IconButton(
|
||||
icon: const Icon(Icons.swap_vert),
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
comics = comics.reversed.toList();
|
||||
changed = true;
|
||||
showToast(
|
||||
message: "Reversed successfully".tl, context: context);
|
||||
});
|
||||
},
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
body: ReorderableBuilder<FavoriteItem>(
|
||||
|
20
pubspec.lock
20
pubspec.lock
@@ -45,10 +45,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: async
|
||||
sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
|
||||
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.12.0"
|
||||
version: "2.13.0"
|
||||
battery_plus:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -190,10 +190,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: fake_async
|
||||
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
|
||||
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.2"
|
||||
version: "1.3.3"
|
||||
ffi:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -524,10 +524,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: intl
|
||||
sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
|
||||
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.19.0"
|
||||
version: "0.20.2"
|
||||
io:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -548,10 +548,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
|
||||
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.8"
|
||||
version: "10.0.9"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1037,10 +1037,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
|
||||
sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "14.3.1"
|
||||
version: "15.0.0"
|
||||
web:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
Reference in New Issue
Block a user