mirror of
https://github.com/immich-app/immich
synced 2025-10-17 18:19:27 +00:00
chore: realized I could just pull from the timelineProvider instead of storing it in the asset viewer state
This commit is contained in:
parent
268867353b
commit
b397538478
5 changed files with 7 additions and 21 deletions
|
|
@ -61,9 +61,8 @@ class AssetViewer extends ConsumerStatefulWidget {
|
|||
@override
|
||||
ConsumerState createState() => _AssetViewerState();
|
||||
|
||||
static void setAsset(WidgetRef ref, BaseAsset asset, TimelineType timelineType) {
|
||||
static void setAsset(WidgetRef ref, BaseAsset asset) {
|
||||
ref.read(assetViewerProvider.notifier).reset();
|
||||
ref.read(assetViewerProvider.notifier).setTimelineType(timelineType);
|
||||
_setAsset(ref, asset);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
import 'package:immich_mobile/domain/models/asset/base_asset.model.dart';
|
||||
import 'package:immich_mobile/domain/services/timeline.service.dart';
|
||||
import 'package:immich_mobile/domain/utils/event_stream.dart';
|
||||
import 'package:immich_mobile/providers/asset_viewer/video_player_controls_provider.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
|
@ -18,7 +17,6 @@ class AssetViewerState {
|
|||
final bool showingControls;
|
||||
final BaseAsset? currentAsset;
|
||||
final int stackIndex;
|
||||
final TimelineType timelineType;
|
||||
|
||||
const AssetViewerState({
|
||||
this.backgroundOpacity = 255,
|
||||
|
|
@ -26,7 +24,6 @@ class AssetViewerState {
|
|||
this.showingControls = true,
|
||||
this.currentAsset,
|
||||
this.stackIndex = 0,
|
||||
this.timelineType = TimelineType.main,
|
||||
});
|
||||
|
||||
AssetViewerState copyWith({
|
||||
|
|
@ -35,7 +32,6 @@ class AssetViewerState {
|
|||
bool? showingControls,
|
||||
BaseAsset? currentAsset,
|
||||
int? stackIndex,
|
||||
TimelineType? timelineType,
|
||||
}) {
|
||||
return AssetViewerState(
|
||||
backgroundOpacity: backgroundOpacity ?? this.backgroundOpacity,
|
||||
|
|
@ -43,7 +39,6 @@ class AssetViewerState {
|
|||
showingControls: showingControls ?? this.showingControls,
|
||||
currentAsset: currentAsset ?? this.currentAsset,
|
||||
stackIndex: stackIndex ?? this.stackIndex,
|
||||
timelineType: timelineType ?? this.timelineType,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -124,13 +119,6 @@ class AssetViewerStateNotifier extends Notifier<AssetViewerState> {
|
|||
}
|
||||
state = state.copyWith(stackIndex: index);
|
||||
}
|
||||
|
||||
void setTimelineType(TimelineType type) {
|
||||
if (type == state.timelineType) {
|
||||
return;
|
||||
}
|
||||
state = state.copyWith(timelineType: type);
|
||||
}
|
||||
}
|
||||
|
||||
final assetViewerProvider = NotifierProvider<AssetViewerStateNotifier, AssetViewerState>(AssetViewerStateNotifier.new);
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import 'package:immich_mobile/providers/cast.provider.dart';
|
|||
import 'package:immich_mobile/providers/infrastructure/asset_viewer/current_asset.provider.dart';
|
||||
import 'package:immich_mobile/providers/infrastructure/current_album.provider.dart';
|
||||
import 'package:immich_mobile/providers/infrastructure/readonly_mode.provider.dart';
|
||||
import 'package:immich_mobile/providers/infrastructure/timeline.provider.dart';
|
||||
import 'package:immich_mobile/providers/routes.provider.dart';
|
||||
import 'package:immich_mobile/providers/user.provider.dart';
|
||||
import 'package:immich_mobile/routing/router.dart';
|
||||
|
|
@ -39,7 +40,7 @@ class ViewerTopAppBar extends ConsumerWidget implements PreferredSizeWidget {
|
|||
final isInLockedView = ref.watch(inLockedViewProvider);
|
||||
final isReadonlyModeEnabled = ref.watch(readonlyModeProvider);
|
||||
|
||||
final timelineType = ref.read(assetViewerProvider).timelineType;
|
||||
final timelineType = ref.read(timelineServiceProvider).type;
|
||||
final showViewInTimelineButton =
|
||||
timelineType != TimelineType.main &&
|
||||
timelineType != TimelineType.deepLink &&
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ import 'package:immich_mobile/presentation/widgets/timeline/timeline.state.dart'
|
|||
import 'package:immich_mobile/presentation/widgets/timeline/timeline_drag_region.dart';
|
||||
import 'package:immich_mobile/providers/asset_viewer/is_motion_video_playing.provider.dart';
|
||||
import 'package:immich_mobile/providers/haptic_feedback.provider.dart';
|
||||
import 'package:immich_mobile/providers/infrastructure/readonly_mode.provider.dart';
|
||||
import 'package:immich_mobile/providers/infrastructure/timeline.provider.dart';
|
||||
import 'package:immich_mobile/providers/infrastructure/readonly_mode.provider.dart';
|
||||
import 'package:immich_mobile/providers/timeline/multiselect.provider.dart';
|
||||
import 'package:immich_mobile/routing/router.dart';
|
||||
|
||||
|
|
@ -134,7 +134,6 @@ class _FixedSegmentRow extends ConsumerWidget {
|
|||
key: ValueKey(Object.hash(assets[i].heroTag, assetIndex + i, timelineService.hashCode)),
|
||||
asset: assets[i],
|
||||
assetIndex: assetIndex + i,
|
||||
timelineType: timelineService.type,
|
||||
),
|
||||
),
|
||||
],
|
||||
|
|
@ -145,9 +144,8 @@ class _FixedSegmentRow extends ConsumerWidget {
|
|||
class _AssetTileWidget extends ConsumerWidget {
|
||||
final BaseAsset asset;
|
||||
final int assetIndex;
|
||||
final TimelineType timelineType;
|
||||
|
||||
const _AssetTileWidget({super.key, required this.asset, required this.assetIndex, required this.timelineType});
|
||||
const _AssetTileWidget({super.key, required this.asset, required this.assetIndex});
|
||||
|
||||
Future _handleOnTap(BuildContext ctx, WidgetRef ref, int assetIndex, BaseAsset asset, int? heroOffset) async {
|
||||
final multiSelectState = ref.read(multiSelectProvider);
|
||||
|
|
@ -157,7 +155,7 @@ class _AssetTileWidget extends ConsumerWidget {
|
|||
} else {
|
||||
await ref.read(timelineServiceProvider).loadAssets(assetIndex, 1);
|
||||
ref.read(isPlayingMotionVideoProvider.notifier).playing = false;
|
||||
AssetViewer.setAsset(ref, asset, timelineType);
|
||||
AssetViewer.setAsset(ref, asset);
|
||||
ctx.pushRoute(
|
||||
AssetViewerRoute(
|
||||
initialIndex: assetIndex,
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ class DeepLinkService {
|
|||
return null;
|
||||
}
|
||||
|
||||
AssetViewer.setAsset(ref, asset, TimelineType.deepLink);
|
||||
AssetViewer.setAsset(ref, asset);
|
||||
return AssetViewerRoute(
|
||||
initialIndex: 0,
|
||||
timelineService: _betaTimelineFactory.fromAssets([asset], TimelineType.deepLink),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue