Skip to content

Commit 88188a0

Browse files
committed
Refactor countdown logic to directly create notifications for The Rettington Companion integration
1 parent 88af10b commit 88188a0

2 files changed

Lines changed: 12 additions & 18 deletions

File tree

src/main/java/de/rettichlp/ucutils/common/integrations/TheRettingtonCompanionIntegration.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,17 @@
77
import de.rettichlp.ucutils.common.gui.widgets.MoneyWidget;
88
import de.rettichlp.ucutils.common.gui.widgets.PayDayWidget;
99
import de.rettichlp.ucutils.common.gui.widgets.ServiceCountWidget;
10-
import de.rettichlp.ucutils.common.models.Countdown;
1110

12-
import java.util.HashSet;
1311
import java.util.List;
1412
import java.util.Set;
1513

1614
import static de.rettichlp.ucutils.UCUtils.notificationService;
17-
import static de.rettichlp.ucutils.UCUtils.storage;
1815

1916
public class TheRettingtonCompanionIntegration implements TheRettingtonCompanionApi {
2017

2118
@Override
2219
public Set<Notification> getNotifications() {
23-
Set<Notification> notifications = new HashSet<>(notificationService.getNotifications());
24-
notifications.addAll(storage.getCountdowns().stream().map(Countdown::toWidget).toList());
25-
return notifications;
20+
return notificationService.getNotifications();
2621
}
2722

2823
@Override

src/main/java/de/rettichlp/ucutils/common/models/Countdown.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.time.LocalDateTime;
99

1010
import static de.rettichlp.ucutils.UCUtils.messageService;
11+
import static de.rettichlp.ucutils.UCUtils.notificationService;
1112
import static de.rettichlp.ucutils.UCUtils.storage;
1213
import static de.rettichlp.ucutils.UCUtils.utilService;
1314
import static java.time.Duration.between;
@@ -29,17 +30,7 @@ public Countdown(String title, Duration duration, Runnable runAfter) {
2930
this.title = title;
3031
this.duration = duration;
3132

32-
storage.getCountdowns().add(this);
33-
34-
utilService.delayedAction(runAfter, this.duration.toMillis());
35-
}
36-
37-
public Duration getRemainingDuration() {
38-
return between(now(), this.startTime.plus(this.duration));
39-
}
40-
41-
public Notification toWidget() {
42-
return Notification.builder()
33+
Notification countdownNotification = Notification.builder()
4334
.componentSupplier(() -> {
4435
String millisToFriendlyString = messageService.millisToFriendlyString(getRemainingDuration().toMillis());
4536

@@ -48,7 +39,15 @@ public Notification toWidget() {
4839
.append(literal(":").withStyle(GRAY)).append(" ")
4940
.append(literal(millisToFriendlyString));
5041
})
51-
.displayDuration(this.duration)
42+
.displayDuration(duration)
5243
.build();
44+
45+
storage.getCountdowns().add(this);
46+
notificationService.getNotifications().add(countdownNotification);
47+
utilService.delayedAction(runAfter, this.duration.toMillis());
48+
}
49+
50+
public Duration getRemainingDuration() {
51+
return between(now(), this.startTime.plus(this.duration));
5352
}
5453
}

0 commit comments

Comments
 (0)