diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/glance/SavedPostsWidget.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/glance/SavedPostsWidget.kt index 8a52049d..05c8be4a 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/glance/SavedPostsWidget.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/glance/SavedPostsWidget.kt @@ -10,8 +10,6 @@ import android.content.Context import android.os.Build import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.runtime.collectAsState -import androidx.compose.runtime.getValue import androidx.compose.ui.unit.dp import androidx.glance.GlanceId import androidx.glance.GlanceModifier @@ -31,11 +29,9 @@ import androidx.glance.text.TextStyle import dev.msfjarvis.claw.common.theme.DarkThemeColors import dev.msfjarvis.claw.common.theme.LightThemeColors import dev.msfjarvis.claw.database.local.SavedPost -import kotlinx.collections.immutable.persistentListOf -import kotlinx.coroutines.flow.Flow class SavedPostsWidget( - private val savedPosts: Flow>, + private val posts: List, ) : GlanceAppWidget() { override suspend fun provideGlance(context: Context, id: GlanceId) { provideContent { @@ -50,8 +46,6 @@ class SavedPostsWidget( @Composable private fun WidgetHost() { - val posts by savedPosts.collectAsState(persistentListOf()) - LazyColumn( modifier = GlanceModifier.fillMaxSize() diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/glance/WidgetReceiver.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/glance/WidgetReceiver.kt index 377b695a..2cb65483 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/glance/WidgetReceiver.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/glance/WidgetReceiver.kt @@ -14,6 +14,8 @@ import com.deliveryhero.whetstone.Whetstone import com.deliveryhero.whetstone.broadcastreceiver.ContributesBroadcastReceiverInjector import dev.msfjarvis.claw.android.viewmodel.ClawViewModel import javax.inject.Inject +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.runBlocking @ContributesBroadcastReceiverInjector class WidgetReceiver : GlanceAppWidgetReceiver() { @@ -21,7 +23,7 @@ class WidgetReceiver : GlanceAppWidgetReceiver() { @Inject lateinit var viewModel: ClawViewModel override val glanceAppWidget: GlanceAppWidget - get() = SavedPostsWidget(viewModel.savedPosts) + get() = SavedPostsWidget(runBlocking { viewModel.savedPosts.first().subList(0, 50) }) override fun onReceive(context: Context, intent: Intent) { Whetstone.inject(this, context) diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/work/SavedPostUpdaterWorker.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/work/SavedPostUpdaterWorker.kt index 5f9dfef8..51c4e1d0 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/work/SavedPostUpdaterWorker.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/work/SavedPostUpdaterWorker.kt @@ -44,7 +44,8 @@ constructor( .filterIsInstance>() .map { result -> result.value.toSavedPost() } .let { savedPostsRepository.savePosts(it) } - SavedPostsWidget(savedPostsRepository.savedPosts).updateAll(applicationContext) + SavedPostsWidget(savedPostsRepository.savedPosts.first().subList(0, 50)) + .updateAll(applicationContext) return Result.success() } }