diff --git a/app/src/main/java/org/wikipedia/feed/aggregated/AggregatedFeedContentClient.kt b/app/src/main/java/org/wikipedia/feed/aggregated/AggregatedFeedContentClient.kt index 148f63a712a..5913fbd4594 100644 --- a/app/src/main/java/org/wikipedia/feed/aggregated/AggregatedFeedContentClient.kt +++ b/app/src/main/java/org/wikipedia/feed/aggregated/AggregatedFeedContentClient.kt @@ -135,7 +135,7 @@ class AggregatedFeedContentClient { private fun requestAggregated() { aggregatedClient.clientJob?.cancel() - val date = DateUtil.getUtcRequestDateFor(age) + val (year, month, day) = DateUtil.getYearMonthAndDayForAge(age) aggregatedClient.clientJob = coroutineScope.launch( CoroutineExceptionHandler { _, caught -> L.v(caught) @@ -146,7 +146,7 @@ class AggregatedFeedContentClient { val deferredResponses = WikipediaApp.instance.languageState.appLanguageCodes.map { langCode -> async { val wikiSite = WikiSite.forLanguageCode(langCode) - val feedContentResponse = ServiceFactory.getRest(wikiSite).getFeedFeatured(date.year, date.month, date.day, langCode) + val feedContentResponse = ServiceFactory.getRest(wikiSite).getFeedFeatured(year, month, day, langCode) feedContentResponse.randomOnThisDayEvent = feedContentResponse.onthisday?.random() diff --git a/app/src/main/java/org/wikipedia/feed/model/UtcDate.kt b/app/src/main/java/org/wikipedia/feed/model/UtcDate.kt deleted file mode 100644 index 43880cb7c46..00000000000 --- a/app/src/main/java/org/wikipedia/feed/model/UtcDate.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.wikipedia.feed.model - -import java.util.Calendar -import java.util.TimeZone - -class UtcDate(private val age: Int) { - - val baseCalendar: Calendar - get() = Calendar.getInstance(TimeZone.getTimeZone("UTC")).also { - it.add(Calendar.DATE, -age) - } - - val year get() = baseCalendar[Calendar.YEAR].toString() - - val month get() = (baseCalendar[Calendar.MONTH] + 1).toString().padStart(2, '0') - - val day get() = baseCalendar[Calendar.DATE].toString().padStart(2, '0') -} diff --git a/app/src/main/java/org/wikipedia/feed/news/NewsCard.kt b/app/src/main/java/org/wikipedia/feed/news/NewsCard.kt index 2078b0b1b6e..d2836de131c 100644 --- a/app/src/main/java/org/wikipedia/feed/news/NewsCard.kt +++ b/app/src/main/java/org/wikipedia/feed/news/NewsCard.kt @@ -3,10 +3,9 @@ package org.wikipedia.feed.news import org.wikipedia.R import org.wikipedia.dataclient.WikiSite import org.wikipedia.feed.model.CardType -import org.wikipedia.feed.model.UtcDate import org.wikipedia.feed.model.WikiSiteCard +import org.wikipedia.util.DateUtil import org.wikipedia.util.L10nUtil -import java.util.concurrent.TimeUnit class NewsCard(private val news: List, private val age: Int, @@ -21,11 +20,7 @@ class NewsCard(private val news: List, } override fun dismissHashCode(): Int { - return TimeUnit.MILLISECONDS.toDays(date().baseCalendar.time.time).toInt() + wikiSite().hashCode() - } - - fun date(): UtcDate { - return UtcDate(age) + return DateUtil.getRequestDateForAge(age).toEpochDay().toInt() + wikiSite().hashCode() } fun news(): List { diff --git a/app/src/main/java/org/wikipedia/util/DateUtil.kt b/app/src/main/java/org/wikipedia/util/DateUtil.kt index cb32ceb6d51..a7d3ac05126 100644 --- a/app/src/main/java/org/wikipedia/util/DateUtil.kt +++ b/app/src/main/java/org/wikipedia/util/DateUtil.kt @@ -8,7 +8,6 @@ import org.wikipedia.R import org.wikipedia.WikipediaApp import org.wikipedia.extensions.getResources import org.wikipedia.extensions.getString -import org.wikipedia.feed.model.UtcDate import java.text.SimpleDateFormat import java.time.Instant import java.time.LocalDate @@ -48,7 +47,7 @@ object DateUtil { } fun getFeedCardDateString(age: Int): String { - return getShortDateString(UtcDate(age).baseCalendar.time) + return getShortDateString(getRequestDateForAge(age)) } fun getFeedCardShortDateString(date: Calendar): String { @@ -157,8 +156,12 @@ object DateUtil { return DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).format(localDate) } - fun getUtcRequestDateFor(age: Int): UtcDate { - return UtcDate(age) + fun getRequestDateForAge(age: Int): LocalDate { + return LocalDate.now().minusDays(age.toLong()) + } + + fun getYearMonthAndDayForAge(age: Int): List { + return getRequestDateForAge(age).toString().split("-") } fun getDefaultDateFor(age: Int): Calendar { diff --git a/app/src/main/java/org/wikipedia/widgets/WidgetFeaturedPageWorker.kt b/app/src/main/java/org/wikipedia/widgets/WidgetFeaturedPageWorker.kt index 618111bc1da..f36b14b210e 100644 --- a/app/src/main/java/org/wikipedia/widgets/WidgetFeaturedPageWorker.kt +++ b/app/src/main/java/org/wikipedia/widgets/WidgetFeaturedPageWorker.kt @@ -22,10 +22,10 @@ class WidgetFeaturedPageWorker( return try { val app = WikipediaApp.instance val mainPageTitle = PageTitle(MainPageNameData.valueFor(app.appOrSystemLanguageCode), app.wikiSite) - val date = DateUtil.getUtcRequestDateFor(0) + val (year, month, day) = DateUtil.getYearMonthAndDayForAge(0) val result = ServiceFactory.getRest(app.wikiSite) - .getFeedFeatured(date.year, date.month, date.day, app.wikiSite.languageCode) + .getFeedFeatured(year, month, day, app.wikiSite.languageCode) // TODO: don't use PageSummary. val summary = if (result.tfa != null) {