mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 15:57:25 +00:00
When adding a favorite, also add the update time.
This commit is contained in:
@@ -462,7 +462,8 @@ class LocalFavoritesManager with ChangeNotifier {
|
|||||||
|
|
||||||
/// add comic to a folder.
|
/// add comic to a folder.
|
||||||
/// return true if success, false if already exists
|
/// return true if success, false if already exists
|
||||||
bool addComic(String folder, FavoriteItem comic, [int? order]) {
|
bool addComic(String folder, FavoriteItem comic,
|
||||||
|
[int? order, String? updateTime]) {
|
||||||
_modifiedAfterLastCache = true;
|
_modifiedAfterLastCache = true;
|
||||||
if (!existsFolder(folder)) {
|
if (!existsFolder(folder)) {
|
||||||
throw Exception("Folder does not exists");
|
throw Exception("Folder does not exists");
|
||||||
@@ -501,6 +502,18 @@ class LocalFavoritesManager with ChangeNotifier {
|
|||||||
values (?, ?, ?, ?, ?, ?, ?, ?, ?);
|
values (?, ?, ?, ?, ?, ?, ?, ?, ?);
|
||||||
""", [...params, minValue(folder) - 1]);
|
""", [...params, minValue(folder) - 1]);
|
||||||
}
|
}
|
||||||
|
if (updateTime != null) {
|
||||||
|
var columns = _db.select("""
|
||||||
|
pragma table_info("$folder");
|
||||||
|
""");
|
||||||
|
if (columns.any((element) => element["name"] == "last_update_time")) {
|
||||||
|
_db.execute("""
|
||||||
|
update "$folder"
|
||||||
|
set last_update_time = ?
|
||||||
|
where id == ? and type == ?;
|
||||||
|
""", [updateTime, comic.id, comic.type.value]);
|
||||||
|
}
|
||||||
|
}
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -61,6 +61,7 @@ abstract mixin class _ComicPageActions {
|
|||||||
update();
|
update();
|
||||||
},
|
},
|
||||||
favoriteItem: _toFavoriteItem(),
|
favoriteItem: _toFavoriteItem(),
|
||||||
|
updateTime: comic.findUpdateTime(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -73,6 +74,8 @@ abstract mixin class _ComicPageActions {
|
|||||||
LocalFavoritesManager().addComic(
|
LocalFavoritesManager().addComic(
|
||||||
folder,
|
folder,
|
||||||
_toFavoriteItem(),
|
_toFavoriteItem(),
|
||||||
|
null,
|
||||||
|
comic.findUpdateTime(),
|
||||||
);
|
);
|
||||||
isAddToLocalFav = true;
|
isAddToLocalFav = true;
|
||||||
update();
|
update();
|
||||||
|
@@ -7,6 +7,7 @@ class _FavoritePanel extends StatefulWidget {
|
|||||||
required this.isFavorite,
|
required this.isFavorite,
|
||||||
required this.onFavorite,
|
required this.onFavorite,
|
||||||
required this.favoriteItem,
|
required this.favoriteItem,
|
||||||
|
this.updateTime,
|
||||||
});
|
});
|
||||||
|
|
||||||
final String cid;
|
final String cid;
|
||||||
@@ -22,6 +23,8 @@ class _FavoritePanel extends StatefulWidget {
|
|||||||
|
|
||||||
final FavoriteItem favoriteItem;
|
final FavoriteItem favoriteItem;
|
||||||
|
|
||||||
|
final String? updateTime;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<_FavoritePanel> createState() => _FavoritePanelState();
|
State<_FavoritePanel> createState() => _FavoritePanelState();
|
||||||
}
|
}
|
||||||
@@ -164,14 +167,14 @@ class _FavoritePanelState extends State<_FavoritePanel>
|
|||||||
onChanged: disabled
|
onChanged: disabled
|
||||||
? null
|
? null
|
||||||
: (v) {
|
: (v) {
|
||||||
setState(() {
|
setState(() {
|
||||||
if (v!) {
|
if (v!) {
|
||||||
selectedLocalFolders.add(folder);
|
selectedLocalFolders.add(folder);
|
||||||
} else {
|
} else {
|
||||||
selectedLocalFolders.remove(folder);
|
selectedLocalFolders.remove(folder);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -190,7 +193,12 @@ class _FavoritePanelState extends State<_FavoritePanel>
|
|||||||
widget.onFavorite(false, null);
|
widget.onFavorite(false, null);
|
||||||
} else {
|
} else {
|
||||||
for (var folder in selectedLocalFolders) {
|
for (var folder in selectedLocalFolders) {
|
||||||
LocalFavoritesManager().addComic(folder, widget.favoriteItem);
|
LocalFavoritesManager().addComic(
|
||||||
|
folder,
|
||||||
|
widget.favoriteItem,
|
||||||
|
null,
|
||||||
|
widget.updateTime,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
widget.onFavorite(true, null);
|
widget.onFavorite(true, null);
|
||||||
}
|
}
|
||||||
@@ -396,7 +404,7 @@ class _NetworkFavoritesState extends State<_NetworkFavorites> {
|
|||||||
isLoading = true;
|
isLoading = true;
|
||||||
});
|
});
|
||||||
var res =
|
var res =
|
||||||
await widget.comicSource.favoriteData!.addOrDelFavorite!(
|
await widget.comicSource.favoriteData!.addOrDelFavorite!(
|
||||||
widget.cid,
|
widget.cid,
|
||||||
selected!,
|
selected!,
|
||||||
!addedFolders.contains(selected!),
|
!addedFolders.contains(selected!),
|
||||||
@@ -421,4 +429,4 @@ class _NetworkFavoritesState extends State<_NetworkFavorites> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user