hunk.code_window:         child: Builder(
             builder: (context) {
               if (controller == null) {
                 return Stack(
                   children: [
                     if (placeholder != null) SizedBox.expand(child: placeholder!),
                     const DelayedLoadingIndicator(
                       fadeInDuration: Duration(milliseconds: 500),
                     ),
                   ],
                 );
               }
  
hunk.labels: keep keep keep keep keep replace replace replace keep keep keep keep
hunk.after_edit:                   if (placeholder != null) placeholder!,
                     const Positioned.fill(
                       child: Center(
                         child: DelayedLoadingIndicator(
                           fadeInDuration: Duration(milliseconds: 500),
                         ),
                       ),
  
hunk.file_path: mobile/lib/modules/asset_viewer/views/video_viewer_page.dart
hunk.type: replace
file: import 'package:flutter/material.dart';
  import 'package:immich_mobile/shared/ui/immich_loading_indicator.dart';
  
  class DelayedLoadingIndicator extends StatelessWidget {
    /// The delay to avoid showing the loading indicator
    final Duration delay;
  
    /// Defaults to using the [ImmichLoadingIndicator]
    final Widget? child;
  
    /// An optional fade in duration to animate the loading
    final Duration? fadeInDuration;
  
    const DelayedLoadingIndicator({
      super.key,
      this.delay = const Duration(seconds: 3),
      this.child,
      this.fadeInDuration,
    });
  
    @override
    Widget build(BuildContext context) {
      return AnimatedSwitcher(
        duration: fadeInDuration ?? Duration.zero,
        child: FutureBuilder(
          future: Future.delayed(delay),
          builder: (context, snapshot) {
            if (snapshot.connectionState == ConnectionState.done) {
              return child ??
                  const ImmichLoadingIndicator(
                    key: ValueKey('loading'),
                  );
            }
  
            return Container(key: const ValueKey('hiding'));
          },
        ),
      );
    }
  }
  