style: rename MemberListSheet.MemberListItem to MemberListSheetItem
Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
parent
1f81399da2
commit
3738045793
|
|
@ -61,10 +61,10 @@ val DO_NOT_FETCH_OFFLINE_MEMBERS_SERVERS = listOf(
|
||||||
"01F7ZSBSFHQ8TA81725KQCSDDP" // Revolt Lounge
|
"01F7ZSBSFHQ8TA81725KQCSDDP" // Revolt Lounge
|
||||||
)
|
)
|
||||||
|
|
||||||
sealed class MemberListItem {
|
sealed class MemberListSheetItem {
|
||||||
data class MemberItem(val member: Member) : MemberListItem()
|
data class MemberItem(val member: Member) : MemberListSheetItem()
|
||||||
data class UserItem(val user: User) : MemberListItem()
|
data class UserItem(val user: User) : MemberListSheetItem()
|
||||||
data class CategoryItem(val category: String, val count: Int) : MemberListItem()
|
data class CategoryItem(val category: String, val count: Int) : MemberListSheetItem()
|
||||||
}
|
}
|
||||||
|
|
||||||
@HiltViewModel
|
@HiltViewModel
|
||||||
|
|
@ -72,7 +72,7 @@ sealed class MemberListItem {
|
||||||
class MemberListSheetViewModel @Inject constructor(
|
class MemberListSheetViewModel @Inject constructor(
|
||||||
@ApplicationContext private val context: Context
|
@ApplicationContext private val context: Context
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
val fullItemList = mutableStateListOf<MemberListItem>()
|
val fullItemList = mutableStateListOf<MemberListSheetItem>()
|
||||||
|
|
||||||
fun fetchServerMemberList(serverId: String, channelId: String) {
|
fun fetchServerMemberList(serverId: String, channelId: String) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
|
|
@ -125,35 +125,35 @@ class MemberListSheetViewModel @Inject constructor(
|
||||||
// Hoisted roles
|
// Hoisted roles
|
||||||
Roles.inOrder(serverId) { it.hoist == true }.forEach { role ->
|
Roles.inOrder(serverId) { it.hoist == true }.forEach { role ->
|
||||||
val members = categories[role.name] ?: return@forEach
|
val members = categories[role.name] ?: return@forEach
|
||||||
fullItemList.add(MemberListItem.CategoryItem(role.name ?: "", members.size))
|
fullItemList.add(MemberListSheetItem.CategoryItem(role.name ?: "", members.size))
|
||||||
members.forEach { member ->
|
members.forEach { member ->
|
||||||
fullItemList.add(MemberListItem.MemberItem(member))
|
fullItemList.add(MemberListSheetItem.MemberItem(member))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Online
|
// Online
|
||||||
if (!categories[defaultCategoryName].isNullOrEmpty()) {
|
if (!categories[defaultCategoryName].isNullOrEmpty()) {
|
||||||
fullItemList.add(
|
fullItemList.add(
|
||||||
MemberListItem.CategoryItem(
|
MemberListSheetItem.CategoryItem(
|
||||||
defaultCategoryName,
|
defaultCategoryName,
|
||||||
categories[defaultCategoryName]?.size ?: 0
|
categories[defaultCategoryName]?.size ?: 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
categories[defaultCategoryName]?.forEach { member ->
|
categories[defaultCategoryName]?.forEach { member ->
|
||||||
fullItemList.add(MemberListItem.MemberItem(member))
|
fullItemList.add(MemberListSheetItem.MemberItem(member))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Offline
|
// Offline
|
||||||
if (!categories[offlineCategoryName].isNullOrEmpty()) {
|
if (!categories[offlineCategoryName].isNullOrEmpty()) {
|
||||||
fullItemList.add(
|
fullItemList.add(
|
||||||
MemberListItem.CategoryItem(
|
MemberListSheetItem.CategoryItem(
|
||||||
offlineCategoryName,
|
offlineCategoryName,
|
||||||
categories[offlineCategoryName]?.size ?: 0
|
categories[offlineCategoryName]?.size ?: 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
categories[offlineCategoryName]?.forEach { member ->
|
categories[offlineCategoryName]?.forEach { member ->
|
||||||
fullItemList.add(MemberListItem.MemberItem(member))
|
fullItemList.add(MemberListSheetItem.MemberItem(member))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -180,27 +180,27 @@ class MemberListSheetViewModel @Inject constructor(
|
||||||
|
|
||||||
if (userList.count(onlinePredicate) > 0) {
|
if (userList.count(onlinePredicate) > 0) {
|
||||||
fullItemList.add(
|
fullItemList.add(
|
||||||
MemberListItem.CategoryItem(
|
MemberListSheetItem.CategoryItem(
|
||||||
context.getString(R.string.status_online),
|
context.getString(R.string.status_online),
|
||||||
userList.count(onlinePredicate)
|
userList.count(onlinePredicate)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
userList.filter(onlinePredicate).forEach { user ->
|
userList.filter(onlinePredicate).forEach { user ->
|
||||||
fullItemList.add(MemberListItem.UserItem(user))
|
fullItemList.add(MemberListSheetItem.UserItem(user))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (userList.count(offlinePredicate) > 0) {
|
if (userList.count(offlinePredicate) > 0) {
|
||||||
fullItemList.add(
|
fullItemList.add(
|
||||||
MemberListItem.CategoryItem(
|
MemberListSheetItem.CategoryItem(
|
||||||
context.getString(R.string.status_offline),
|
context.getString(R.string.status_offline),
|
||||||
userList.count(offlinePredicate)
|
userList.count(offlinePredicate)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
userList.filter(offlinePredicate).forEach { user ->
|
userList.filter(offlinePredicate).forEach { user ->
|
||||||
fullItemList.add(MemberListItem.UserItem(user))
|
fullItemList.add(MemberListSheetItem.UserItem(user))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -265,13 +265,13 @@ fun MemberListSheet(
|
||||||
LazyColumn {
|
LazyColumn {
|
||||||
viewModel.fullItemList.forEachIndexed { index, item ->
|
viewModel.fullItemList.forEachIndexed { index, item ->
|
||||||
when (item) {
|
when (item) {
|
||||||
is MemberListItem.CategoryItem -> stickyHeader(
|
is MemberListSheetItem.CategoryItem -> stickyHeader(
|
||||||
key = "${item.category}-$index"
|
key = "${item.category}-$index"
|
||||||
) {
|
) {
|
||||||
MemberListCategory(text = item.category, count = item.count)
|
MemberListCategory(text = item.category, count = item.count)
|
||||||
}
|
}
|
||||||
|
|
||||||
is MemberListItem.MemberItem -> item(key = item.member.id!!.user) {
|
is MemberListSheetItem.MemberItem -> item(key = item.member.id!!.user) {
|
||||||
MemberListItem(
|
MemberListItem(
|
||||||
user = RevoltAPI.userCache[item.member.id.user],
|
user = RevoltAPI.userCache[item.member.id.user],
|
||||||
member = item.member,
|
member = item.member,
|
||||||
|
|
@ -284,7 +284,7 @@ fun MemberListSheet(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
is MemberListItem.UserItem -> item(key = item.user.id!!) {
|
is MemberListSheetItem.UserItem -> item(key = item.user.id!!) {
|
||||||
MemberListItem(
|
MemberListItem(
|
||||||
user = item.user,
|
user = item.user,
|
||||||
member = null,
|
member = null,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue