mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-08 23:18:16 -07:00
feat: Sync offline/online playback when able (#431)
Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
parent
15ac3566e2
commit
092836328f
42 changed files with 1002 additions and 497 deletions
|
|
@ -110,7 +110,7 @@ extension ItemBaseModelExtensions on ItemBaseModel {
|
|||
syncAble &&
|
||||
(canDownload ?? false);
|
||||
final downloadUrl = ref.read(userProvider.notifier).createDownloadUrl(this);
|
||||
final syncedItemFuture = ref.read(syncProvider.notifier).getSyncedItem(this);
|
||||
final syncedItemFuture = ref.read(syncProvider.notifier).getSyncedItem(id);
|
||||
return [
|
||||
if (!exclude.contains(ItemActions.play))
|
||||
if (playAble)
|
||||
|
|
@ -185,9 +185,12 @@ extension ItemBaseModelExtensions on ItemBaseModel {
|
|||
ItemActionButton(
|
||||
icon: const Icon(IconsaxPlusLinear.eye),
|
||||
action: () async {
|
||||
final userData = await ref.read(userProvider.notifier).markAsPlayed(true, id);
|
||||
onUserDataChanged?.call(userData?.bodyOrThrow);
|
||||
context.refreshData();
|
||||
try {
|
||||
final userData = await ref.read(userProvider.notifier).markAsPlayed(true, id);
|
||||
onUserDataChanged?.call(userData?.bodyOrThrow);
|
||||
} finally {
|
||||
context.refreshData();
|
||||
}
|
||||
},
|
||||
label: Text(context.localized.markAsWatched),
|
||||
),
|
||||
|
|
@ -196,18 +199,24 @@ extension ItemBaseModelExtensions on ItemBaseModel {
|
|||
icon: const Icon(IconsaxPlusLinear.eye_slash),
|
||||
label: Text(context.localized.markAsUnwatched),
|
||||
action: () async {
|
||||
final userData = await ref.read(userProvider.notifier).markAsPlayed(false, id);
|
||||
onUserDataChanged?.call(userData?.bodyOrThrow);
|
||||
context.refreshData();
|
||||
try {
|
||||
final userData = await ref.read(userProvider.notifier).markAsPlayed(false, id);
|
||||
onUserDataChanged?.call(userData?.bodyOrThrow);
|
||||
} finally {
|
||||
context.refreshData();
|
||||
}
|
||||
},
|
||||
),
|
||||
if (!exclude.contains(ItemActions.setFavorite))
|
||||
ItemActionButton(
|
||||
icon: Icon(userData.isFavourite ? IconsaxPlusLinear.heart_remove : IconsaxPlusLinear.heart_add),
|
||||
action: () async {
|
||||
final newData = await ref.read(userProvider.notifier).setAsFavorite(!userData.isFavourite, id);
|
||||
onUserDataChanged?.call(newData?.bodyOrThrow);
|
||||
context.refreshData();
|
||||
try {
|
||||
final newData = await ref.read(userProvider.notifier).setAsFavorite(!userData.isFavourite, id);
|
||||
onUserDataChanged?.call(newData?.bodyOrThrow);
|
||||
} finally {
|
||||
context.refreshData();
|
||||
}
|
||||
},
|
||||
label: Text(userData.isFavourite ? context.localized.removeAsFavorite : context.localized.addAsFavorite),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -101,9 +101,11 @@ Future<void> _playVideo(
|
|||
if (AdaptiveLayout.of(context).isDesktop) {
|
||||
fullScreenHelper.closeFullScreen(ref);
|
||||
}
|
||||
|
||||
if (context.mounted) {
|
||||
context.refreshData();
|
||||
await context.refreshData();
|
||||
}
|
||||
|
||||
onPlayerExit?.call();
|
||||
}
|
||||
}
|
||||
|
|
@ -138,7 +140,7 @@ extension BookBaseModelExtension on BookModel? {
|
|||
);
|
||||
parentContext?.refreshData();
|
||||
if (context.mounted) {
|
||||
context.refreshData();
|
||||
await context.refreshData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -176,7 +178,7 @@ extension PhotoAlbumExtension on PhotoAlbumModel? {
|
|||
),
|
||||
);
|
||||
if (context.mounted) {
|
||||
context.refreshData();
|
||||
await context.refreshData();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue