From 566a682122a8438a656b72ec603e6ddaae90727c Mon Sep 17 00:00:00 2001 From: orionlee Date: Wed, 14 Nov 2018 12:20:20 -0800 Subject: episode cleanup 12 hour option - use hours internally part 1 (actual algorithm, no persistence) --- .../core/storage/APCleanupAlgorithm.java | 23 +++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'core/src/main/java/de/danoeh/antennapod') diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/APCleanupAlgorithm.java b/core/src/main/java/de/danoeh/antennapod/core/storage/APCleanupAlgorithm.java index 3bec93d29..1b446dd6f 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/storage/APCleanupAlgorithm.java +++ b/core/src/main/java/de/danoeh/antennapod/core/storage/APCleanupAlgorithm.java @@ -14,7 +14,6 @@ import java.util.concurrent.ExecutionException; import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.feed.FeedMedia; -import de.danoeh.antennapod.core.util.Converter; /** * Implementation of the EpisodeCleanupAlgorithm interface used by AntennaPod. @@ -24,10 +23,14 @@ public class APCleanupAlgorithm extends EpisodeCleanupAlgorithm { private static final String TAG = "APCleanupAlgorithm"; /** the number of days after playback to wait before an item is eligible to be cleaned up. Fractional for number of hours, e.g., 0.5 = 12 hours, 0.0416 = 1 hour. */ - private final float numberOfDaysAfterPlayback; + private final int numberOfHoursAfterPlayback; - public APCleanupAlgorithm(float numberOfDaysAfterPlayback) { - this.numberOfDaysAfterPlayback = numberOfDaysAfterPlayback; + public APCleanupAlgorithm(int numberOfHoursAfterPlayback) { + this.numberOfHoursAfterPlayback = numberOfHoursAfterPlayback; + } + + public APCleanupAlgorithm(float numberOfDaysAfterPlayback) { // TODO: temporary, until callers are migrated + this.numberOfHoursAfterPlayback = (int)(24 * numberOfDaysAfterPlayback); } /** @@ -82,7 +85,7 @@ public class APCleanupAlgorithm extends EpisodeCleanupAlgorithm { @VisibleForTesting Date calcMostRecentDateForDeletion(@NonNull Date currentDate) { - return minusDays(currentDate, numberOfDaysAfterPlayback); + return minusHours(currentDate, numberOfHoursAfterPlayback); } @NonNull @@ -116,17 +119,13 @@ public class APCleanupAlgorithm extends EpisodeCleanupAlgorithm { } @VisibleForTesting - public float getNumberOfDaysAfterPlayback() { return numberOfDaysAfterPlayback; } + public int getNumberOfHoursAfterPlayback() { return numberOfHoursAfterPlayback; } - private static Date minusDays(Date baseDate, float numberOfDays) { + private static Date minusHours(Date baseDate, int numberOfHours) { Calendar cal = Calendar.getInstance(); cal.setTime(baseDate); - int integral = (int)numberOfDays; - float fraction = numberOfDays - integral; - - cal.add(Calendar.DAY_OF_MONTH, -1 * integral); - cal.add(Calendar.HOUR_OF_DAY, -1 * Converter.numberOfDaysFloatToNumberOfHours(fraction)); + cal.add(Calendar.HOUR_OF_DAY, -1 * numberOfHours); return cal.getTime(); } -- cgit v1.2.3