diff --git a/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsViewModel.kt b/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsViewModel.kt index 5e9e609e2..4e140b761 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsViewModel.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/conversation/ConversationsViewModel.kt @@ -27,6 +27,7 @@ import com.keylesspalace.tusky.db.AccountManager import com.keylesspalace.tusky.db.AppDatabase import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.usecase.TimelineCases +import com.keylesspalace.tusky.util.EmptyPagingSource import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch import kotlinx.coroutines.rx3.await @@ -43,7 +44,14 @@ class ConversationsViewModel @Inject constructor( val conversationFlow = Pager( config = PagingConfig(pageSize = 30), remoteMediator = ConversationsRemoteMediator(api, database, accountManager), - pagingSourceFactory = { database.conversationDao().conversationsForAccount(accountManager.activeAccount!!.id) } + pagingSourceFactory = { + val activeAccount = accountManager.activeAccount + if (activeAccount == null) { + EmptyPagingSource() + } else { + database.conversationDao().conversationsForAccount(activeAccount.id) + } + } ) .flow .map { pagingData -> diff --git a/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/CachedTimelineViewModel.kt b/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/CachedTimelineViewModel.kt index 217055dc0..779fe38d9 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/CachedTimelineViewModel.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/CachedTimelineViewModel.kt @@ -43,6 +43,7 @@ import com.keylesspalace.tusky.entity.Poll import com.keylesspalace.tusky.network.FilterModel import com.keylesspalace.tusky.network.MastodonApi import com.keylesspalace.tusky.usecase.TimelineCases +import com.keylesspalace.tusky.util.EmptyPagingSource import com.keylesspalace.tusky.viewdata.StatusViewData import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.asExecutor @@ -85,7 +86,7 @@ class CachedTimelineViewModel @Inject constructor( pagingSourceFactory = { val activeAccount = accountManager.activeAccount if (activeAccount == null) { - EmptyTimelinePagingSource() + EmptyPagingSource() } else { db.timelineDao().getStatuses(activeAccount.id) }.also { newPagingSource -> diff --git a/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/EmptyTimelinePagingSource.kt b/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/EmptyTimelinePagingSource.kt deleted file mode 100644 index 5fd13dfb0..000000000 --- a/app/src/main/java/com/keylesspalace/tusky/components/timeline/viewmodel/EmptyTimelinePagingSource.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.keylesspalace.tusky.components.timeline.viewmodel - -import androidx.paging.PagingSource -import androidx.paging.PagingState -import com.keylesspalace.tusky.db.TimelineStatusWithAccount - -class EmptyTimelinePagingSource : PagingSource() { - override fun getRefreshKey(state: PagingState): Int? = null - - override suspend fun load(params: LoadParams): LoadResult = LoadResult.Page(emptyList(), null, null) -} diff --git a/app/src/main/java/com/keylesspalace/tusky/util/EmptyPagingSource.kt b/app/src/main/java/com/keylesspalace/tusky/util/EmptyPagingSource.kt new file mode 100644 index 000000000..41a12aa3d --- /dev/null +++ b/app/src/main/java/com/keylesspalace/tusky/util/EmptyPagingSource.kt @@ -0,0 +1,10 @@ +package com.keylesspalace.tusky.util + +import androidx.paging.PagingSource +import androidx.paging.PagingState + +class EmptyPagingSource : PagingSource() { + override fun getRefreshKey(state: PagingState): Int? = null + + override suspend fun load(params: LoadParams): LoadResult = LoadResult.Page(emptyList(), null, null) +}