Skip to content

Commit

Permalink
Fix
Browse files Browse the repository at this point in the history
  • Loading branch information
bannzai committed Jan 15, 2025
1 parent 052c82a commit 5d7fab8
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 19 deletions.
42 changes: 26 additions & 16 deletions lib/entity/pill_sheet_group.codegen.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:math';

import 'package:collection/collection.dart';
import 'package:flutter/material.dart';
import 'package:pilll/entity/firestore_timestamp_converter.dart';
Expand Down Expand Up @@ -258,11 +260,6 @@ extension PillSheetGroupDisplayDomain on PillSheetGroup {
required int pageIndex,
required int pillNumberInPillSheet,
}) {
if (pageIndex == 0 && pillNumberInPillSheet == 1) {
final result = pillNumbersForSequential.where((e) => e.pillSheet.groupIndex == pageIndex).toList()[pillNumberInPillSheet - 1].number;
debugPrint("result: $result");
return result;
}
return pillNumbersForSequential.where((e) => e.pillSheet.groupIndex == pageIndex).toList()[pillNumberInPillSheet - 1].number;
}

Expand Down Expand Up @@ -339,25 +336,38 @@ extension PillSheetGroupPillNumberDomain on PillSheetGroup {

final displayNumberSetting = this.displayNumberSetting;
if (displayNumberSetting != null) {
final beginPillNumberOffset = displayNumberSetting.beginPillNumber;
if (beginPillNumberOffset != null && beginPillNumberOffset > 0) {
pillMarks = pillMarks.map((e) => e.copyWith(number: e.number + beginPillNumberOffset - 1)).toList();
final beginPillNumber = displayNumberSetting.beginPillNumber;
if (beginPillNumber != null && beginPillNumber > 0) {
pillMarks = pillMarks.map((e) => e.copyWith(number: e.number + beginPillNumber - 1)).toList();
}

final endPillNumberOffset = displayNumberSetting.endPillNumber;
if (endPillNumberOffset != null && endPillNumberOffset > 0) {
final endPillNumberOffsetIndexes = pillMarks.indexed.where((e) => e.$2.number % endPillNumberOffset == 0).map((e) => e.$1);
final beginPillNumberOffsetIndexes = endPillNumberOffsetIndexes.map((e) => e + 1).toList();
for (int beginPillNumberOffsetIndex in beginPillNumberOffsetIndexes) {
if (beginPillNumberOffsetIndex < pillMarks.length) {
for (final (sublistIndex, (pillMarkIndex, pillMark)) in pillMarks.indexed.toList().sublist(beginPillNumberOffsetIndex).indexed.toList()) {
pillMarks[pillMarkIndex] = pillMark.copyWith(number: sublistIndex + 1);
final endPillNumber = displayNumberSetting.endPillNumber;
if (endPillNumber != null && endPillNumber > 0) {
final copiedPillMarks = [...pillMarks];
final slices = copiedPillMarks.indexed.slices(endPillNumber);
debugPrint('slices.length: ${slices.length}');
for (final (sliceIndex, elements) in slices.indexed) {
for (final (pillMarkIndex, pillMark) in elements) {
if (endPillNumber < pillMark.number) {
if (beginPillNumber != null) {
final beginPillNumberOffset = beginPillNumber - 1;
final number = pillMark.number % endPillNumber + (beginPillNumberOffset * sliceIndex);
debugPrint(
'number: $number, endPillNumber: $endPillNumber, pillMark.number: ${pillMark.number}, sliceIndex: $sliceIndex, date: ${pillMark.date}');
pillMarks[pillMarkIndex] = pillMark.copyWith(number: number);
} else {
final number = pillMark.number % endPillNumber;
debugPrint(
'number: $number, endPillNumber: $endPillNumber, pillMark.number: ${pillMark.number}, sliceIndex: $sliceIndex, date: ${pillMark.date}');
pillMarks[pillMarkIndex] = pillMark.copyWith(number: number);
}
}
}
}
}
}

debugPrint(pillMarks.map((e) => '${e.date} ${e.number}').join("\n"));
return pillMarks;
}

Expand Down
4 changes: 2 additions & 2 deletions test/entity/pill_sheet_group_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ void main() {
displayNumberSetting: const PillSheetGroupDisplayNumberSetting(beginPillNumber: 2, endPillNumber: 28),
pillSheetAppearanceMode: PillSheetAppearanceMode.sequential,
);
expect(pillSheetGroup.lastTakenPillNumberWithoutDate, 28);
expect(pillSheetGroup.lastTakenPillNumberWithoutDate, 2);
});
});
});
Expand Down Expand Up @@ -756,7 +756,7 @@ void main() {
displayNumberSetting: const PillSheetGroupDisplayNumberSetting(beginPillNumber: 2, endPillNumber: 28),
pillSheetAppearanceMode: PillSheetAppearanceMode.sequential,
);
expect(pillSheetGroup.sequentialTodayPillNumber, 2);
expect(pillSheetGroup.sequentialTodayPillNumber, 3);
});
});
});
Expand Down
2 changes: 1 addition & 1 deletion test/features/record/provider/revert_take_pill_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -552,7 +552,7 @@ void main() {
lastTakenDate: mockToday.subtract(const Duration(days: 4)),
),
pillSheet2.copyWith(
lastTakenDate: pillSheet2.beginingDate.subtract(const Duration(days: 1)),
lastTakenDate: null,
restDurations: [],
)
],
Expand Down

0 comments on commit 5d7fab8

Please sign in to comment.