Add InstanceInfoRepository to TimelineViewModel
This commit is contained in:
parent
2f79b4f8b2
commit
09dce64a78
|
@ -33,6 +33,7 @@ import com.keylesspalace.tusky.appstore.EventHub
|
|||
import com.keylesspalace.tusky.appstore.FavoriteEvent
|
||||
import com.keylesspalace.tusky.appstore.PinEvent
|
||||
import com.keylesspalace.tusky.appstore.ReblogEvent
|
||||
import com.keylesspalace.tusky.components.instanceinfo.InstanceInfoRepository
|
||||
import com.keylesspalace.tusky.components.preference.PreferencesFragment.ReadingOrder.NEWEST_FIRST
|
||||
import com.keylesspalace.tusky.components.preference.PreferencesFragment.ReadingOrder.OLDEST_FIRST
|
||||
import com.keylesspalace.tusky.components.timeline.Placeholder
|
||||
|
@ -67,6 +68,7 @@ class CachedTimelineViewModel @Inject constructor(
|
|||
accountManager: AccountManager,
|
||||
sharedPreferences: SharedPreferences,
|
||||
filterModel: FilterModel,
|
||||
instanceInfoRepository: InstanceInfoRepository,
|
||||
private val db: AppDatabase,
|
||||
private val gson: Gson
|
||||
) : TimelineViewModel(
|
||||
|
@ -75,7 +77,8 @@ class CachedTimelineViewModel @Inject constructor(
|
|||
eventHub,
|
||||
accountManager,
|
||||
sharedPreferences,
|
||||
filterModel
|
||||
filterModel,
|
||||
instanceInfoRepository,
|
||||
) {
|
||||
|
||||
private var currentPagingSource: PagingSource<Int, TimelineStatusWithAccount>? = null
|
||||
|
|
|
@ -29,6 +29,7 @@ import com.keylesspalace.tusky.appstore.EventHub
|
|||
import com.keylesspalace.tusky.appstore.FavoriteEvent
|
||||
import com.keylesspalace.tusky.appstore.PinEvent
|
||||
import com.keylesspalace.tusky.appstore.ReblogEvent
|
||||
import com.keylesspalace.tusky.components.instanceinfo.InstanceInfoRepository
|
||||
import com.keylesspalace.tusky.components.timeline.util.ifExpected
|
||||
import com.keylesspalace.tusky.db.AccountManager
|
||||
import com.keylesspalace.tusky.entity.Filter
|
||||
|
@ -61,8 +62,9 @@ class NetworkTimelineViewModel @Inject constructor(
|
|||
eventHub: EventHub,
|
||||
accountManager: AccountManager,
|
||||
sharedPreferences: SharedPreferences,
|
||||
filterModel: FilterModel
|
||||
) : TimelineViewModel(timelineCases, api, eventHub, accountManager, sharedPreferences, filterModel) {
|
||||
filterModel: FilterModel,
|
||||
instanceInfoRepository: InstanceInfoRepository
|
||||
) : TimelineViewModel(timelineCases, api, eventHub, accountManager, sharedPreferences, filterModel, instanceInfoRepository) {
|
||||
|
||||
var currentSource: NetworkTimelinePagingSource? = null
|
||||
|
||||
|
|
|
@ -37,9 +37,11 @@ import com.keylesspalace.tusky.appstore.PreferenceChangedEvent
|
|||
import com.keylesspalace.tusky.appstore.ReblogEvent
|
||||
import com.keylesspalace.tusky.appstore.StatusDeletedEvent
|
||||
import com.keylesspalace.tusky.appstore.UnfollowEvent
|
||||
import com.keylesspalace.tusky.components.instanceinfo.InstanceInfoRepository
|
||||
import com.keylesspalace.tusky.components.preference.PreferencesFragment.ReadingOrder
|
||||
import com.keylesspalace.tusky.components.timeline.util.ifExpected
|
||||
import com.keylesspalace.tusky.db.AccountManager
|
||||
import com.keylesspalace.tusky.entity.Emoji
|
||||
import com.keylesspalace.tusky.entity.Filter
|
||||
import com.keylesspalace.tusky.entity.FilterV1
|
||||
import com.keylesspalace.tusky.entity.Poll
|
||||
|
@ -48,8 +50,9 @@ import com.keylesspalace.tusky.network.MastodonApi
|
|||
import com.keylesspalace.tusky.settings.PrefKeys
|
||||
import com.keylesspalace.tusky.usecase.TimelineCases
|
||||
import com.keylesspalace.tusky.viewdata.StatusViewData
|
||||
import kotlinx.coroutines.FlowPreview
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.*
|
||||
import kotlinx.coroutines.launch
|
||||
import retrofit2.HttpException
|
||||
|
||||
|
@ -59,7 +62,8 @@ abstract class TimelineViewModel(
|
|||
private val eventHub: EventHub,
|
||||
protected val accountManager: AccountManager,
|
||||
private val sharedPreferences: SharedPreferences,
|
||||
private val filterModel: FilterModel
|
||||
private val filterModel: FilterModel,
|
||||
private val instanceInfoRepository: InstanceInfoRepository,
|
||||
) : ViewModel() {
|
||||
|
||||
abstract val statuses: Flow<PagingData<StatusViewData>>
|
||||
|
@ -71,6 +75,10 @@ abstract class TimelineViewModel(
|
|||
var tags: List<String> = emptyList()
|
||||
private set
|
||||
|
||||
@OptIn(FlowPreview::class)
|
||||
val emoji: SharedFlow<List<Emoji>> = instanceInfoRepository::getEmojis.asFlow()
|
||||
.shareIn(viewModelScope, SharingStarted.Eagerly, replay = 1)
|
||||
|
||||
protected var alwaysShowSensitiveMedia = false
|
||||
private var alwaysOpenSpoilers = false
|
||||
private var filterRemoveReplies = false
|
||||
|
|
Loading…
Reference in New Issue