diff options
author | orionlee <orionlee@yahoo.com> | 2018-11-14 12:20:20 -0800 |
---|---|---|
committer | orionlee <orionlee@yahoo.com> | 2019-01-04 10:33:25 -0800 |
commit | 566a682122a8438a656b72ec603e6ddaae90727c (patch) | |
tree | 777dd0a957ab5173a100b21c93aa16dc70f79f09 /core/src/main/java/de | |
parent | 4ff5690341d6969f73010003d28b7a9e0d31f0c8 (diff) | |
download | AntennaPod-566a682122a8438a656b72ec603e6ddaae90727c.zip |
episode cleanup 12 hour option - use hours internally part 1 (actual algorithm, no persistence)
Diffstat (limited to 'core/src/main/java/de')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/storage/APCleanupAlgorithm.java | 23 |
1 files changed, 11 insertions, 12 deletions
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(); } |