Appended to work with replies

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
This commit is contained in:
rapterjet2004 2025-05-19 12:19:41 -05:00 committed by Marcel Hibbe
parent fd7afccbc4
commit 0b40e06f46
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B

View File

@ -53,6 +53,7 @@ import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.PickVisualMediaRequest import androidx.activity.result.PickVisualMediaRequest
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.view.ContextThemeWrapper import androidx.appcompat.view.ContextThemeWrapper
import androidx.cardview.widget.CardView import androidx.cardview.widget.CardView
@ -124,6 +125,7 @@ import com.nextcloud.talk.chat.data.model.ChatMessage
import com.nextcloud.talk.chat.viewmodels.ChatViewModel import com.nextcloud.talk.chat.viewmodels.ChatViewModel
import com.nextcloud.talk.chat.viewmodels.MessageInputViewModel import com.nextcloud.talk.chat.viewmodels.MessageInputViewModel
import com.nextcloud.talk.conversationinfo.ConversationInfoActivity import com.nextcloud.talk.conversationinfo.ConversationInfoActivity
import com.nextcloud.talk.conversationinfo.viewmodel.ConversationInfoViewModel
import com.nextcloud.talk.conversationlist.ConversationsListActivity import com.nextcloud.talk.conversationlist.ConversationsListActivity
import com.nextcloud.talk.data.network.NetworkMonitor import com.nextcloud.talk.data.network.NetworkMonitor
import com.nextcloud.talk.data.user.model.User import com.nextcloud.talk.data.user.model.User
@ -142,6 +144,7 @@ import com.nextcloud.talk.models.domain.ConversationModel
import com.nextcloud.talk.models.json.capabilities.SpreedCapability import com.nextcloud.talk.models.json.capabilities.SpreedCapability
import com.nextcloud.talk.models.json.chat.ReadStatus import com.nextcloud.talk.models.json.chat.ReadStatus
import com.nextcloud.talk.models.json.conversations.ConversationEnums import com.nextcloud.talk.models.json.conversations.ConversationEnums
import com.nextcloud.talk.models.json.participants.Participant
import com.nextcloud.talk.models.json.signaling.settings.SignalingSettingsOverall import com.nextcloud.talk.models.json.signaling.settings.SignalingSettingsOverall
import com.nextcloud.talk.polls.ui.PollCreateDialogFragment import com.nextcloud.talk.polls.ui.PollCreateDialogFragment
import com.nextcloud.talk.remotefilebrowser.activities.RemoteFileBrowserActivity import com.nextcloud.talk.remotefilebrowser.activities.RemoteFileBrowserActivity
@ -226,9 +229,6 @@ import java.util.Locale
import java.util.concurrent.ExecutionException import java.util.concurrent.ExecutionException
import javax.inject.Inject import javax.inject.Inject
import kotlin.math.roundToInt import kotlin.math.roundToInt
import androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia
import com.nextcloud.talk.conversationinfo.viewmodel.ConversationInfoViewModel
import com.nextcloud.talk.models.json.participants.Participant
@AutoInjector(NextcloudTalkApplication::class) @AutoInjector(NextcloudTalkApplication::class)
class ChatActivity : class ChatActivity :
@ -301,11 +301,18 @@ class ChatActivity :
runBlocking { runBlocking {
val id = intent?.getStringExtra(MessageSearchActivity.RESULT_KEY_MESSAGE_ID) val id = intent?.getStringExtra(MessageSearchActivity.RESULT_KEY_MESSAGE_ID)
id?.let { id?.let {
val long = id.toLong()
val isSaved = chatViewModel.isMessageSaved(id.toLong()) val isSaved = chatViewModel.isMessageSaved(id.toLong())
if (isSaved) { if (isSaved) {
onMessageSearchResult(intent) onMessageSearchResult(intent)
} else { } else {
startContextChatWindowForMessage(id)
}
}
}
}
}
private fun startContextChatWindowForMessage(id: String?) {
binding.genericComposeView.apply { binding.genericComposeView.apply {
val shouldDismiss = mutableStateOf(false) val shouldDismiss = mutableStateOf(false)
setContent { setContent {
@ -315,17 +322,13 @@ class ChatActivity :
bundle.putString(KEY_ROOM_TOKEN, roomToken) bundle.putString(KEY_ROOM_TOKEN, roomToken)
bundle.putString(BundleKeys.KEY_MESSAGE_ID, id) bundle.putString(BundleKeys.KEY_MESSAGE_ID, id)
bundle.putString( bundle.putString(
BundleKeys.KEY_CONVERSATION_NAME, KEY_CONVERSATION_NAME,
currentConversation!!.displayName currentConversation!!.displayName
) )
ContextChatCompose(bundle).GetDialogView(shouldDismiss, context) ContextChatCompose(bundle).GetDialogView(shouldDismiss, context)
} }
} }
Log.d("Julius", "Should open something else") Log.d(TAG, "Should open something else")
}
}
}
}
} }
private val startPickCameraIntentForResult = registerForActivityResult( private val startPickCameraIntentForResult = registerForActivityResult(
@ -3955,9 +3958,7 @@ class ChatActivity :
} }
if (!foundMessage) { if (!foundMessage) {
Log.d(TAG, "quoted message with id " + parentMessage.id + " was not found in adapter") Log.d(TAG, "quoted message with id " + parentMessage.id + " was not found in adapter")
// TODO: show better info startContextChatWindowForMessage(parentMessage.id)
// TODO: improve handling how this can be avoided. E.g. loading chat until message is reached...
Snackbar.make(binding.root, "Message was not found", Snackbar.LENGTH_LONG).show()
} }
} }