1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import 'package:flutter/material.dart';
- import 'package:hooks_riverpod/hooks_riverpod.dart';
- import 'package:immich_mobile/extensions/build_context_extensions.dart';
- import 'package:immich_mobile/modules/backup/providers/ios_background_settings.provider.dart';
- import 'package:intl/intl.dart';
- /// This is a simple debug widget which should be removed later on when we are
- /// more confident about background sync
- class IosDebugInfoTile extends HookConsumerWidget {
- final IOSBackgroundSettings settings;
- const IosDebugInfoTile({
- super.key,
- required this.settings,
- });
- @override
- Widget build(BuildContext context, WidgetRef ref) {
- final fetch = settings.timeOfLastFetch;
- final processing = settings.timeOfLastProcessing;
- final processes = settings.numberOfBackgroundTasksQueued;
- final processOrProcesses = processes == 1 ? 'process' : 'processes';
- final numberOrZero = processes == 0 ? 'No' : processes.toString();
- final title = '$numberOrZero background $processOrProcesses queued';
- final df = DateFormat.yMd().add_jm();
- final String subtitle;
- if (fetch == null && processing == null) {
- subtitle = 'No background sync job has run yet';
- } else if (fetch != null && processing == null) {
- subtitle = 'Fetch ran ${df.format(fetch)}';
- } else if (processing != null && fetch == null) {
- subtitle = 'Processing ran ${df.format(processing)}';
- } else {
- final fetchOrProcessing =
- fetch!.isAfter(processing!) ? fetch : processing;
- subtitle = 'Last sync ${df.format(fetchOrProcessing)}';
- }
- return ListTile(
- key: ValueKey(title),
- title: Text(
- title,
- style: TextStyle(
- fontWeight: FontWeight.bold,
- fontSize: 14,
- color: context.primaryColor,
- ),
- ),
- subtitle: Text(
- subtitle,
- style: const TextStyle(
- fontSize: 14,
- ),
- ),
- leading: Icon(
- Icons.bug_report,
- color: context.primaryColor,
- ),
- );
- }
- }
|