remove debug logs

pull/24573/head
timonrieger 2025-12-17 16:42:12 +01:00 committed by Timon
parent 30073b1411
commit 7993848c76
5 changed files with 11 additions and 129 deletions

View File

@ -24,13 +24,6 @@ class PhotosPage extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
// #region agent log
final mq = MediaQuery.of(context);
// Use debugPrint to avoid potential throttling differences vs print across platforms.
debugPrint(
'AGENT_LOG PhotosPage.build w=${mq.size.width} h=${mq.size.height} orientation=${mq.orientation} route=${ModalRoute.of(context)?.settings.name}',
);
// #endregion
final currentUser = ref.watch(currentUserProvider);
final timelineUsers = ref.watch(timelineUsersIdsProvider);
final tipOneOpacity = useState(0.0);

View File

@ -85,20 +85,11 @@ class Timeline extends StatelessWidget {
@override
Widget build(BuildContext context) {
// #region agent log
final mq = MediaQuery.of(context);
debugPrint('AGENT_LOG Timeline.build w=${mq.size.width} h=${mq.size.height} orientation=${mq.orientation}');
// #endregion
return Scaffold(
resizeToAvoidBottomInset: false,
floatingActionButton: const DownloadStatusFloatingButton(),
body: LayoutBuilder(
builder: (_, constraints) {
// #region agent log
debugPrint(
'AGENT_LOG Timeline.LayoutBuilder constraintsMaxWidth=${constraints.maxWidth} constraintsMaxHeight=${constraints.maxHeight}',
);
// #endregion
return ProviderScope(
overrides: [
// Make TimelineArgs dynamic: dependent widgets will rebuild when _runtimeTimelineArgsProvider changes.
@ -119,20 +110,10 @@ class Timeline extends StatelessWidget {
if (current != desired) {
final rowAnchor = ref.read(_timelineAnchorRowProvider);
// #region agent log
debugPrint(
'AGENT_LOG Timeline.constraintsChange captureAnchor rowAnchor=$rowAnchor currentArgs={w=${current.maxWidth},h=${current.maxHeight},c=${current.columnCount}} desiredArgs={w=${desired.maxWidth},h=${desired.maxHeight},c=${desired.columnCount}}',
);
// #endregion
// Update after this frame (avoid mutating provider state during widget build).
WidgetsBinding.instance.addPostFrameCallback((_) {
final latest = ref.read(_runtimeTimelineArgsProvider);
if (latest != desired) {
// #region agent log
debugPrint(
'AGENT_LOG runtimeTimelineArgs.update from {w=${latest.maxWidth},h=${latest.maxHeight},c=${latest.columnCount}} to {w=${desired.maxWidth},h=${desired.maxHeight},c=${desired.columnCount}}',
);
// #endregion
ref.read(_runtimeTimelineArgsProvider.notifier).state = desired;
}
// Set pending restore after updating args (also deferred to avoid build-time modification)
@ -203,19 +184,9 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> {
@override
void initState() {
super.initState();
// #region agent log
debugPrint(
'AGENT_LOG _SliverTimelineState.initState stateHash=${identityHashCode(this)} initialScrollOffset=${widget.initialScrollOffset ?? 0.0}',
);
// #endregion
_scrollController = ScrollController(
initialScrollOffset: widget.initialScrollOffset ?? 0.0,
onAttach: (position) {
// #region agent log
debugPrint(
'AGENT_LOG _SliverTimelineState.scrollController.onAttach stateHash=${identityHashCode(this)} restoredOffset=${position.pixels} hasPendingRowAnchor=$_hasPendingRowAnchorRestore',
);
// #endregion
// Add scroll listener to continuously update row anchor (similar to web's updateIntersections)
_scrollController.addListener(_onScroll);
_restoreScalePosition(position);
@ -223,11 +194,6 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> {
},
onDetach: (position) {
_scrollController.removeListener(_onScroll);
// #region agent log
debugPrint(
'AGENT_LOG _SliverTimelineState.scrollController.onDetach stateHash=${identityHashCode(this)} lastOffset=${position.pixels}',
);
// #endregion
},
);
_eventSubscription = EventStream.shared.listen(_onEvent);
@ -242,9 +208,6 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> {
// When constraints change (rotation), restore the top-of-viewport anchor asset index after new layout is computed.
ref.listenManual(_timelinePendingRestoreAssetIndexProvider, (_, next) {
if (next == null) return;
// #region agent log
debugPrint('AGENT_LOG _SliverTimelineState.pendingRestore received assetIndex=$next');
// #endregion
_scaleRestoreAssetIndex = next;
_restoreScalePosition(null);
// Clear so we don't re-run.
@ -254,9 +217,6 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> {
// When constraints change (rotation), restore the row anchor after new layout is computed.
ref.listenManual(_timelinePendingRestoreRowAnchorProvider, (_, next) {
if (next == null) return;
// #region agent log
debugPrint('AGENT_LOG _SliverTimelineState.pendingRestoreRowAnchor received rowAnchor=$next');
// #endregion
_pendingRestoreRowAnchor = next;
_hasPendingRowAnchorRestore = true;
_restoreRowAnchor();
@ -292,11 +252,6 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> {
if (!mounted || !_scrollController.hasClients) return;
final max = _scrollController.position.maxScrollExtent;
final clamped = targetOffset.clamp(0.0, max);
// #region agent log
debugPrint(
'AGENT_LOG _SliverTimelineState.segmentsChanged autoAdjust fallback clampedRowIndex=$clampedRowIndex targetOffset=$targetOffset clamped=$clamped',
);
// #endregion
_scrollController.jumpTo(clamped);
});
return;
@ -311,11 +266,6 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> {
// Only adjust if the current scroll position doesn't match the target
final currentOffset = _scrollController.offset;
if ((clamped - currentOffset).abs() > 1.0) {
// #region agent log
debugPrint(
'AGENT_LOG _SliverTimelineState.segmentsChanged autoAdjust rowIndex=${currentAnchor.rowIndex} deltaPx=${currentAnchor.deltaPx} currentOffset=$currentOffset targetOffset=$targetOffset clamped=$clamped',
);
// #endregion
_scrollController.jumpTo(clamped);
}
});
@ -416,11 +366,6 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> {
if (!mounted || !_scrollController.hasClients) return;
final max = _scrollController.position.maxScrollExtent;
final clamped = targetOffset.clamp(0.0, max);
// #region agent log
debugPrint(
'AGENT_LOG _SliverTimelineState._restoreRowAnchor clampedRowIndex=$clampedRowIndex targetOffset=$targetOffset clamped=$clamped',
);
// #endregion
_scrollController.jumpTo(clamped);
_hasPendingRowAnchorRestore = false;
_pendingRestoreRowAnchor = null;
@ -434,11 +379,6 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> {
if (!mounted || !_scrollController.hasClients) return;
final max = _scrollController.position.maxScrollExtent;
final clamped = targetOffset.clamp(0.0, max);
// #region agent log
debugPrint(
'AGENT_LOG _SliverTimelineState._restoreRowAnchor rowIndex=${rowAnchor.rowIndex} deltaPx=${rowAnchor.deltaPx} targetOffset=$targetOffset clamped=$clamped',
);
// #endregion
_scrollController.jumpTo(clamped);
_hasPendingRowAnchorRestore = false;
_pendingRestoreRowAnchor = null;
@ -561,13 +501,6 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> {
@override
Widget build(BuildContext _) {
// #region agent log
final mq = MediaQuery.of(context);
final args = ref.watch(timelineArgsProvider);
debugPrint(
'AGENT_LOG _SliverTimelineState.build w=${mq.size.width} h=${mq.size.height} orientation=${mq.orientation} args.maxWidth=${args.maxWidth} args.maxHeight=${args.maxHeight} args.columnCount=${args.columnCount} localPerRow=$_perRow scrollHasClients=${_scrollController.hasClients} scrollOffset=${_scrollController.hasClients ? _scrollController.offset : null}',
);
// #endregion
final asyncSegments = ref.watch(timelineSegmentProvider);
final maxHeight = ref.watch(timelineArgsProvider.select((args) => args.maxHeight));
final isSelectionMode = ref.watch(multiSelectProvider.select((s) => s.forceEnable));

View File

@ -64,13 +64,6 @@ class ImmichAssetGrid extends HookConsumerWidget {
final scaleFactor = useState(7.0 - perRow.value);
final baseScaleFactor = useState(7.0 - perRow.value);
// #region agent log
final mq = MediaQuery.of(context);
debugPrint(
'AGENT_LOG ImmichAssetGrid.build w=${mq.size.width} h=${mq.size.height} orientation=${mq.orientation} assetsPerRowProp=$assetsPerRow perRowState=${perRow.value} margin=$margin shrinkWrap=$shrinkWrap',
);
// #endregion
/// assets need different hero tags across tabs / modals
/// otherwise, hero animations are performed across tabs (looks buggy!)
int heroOffset() {
@ -98,9 +91,6 @@ class ImmichAssetGrid extends HookConsumerWidget {
if (7 - scaleFactor.value.toInt() != perRow.value) {
perRow.value = 7 - scaleFactor.value.toInt();
settings.setSetting(AppSettingsEnum.tilesPerRow, perRow.value);
// #region agent log
debugPrint('AGENT_LOG ImmichAssetGrid.scale.onUpdate perRowChanged=${perRow.value}');
// #endregion
}
};
},

View File

@ -310,11 +310,6 @@ class ImmichAssetGridViewState extends ConsumerState<ImmichAssetGridView> {
@override
void didUpdateWidget(ImmichAssetGridView oldWidget) {
super.didUpdateWidget(oldWidget);
// #region agent log
debugPrint(
'AGENT_LOG ImmichAssetGridViewState.didUpdateWidget oldAssetsPerRow=${oldWidget.assetsPerRow} newAssetsPerRow=${widget.assetsPerRow}',
);
// #endregion
if (!widget.selectionActive) {
setState(() {
_selectedAssets.clear();
@ -498,12 +493,6 @@ class ImmichAssetGridViewState extends ConsumerState<ImmichAssetGridView> {
@override
Widget build(BuildContext context) {
// #region agent log
final mq = MediaQuery.of(context);
debugPrint(
'AGENT_LOG ImmichAssetGridViewState.build assetsPerRow=${widget.assetsPerRow} w=${mq.size.width} h=${mq.size.height} orientation=${mq.orientation} route=${ModalRoute.of(context)?.settings.name}',
);
// #endregion
return PopScope(
canPop: !(widget.selectionActive && _selectedAssets.isNotEmpty),
onPopInvokedWithResult: (didPop, _) {
@ -615,11 +604,6 @@ class _Section extends StatelessWidget {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, constraints) {
// #region agent log
debugPrint(
'AGENT_LOG _Section.build constraintsMaxWidth=${constraints.maxWidth} constraintsMaxHeight=${constraints.maxHeight} assetsPerRow=$assetsPerRow margin=$margin sectionCount=${section.count} sectionType=${section.type}',
);
// #endregion
final width = constraints.maxWidth / assetsPerRow - margin * (assetsPerRow - 1) / assetsPerRow;
final rows = (section.count + assetsPerRow - 1) ~/ assetsPerRow;
final List<Asset> assetsToRender = scrolling ? [] : renderList.loadAssets(section.offset, section.count);
@ -771,11 +755,6 @@ class _AssetRow extends StatelessWidget {
@override
Widget build(BuildContext context) {
// #region agent log
debugPrint(
'AGENT_LOG _AssetRow.build assetsLen=${assets.length} width=$width assetsPerRow=$assetsPerRow dynamicLayout=$dynamicLayout margin=$margin absoluteOffset=$absoluteOffset',
);
// #endregion
// Default: All assets have the same width
final widthDistribution = List.filled(assets.length, 1.0);

View File

@ -71,12 +71,6 @@ class MultiselectGrid extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
// #region agent log
final mq = MediaQuery.of(context);
debugPrint(
'AGENT_LOG MultiselectGrid.build w=${mq.size.width} h=${mq.size.height} orientation=${mq.orientation} route=${ModalRoute.of(context)?.settings.name}',
);
// #endregion
final multiselectEnabled = ref.watch(multiselectProvider.notifier);
final selectionEnabledHook = useState(false);
final selectionAssetState = useState(const AssetSelectionState());
@ -414,24 +408,17 @@ class MultiselectGrid extends HookConsumerWidget {
ref
.watch(renderListProvider)
.when(
data: (data) {
// #region agent log
debugPrint(
'AGENT_LOG MultiselectGrid.renderList.when(data) isEmpty=${data.isEmpty} elements=${data.elements.length} totalAssets=${data.totalAssets}',
);
// #endregion
return data.isEmpty && (buildLoadingIndicator != null || topWidget == null)
? (buildLoadingIndicator ?? buildEmptyIndicator)()
: ImmichAssetGrid(
renderList: data,
listener: selectionListener,
selectionActive: selectionEnabledHook.value,
onRefresh: onRefresh == null ? null : wrapLongRunningFun(onRefresh!, showOverlay: false),
topWidget: topWidget,
showStack: stackEnabled,
showDragScrollLabel: dragScrollLabelEnabled,
);
},
data: (data) => data.isEmpty && (buildLoadingIndicator != null || topWidget == null)
? (buildLoadingIndicator ?? buildEmptyIndicator)()
: ImmichAssetGrid(
renderList: data,
listener: selectionListener,
selectionActive: selectionEnabledHook.value,
onRefresh: onRefresh == null ? null : wrapLongRunningFun(onRefresh!, showOverlay: false),
topWidget: topWidget,
showStack: stackEnabled,
showDragScrollLabel: dragScrollLabelEnabled,
),
error: (error, _) => Center(child: Text(error.toString())),
loading: buildLoadingIndicator ?? buildDefaultLoadingIndicator,
),