chore: graduate channelscreen2

Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
Infi 2024-05-28 02:23:01 +02:00
parent 7550d01c8b
commit ee8d4d632f
3 changed files with 16 additions and 16 deletions

View File

@ -90,7 +90,7 @@ import chat.revolt.screens.chat.dialogs.safety.ReportUserDialog
import chat.revolt.screens.chat.views.FriendsScreen import chat.revolt.screens.chat.views.FriendsScreen
import chat.revolt.screens.chat.views.HomeScreen import chat.revolt.screens.chat.views.HomeScreen
import chat.revolt.screens.chat.views.NoCurrentChannelScreen import chat.revolt.screens.chat.views.NoCurrentChannelScreen
import chat.revolt.screens.chat.views.channel.ChannelScreen2 import chat.revolt.screens.chat.views.channel.ChannelScreen
import chat.revolt.sheets.AddServerSheet import chat.revolt.sheets.AddServerSheet
import chat.revolt.sheets.ChangelogSheet import chat.revolt.sheets.ChangelogSheet
import chat.revolt.sheets.EmoteInfoSheet import chat.revolt.sheets.EmoteInfoSheet
@ -1032,7 +1032,7 @@ fun ChannelNavigator(
} }
is ChatRouterDestination.Channel -> { is ChatRouterDestination.Channel -> {
ChannelScreen2( ChannelScreen(
channelId = dest.channelId, channelId = dest.channelId,
onToggleDrawer = { onToggleDrawer = {
scope.launch { scope.launch {

View File

@ -158,11 +158,11 @@ private fun pxAsDp(px: Int): Dp {
ExperimentalAnimationApi::class ExperimentalAnimationApi::class
) )
@Composable @Composable
fun ChannelScreen2( fun ChannelScreen(
channelId: String, channelId: String,
onToggleDrawer: () -> Unit, onToggleDrawer: () -> Unit,
useDrawer: Boolean, useDrawer: Boolean,
viewModel: ChannelScreen2ViewModel = hiltViewModel() viewModel: ChannelScreenViewModel = hiltViewModel()
) { ) {
// Setup // Setup
@ -296,7 +296,7 @@ fun ChannelScreen2(
.distinctUntilChanged() .distinctUntilChanged()
.collect { isNearTop -> .collect { isNearTop ->
if (isNearTop) { if (isNearTop) {
Log.d("ChannelScreen2", "Loading more messages") Log.d("ChannelScreen", "Loading more messages")
viewModel.loadMessages(before = viewModel.items.lastOrNull { viewModel.loadMessages(before = viewModel.items.lastOrNull {
it is ChannelScreenItem.RegularMessage || it is ChannelScreenItem.SystemMessage it is ChannelScreenItem.RegularMessage || it is ChannelScreenItem.SystemMessage
}?.let { }?.let {
@ -615,7 +615,7 @@ fun ChannelScreen2(
is ChannelScreenItem.LoadTrigger -> { is ChannelScreenItem.LoadTrigger -> {
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
Log.d( Log.d(
"ChannelScreen2", "ChannelScreen",
"LoadTrigger: After ${item.after} Before ${item.before}" "LoadTrigger: After ${item.after} Before ${item.before}"
) )
} }

View File

@ -66,7 +66,7 @@ import java.time.ZoneId
import javax.inject.Inject import javax.inject.Inject
@HiltViewModel @HiltViewModel
class ChannelScreen2ViewModel @Inject constructor( class ChannelScreenViewModel @Inject constructor(
private val kvStorage: KVStorage, private val kvStorage: KVStorage,
) : ViewModel() { ) : ViewModel() {
var items = mutableStateListOf<ChannelScreenItem>() var items = mutableStateListOf<ChannelScreenItem>()
@ -268,7 +268,7 @@ class ChannelScreen2ViewModel @Inject constructor(
) )
putDraftContent("") putDraftContent("")
} catch (e: Exception) { } catch (e: Exception) {
Log.e("ChannelScreen2ViewModel", "Failed to edit message", e) Log.e("ChannelScreenViewModel", "Failed to edit message", e)
} }
} }
@ -292,7 +292,7 @@ class ChannelScreen2ViewModel @Inject constructor(
viewModelScope.launch { viewModelScope.launch {
val attachmentIds = arrayListOf<String>() val attachmentIds = arrayListOf<String>()
val takenAttachments = val takenAttachments =
this@ChannelScreen2ViewModel.draftAttachments.take(MAX_ATTACHMENTS_PER_MESSAGE) this@ChannelScreenViewModel.draftAttachments.take(MAX_ATTACHMENTS_PER_MESSAGE)
val totalTaken = takenAttachments.size val totalTaken = takenAttachments.size
takenAttachments.forEachIndexed { index, it -> takenAttachments.forEachIndexed { index, it ->
@ -309,7 +309,7 @@ class ChannelScreen2ViewModel @Inject constructor(
) )
attachmentIds.add(id) attachmentIds.add(id)
} catch (e: Exception) { } catch (e: Exception) {
Log.e("ChannelScreen2ViewModel", "Failed to upload attachment", e) Log.e("ChannelScreenViewModel", "Failed to upload attachment", e)
attachmentUploadProgress = 0f attachmentUploadProgress = 0f
// TODO show error message // TODO show error message
return@launch return@launch
@ -343,7 +343,7 @@ class ChannelScreen2ViewModel @Inject constructor(
draftReplyTo.clear() draftReplyTo.clear()
attachmentUploadProgress = 0f attachmentUploadProgress = 0f
this@ChannelScreen2ViewModel.draftAttachments.removeAll(takenAttachments) this@ChannelScreenViewModel.draftAttachments.removeAll(takenAttachments)
try { try {
sendMessage( sendMessage(
@ -355,7 +355,7 @@ class ChannelScreen2ViewModel @Inject constructor(
idempotencyKey = ULID.makeNext() idempotencyKey = ULID.makeNext()
) )
} catch (e: Exception) { } catch (e: Exception) {
Log.e("ChannelScreen2ViewModel", "Failed to send message", e) Log.e("ChannelScreenViewModel", "Failed to send message", e)
updateItems(listOf(ChannelScreenItem.FailedMessage(prospectiveMessage)) + items.filter { it !is ChannelScreenItem.ProspectiveMessage }) updateItems(listOf(ChannelScreenItem.FailedMessage(prospectiveMessage)) + items.filter { it !is ChannelScreenItem.ProspectiveMessage })
} }
} }
@ -433,7 +433,7 @@ class ChannelScreen2ViewModel @Inject constructor(
updateItems(newItemsWithPosition) updateItems(newItemsWithPosition)
} catch (e: Exception) { } catch (e: Exception) {
Log.e("ChannelScreen2ViewModel", "Failed to fetch messages", e) Log.e("ChannelScreenViewModel", "Failed to fetch messages", e)
} }
} }
} }
@ -466,7 +466,7 @@ class ChannelScreen2ViewModel @Inject constructor(
fetchMember(serverId, userId) fetchMember(serverId, userId)
} }
} catch (e: Exception) { } catch (e: Exception) {
Log.e("ChannelScreen2ViewModel", "Failed to fetch member", e) Log.e("ChannelScreenViewModel", "Failed to fetch member", e)
} }
} }
@ -664,7 +664,7 @@ class ChannelScreen2ViewModel @Inject constructor(
} as? ChannelScreenItem.RegularMessage ?: return@onEach } as? ChannelScreenItem.RegularMessage ?: return@onEach
putDraftContent(message.message.content ?: "") putDraftContent(message.message.content ?: "")
this@ChannelScreen2ViewModel.draftAttachments.clear() this@ChannelScreenViewModel.draftAttachments.clear()
draftReplyTo.clear() draftReplyTo.clear()
} }
} }
@ -691,7 +691,7 @@ class ChannelScreen2ViewModel @Inject constructor(
// [Deviation from spec: if M is not a [Regular/System]Message we just put it in the list...] // [Deviation from spec: if M is not a [Regular/System]Message we just put it in the list...]
if (m !is ChannelScreenItem.RegularMessage && m !is ChannelScreenItem.SystemMessage) { if (m !is ChannelScreenItem.RegularMessage && m !is ChannelScreenItem.SystemMessage) {
groupedItems.add(m) groupedItems.add(m)
Log.d("ChannelScreen2ViewModel", "Non-regular message: $m. Skipping grouping.") Log.d("ChannelScreenViewModel", "Non-regular message: $m. Skipping grouping.")
return@forEachIndexed return@forEachIndexed
} }