Skip to content

Commit d67a7c0

Browse files
committed
fix: rotate headlines os widget article each tick
1 parent ce80c09 commit d67a7c0

4 files changed

Lines changed: 8 additions & 2 deletions

File tree

app/src/main/java/to/bitkit/appwidget/AppWidgetPreferencesStore.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,8 @@ class AppWidgetPreferencesStore @Inject constructor(
8484
suspend fun cacheArticles(articles: List<ArticleDTO>) {
8585
store.updateData { it.copy(cachedArticles = articles) }
8686
}
87+
88+
suspend fun bumpArticleRotationTick() {
89+
store.updateData { it.copy(articleRotationTick = it.articleRotationTick + 1) }
90+
}
8791
}

app/src/main/java/to/bitkit/appwidget/AppWidgetRefreshWorker.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ class AppWidgetRefreshWorker @AssistedInject constructor(
9494
.onFailure {
9595
Logger.warn("Failed to refresh headlines", it, context = TAG)
9696
}
97+
preferencesStore.bumpArticleRotationTick()
9798
HeadlinesGlanceWidget().updateAll(appContext)
9899
}
99100
}

app/src/main/java/to/bitkit/appwidget/model/AppWidgetPreferences.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,5 @@ data class AppWidgetData(
4141
val entries: List<AppWidgetEntry> = emptyList(),
4242
val cachedPrices: Map<GraphPeriod, PriceDTO> = emptyMap(),
4343
val cachedArticles: List<ArticleDTO> = emptyList(),
44+
val articleRotationTick: Int = 0,
4445
)

app/src/main/java/to/bitkit/appwidget/ui/headlines/HeadlinesGlanceWidget.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ class HeadlinesGlanceWidget : GlanceAppWidget() {
3333
val data by store.data.collectAsState(initial = AppWidgetData())
3434
val entry = data.entries.find { it.appWidgetId == appWidgetId }
3535
?: AppWidgetEntry(appWidgetId = appWidgetId, type = AppWidgetType.HEADLINES)
36-
val article = remember(data.cachedArticles) {
37-
data.cachedArticles.firstOrNull()?.toArticleModel()
36+
val article = remember(data.cachedArticles, data.articleRotationTick) {
37+
data.cachedArticles.randomOrNull()?.toArticleModel()
3838
}
3939

4040
HeadlinesGlanceContent(

0 commit comments

Comments
 (0)