Use better naming for the view models, reflecting their true nature, and preparing for future work here.

This commit is contained in:
KotlinGeekDev
2025-04-14 17:45:44 +01:00
parent 7d90b9f87b
commit 0dae538c31
3 changed files with 11 additions and 10 deletions
@@ -51,7 +51,7 @@ import com.vitorpamplona.amethyst.ui.dal.ThreadFeedFilter
import com.vitorpamplona.amethyst.ui.feeds.FeedContentState
import com.vitorpamplona.amethyst.ui.feeds.FeedState
import com.vitorpamplona.amethyst.ui.feeds.InvalidatableContent
import com.vitorpamplona.amethyst.ui.screen.loggedIn.lists.FollowSetFeedViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.lists.NostrListFeedViewModel
import com.vitorpamplona.quartz.nip17Dm.base.ChatroomKey
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -163,13 +163,13 @@ class NostrBookmarkPrivateFeedViewModel(
}
@Stable
class NostrUserFollowSetFeedViewModel(
class NostrUserListFeedViewModel(
val account: Account,
) : FollowSetFeedViewModel(FollowSetFeedFilter(account)) {
) : NostrListFeedViewModel(FollowSetFeedFilter(account)) {
class Factory(
val account: Account,
) : ViewModelProvider.Factory {
override fun <NostrUserFollowSetFeedViewModel : ViewModel> create(modelClass: Class<NostrUserFollowSetFeedViewModel>): NostrUserFollowSetFeedViewModel = NostrUserFollowSetFeedViewModel(account) as NostrUserFollowSetFeedViewModel
override fun <NostrUserFollowSetFeedViewModel : ViewModel> create(modelClass: Class<NostrUserFollowSetFeedViewModel>): NostrUserFollowSetFeedViewModel = NostrUserListFeedViewModel(account) as NostrUserFollowSetFeedViewModel
}
}
@@ -65,7 +65,7 @@ import com.vitorpamplona.amethyst.ui.feeds.LoadingFeed
import com.vitorpamplona.amethyst.ui.feeds.RefresheableBox
import com.vitorpamplona.amethyst.ui.navigation.INav
import com.vitorpamplona.amethyst.ui.navigation.TopBarWithBackButton
import com.vitorpamplona.amethyst.ui.screen.NostrUserFollowSetFeedViewModel
import com.vitorpamplona.amethyst.ui.screen.NostrUserListFeedViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.DisappearingScaffold
import com.vitorpamplona.amethyst.ui.stringRes
@@ -83,10 +83,10 @@ fun ListsScreen(
accountViewModel: AccountViewModel,
nav: INav,
) {
val followSetsViewModel: NostrUserFollowSetFeedViewModel =
val followSetsViewModel: NostrUserListFeedViewModel =
viewModel(
key = "NostrUserFollowSetFeedViewModel",
factory = NostrUserFollowSetFeedViewModel.Factory(accountViewModel.account),
key = "NostrUserListFeedViewModel",
factory = NostrUserListFeedViewModel.Factory(accountViewModel.account),
)
val currentCoroutineScope = rememberCoroutineScope()
@@ -43,7 +43,8 @@ import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
abstract class FollowSetFeedViewModel(
// TODO: Investigate the addition of feed filters, for bookmark sets and general ones.
abstract class NostrListFeedViewModel(
val dataSource: FeedFilter<FollowSet>,
) : ViewModel(),
InvalidatableContent {
@@ -86,7 +87,7 @@ abstract class FollowSetFeedViewModel(
}
} catch (e: Exception) {
Log.e(
"FollowSetFeedViewModel",
"NostrListFeedViewModel",
"refreshSuspended: Error loading or refreshing feed -> ${e.message}",
)
_feedContent.update { FollowSetState.FeedError(e.message.toString()) }