Skip to content

Commit 1378f22

Browse files
authored
fix: add to album render empty app bar (#20480)
* fix: add to album render empty app bar * set current album
1 parent 4bd465e commit 1378f22

File tree

3 files changed

+36
-32
lines changed

3 files changed

+36
-32
lines changed

mobile/lib/pages/backup/drift_backup_album_selection.page.dart

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
66
import 'package:immich_mobile/domain/models/album/local_album.model.dart';
77
import 'package:immich_mobile/extensions/build_context_extensions.dart';
88
import 'package:immich_mobile/extensions/translate_extensions.dart';
9-
import 'package:immich_mobile/providers/album/album.provider.dart';
109
import 'package:immich_mobile/providers/app_settings.provider.dart';
1110
import 'package:immich_mobile/providers/backup/backup_album.provider.dart';
1211
import 'package:immich_mobile/providers/backup/drift_backup.provider.dart';
1312
import 'package:immich_mobile/providers/user.provider.dart';
1413
import 'package:immich_mobile/services/app_settings.service.dart';
1514
import 'package:immich_mobile/widgets/backup/drift_album_info_list_tile.dart';
1615
import 'package:immich_mobile/widgets/common/search_field.dart';
17-
import 'package:immich_mobile/widgets/settings/settings_switch_list_tile.dart';
1816

1917
@RoutePage()
2018
class DriftBackupAlbumSelectionPage extends ConsumerStatefulWidget {
@@ -67,14 +65,14 @@ class _DriftBackupAlbumSelectionPageState extends ConsumerState<DriftBackupAlbum
6765
final selectedBackupAlbums = albums.where((album) => album.backupSelection == BackupSelection.selected).toList();
6866
final excludedBackupAlbums = albums.where((album) => album.backupSelection == BackupSelection.excluded).toList();
6967

70-
handleSyncAlbumToggle(bool isEnable) async {
71-
if (isEnable) {
72-
await ref.read(albumProvider.notifier).refreshRemoteAlbums();
73-
for (final album in selectedBackupAlbums) {
74-
await ref.read(albumProvider.notifier).createSyncAlbum(album.name);
75-
}
76-
}
77-
}
68+
// handleSyncAlbumToggle(bool isEnable) async {
69+
// if (isEnable) {
70+
// await ref.read(albumProvider.notifier).refreshRemoteAlbums();
71+
// for (final album in selectedBackupAlbums) {
72+
// await ref.read(albumProvider.notifier).createSyncAlbum(album.name);
73+
// }
74+
// }
75+
// }
7876

7977
return PopScope(
8078
onPopInvokedWithResult: (didPop, result) async {
@@ -167,16 +165,15 @@ class _DriftBackupAlbumSelectionPageState extends ConsumerState<DriftBackupAlbum
167165
),
168166
),
169167

170-
SettingsSwitchListTile(
171-
valueNotifier: _enableSyncUploadAlbum,
172-
title: "sync_albums".t(context: context),
173-
subtitle: "sync_upload_album_setting_subtitle".t(context: context),
174-
contentPadding: const EdgeInsets.symmetric(horizontal: 16),
175-
titleStyle: context.textTheme.bodyLarge?.copyWith(fontWeight: FontWeight.bold),
176-
subtitleStyle: context.textTheme.labelLarge?.copyWith(color: context.colorScheme.primary),
177-
onChanged: handleSyncAlbumToggle,
178-
),
179-
168+
// SettingsSwitchListTile(
169+
// valueNotifier: _enableSyncUploadAlbum,
170+
// title: "sync_albums".t(context: context),
171+
// subtitle: "sync_upload_album_setting_subtitle".t(context: context),
172+
// contentPadding: const EdgeInsets.symmetric(horizontal: 16),
173+
// titleStyle: context.textTheme.bodyLarge?.copyWith(fontWeight: FontWeight.bold),
174+
// subtitleStyle: context.textTheme.labelLarge?.copyWith(color: context.colorScheme.primary),
175+
// onChanged: handleSyncAlbumToggle,
176+
// ),
180177
ListTile(
181178
title: Text(
182179
"albums_on_device_count".t(context: context, args: {'count': albumCount.toString()}),

mobile/lib/presentation/pages/drift_remote_album.page.dart

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@ class RemoteAlbumPage extends ConsumerStatefulWidget {
2828
}
2929

3030
class _RemoteAlbumPageState extends ConsumerState<RemoteAlbumPage> {
31+
late RemoteAlbum _album;
3132
@override
3233
void initState() {
3334
super.initState();
35+
_album = widget.album;
3436
}
3537

3638
Future<void> addAssets(BuildContext context) async {
37-
final albumAssets = await ref.read(remoteAlbumProvider.notifier).getAssets(widget.album.id);
39+
final albumAssets = await ref.read(remoteAlbumProvider.notifier).getAssets(_album.id);
3840

3941
final newAssets = await context.pushRoute<Set<BaseAsset>>(
4042
DriftAssetSelectionTimelineRoute(lockedSelectionAssets: albumAssets.toSet()),
@@ -47,7 +49,7 @@ class _RemoteAlbumPageState extends ConsumerState<RemoteAlbumPage> {
4749
final added = await ref
4850
.read(remoteAlbumProvider.notifier)
4951
.addAssets(
50-
widget.album.id,
52+
_album.id,
5153
newAssets.map((asset) {
5254
final remoteAsset = asset as RemoteAsset;
5355
return remoteAsset.id;
@@ -64,14 +66,14 @@ class _RemoteAlbumPageState extends ConsumerState<RemoteAlbumPage> {
6466
}
6567

6668
Future<void> addUsers(BuildContext context) async {
67-
final newUsers = await context.pushRoute<List<String>>(DriftUserSelectionRoute(album: widget.album));
69+
final newUsers = await context.pushRoute<List<String>>(DriftUserSelectionRoute(album: _album));
6870

6971
if (newUsers == null || newUsers.isEmpty) {
7072
return;
7173
}
7274

7375
try {
74-
await ref.read(remoteAlbumProvider.notifier).addUsers(widget.album.id, newUsers);
76+
await ref.read(remoteAlbumProvider.notifier).addUsers(_album.id, newUsers);
7577

7678
if (newUsers.isNotEmpty) {
7779
ImmichToast.show(
@@ -81,7 +83,7 @@ class _RemoteAlbumPageState extends ConsumerState<RemoteAlbumPage> {
8183
);
8284
}
8385

84-
ref.invalidate(remoteAlbumSharedUsersProvider(widget.album.id));
86+
ref.invalidate(remoteAlbumSharedUsersProvider(_album.id));
8587
} catch (e) {
8688
ImmichToast.show(
8789
context: context,
@@ -92,7 +94,7 @@ class _RemoteAlbumPageState extends ConsumerState<RemoteAlbumPage> {
9294
}
9395

9496
Future<void> toggleAlbumOrder() async {
95-
await ref.read(remoteAlbumProvider.notifier).toggleAlbumOrder(widget.album.id);
97+
await ref.read(remoteAlbumProvider.notifier).toggleAlbumOrder(_album.id);
9698

9799
ref.invalidate(timelineServiceProvider);
98100
}
@@ -106,7 +108,7 @@ class _RemoteAlbumPageState extends ConsumerState<RemoteAlbumPage> {
106108
content: Column(
107109
mainAxisSize: MainAxisSize.min,
108110
children: [
109-
Text('album_delete_confirmation'.t(context: context, args: {'album': widget.album.name})),
111+
Text('album_delete_confirmation'.t(context: context, args: {'album': _album.name})),
110112
const SizedBox(height: 8),
111113
Text('album_delete_confirmation_description'.t(context: context)),
112114
],
@@ -128,7 +130,7 @@ class _RemoteAlbumPageState extends ConsumerState<RemoteAlbumPage> {
128130

129131
if (confirmed == true) {
130132
try {
131-
await ref.read(remoteAlbumProvider.notifier).deleteAlbum(widget.album.id);
133+
await ref.read(remoteAlbumProvider.notifier).deleteAlbum(_album.id);
132134

133135
ImmichToast.show(
134136
context: context,
@@ -151,17 +153,20 @@ class _RemoteAlbumPageState extends ConsumerState<RemoteAlbumPage> {
151153
final result = await showDialog<_EditAlbumData?>(
152154
context: context,
153155
barrierDismissible: true,
154-
builder: (context) => _EditAlbumDialog(album: widget.album),
156+
builder: (context) => _EditAlbumDialog(album: _album),
155157
);
156158

157159
if (result != null && context.mounted) {
160+
setState(() {
161+
_album = _album.copyWith(name: result.name, description: result.description ?? '');
162+
});
158163
HapticFeedback.mediumImpact();
159164
}
160165
}
161166

162167
void showOptionSheet(BuildContext context) {
163168
final user = ref.watch(currentUserProvider);
164-
final isOwner = user != null ? user.id == widget.album.ownerId : false;
169+
final isOwner = user != null ? user.id == _album.ownerId : false;
165170

166171
showModalBottomSheet(
167172
context: context,
@@ -205,7 +210,7 @@ class _RemoteAlbumPageState extends ConsumerState<RemoteAlbumPage> {
205210
return ProviderScope(
206211
overrides: [
207212
timelineServiceProvider.overrideWith((ref) {
208-
final timelineService = ref.watch(timelineFactoryProvider).remoteAlbum(albumId: widget.album.id);
213+
final timelineService = ref.watch(timelineFactoryProvider).remoteAlbum(albumId: _album.id);
209214
ref.onDispose(timelineService.dispose);
210215
return timelineService;
211216
}),
@@ -217,7 +222,7 @@ class _RemoteAlbumPageState extends ConsumerState<RemoteAlbumPage> {
217222
onToggleAlbumOrder: () => toggleAlbumOrder(),
218223
onEditTitle: () => showEditTitleAndDescription(context),
219224
),
220-
bottomSheet: RemoteAlbumBottomSheet(album: widget.album),
225+
bottomSheet: RemoteAlbumBottomSheet(album: _album),
221226
),
222227
);
223228
}

mobile/lib/presentation/widgets/album/album_selector.widget.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import 'package:immich_mobile/models/albums/album_search.model.dart';
1414
import 'package:immich_mobile/pages/common/large_leading_tile.dart';
1515
import 'package:immich_mobile/presentation/widgets/images/thumbnail.widget.dart';
1616
import 'package:immich_mobile/providers/infrastructure/album.provider.dart';
17+
import 'package:immich_mobile/providers/infrastructure/current_album.provider.dart';
1718
import 'package:immich_mobile/providers/timeline/multiselect.provider.dart';
1819
import 'package:immich_mobile/providers/user.provider.dart';
1920
import 'package:immich_mobile/routing/router.dart';
@@ -578,6 +579,7 @@ class AddToAlbumHeader extends ConsumerWidget {
578579
return;
579580
}
580581

582+
ref.read(currentRemoteAlbumProvider.notifier).setAlbum(newAlbum);
581583
context.pushRoute(RemoteAlbumRoute(album: newAlbum));
582584
}
583585

0 commit comments

Comments
 (0)