remove debug logs
parent
30073b1411
commit
7993848c76
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
};
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
),
|
||||
|
|
|
|||
Loading…
Reference in New Issue