feat(mobile): Library page rework (album sorting, favorites) (#1501)

* Add album sorting

* Change AppBar to match photos page behaviour

* Add buttons

* First crude implementation of the favorites page

* Clean up

* Add favorite button

* i18n

* Add star indicator to thumbnail

* Add favorite logic to separate provider and fix favorite behavior in album

* Review feedback (Add isFavorite variable)

* dev: style buttons

* dev: styled drop down button

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
Matthias Rupp 2023-02-05 04:25:11 +01:00 committed by GitHub
parent 0048662182
commit bb0b2a1f53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 478 additions and 56 deletions

View file

@ -268,6 +268,26 @@ class AssetNotifier extends StateNotifier<AssetsState> {
.where((a) => a.status == DeleteAssetStatus.SUCCESS)
.map((a) => a.id);
}
Future<bool> toggleFavorite(Asset asset, bool status) async {
final newAsset = await _assetService.changeFavoriteStatus(asset, status);
if (newAsset == null) {
log.severe("Change favorite status failed for asset ${asset.id}");
return asset.isFavorite;
}
await _updateAssetsState(
state.allAssets.map((a) {
if (asset.id == a.id) {
return Asset.remote(newAsset);
}
return a;
}).toList(),
);
return newAsset.isFavorite;
}
}
final assetProvider = StateNotifierProvider<AssetNotifier, AssetsState>((ref) {