mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-09 13:59:48 +01:00
Merge pull request #3769 from nextcloud/feature/noid/federationInvitationFixes
Feature/noid/federation invitation fixes
This commit is contained in:
commit
57e1fd9b91
@ -3799,7 +3799,7 @@ class ChatActivity :
|
|||||||
chatMessage.isFormerOneToOneConversation =
|
chatMessage.isFormerOneToOneConversation =
|
||||||
(currentConversation?.type == ConversationType.FORMER_ONE_TO_ONE)
|
(currentConversation?.type == ConversationType.FORMER_ONE_TO_ONE)
|
||||||
chatMessage.activeUser = conversationUser
|
chatMessage.activeUser = conversationUser
|
||||||
chatMessage.roomToken = roomToken
|
chatMessage.token = roomToken
|
||||||
}
|
}
|
||||||
|
|
||||||
if (adapter != null) {
|
if (adapter != null) {
|
||||||
|
@ -83,7 +83,11 @@ class ConversationsListViewModel @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onNext(invitationsModel: InvitationsModel) {
|
override fun onNext(invitationsModel: InvitationsModel) {
|
||||||
if (invitationsModel.user.userId?.equals(userManager.currentUser.blockingGet().userId) == true) {
|
val currentUser = userManager.currentUser.blockingGet()
|
||||||
|
|
||||||
|
if (invitationsModel.user.userId?.equals(currentUser.userId) == true &&
|
||||||
|
invitationsModel.user.baseUrl?.equals(currentUser.baseUrl) == true
|
||||||
|
) {
|
||||||
if (invitationsModel.invitations.isNotEmpty()) {
|
if (invitationsModel.invitations.isNotEmpty()) {
|
||||||
_getFederationInvitationsViewState.value = GetFederationInvitationsSuccessState(true)
|
_getFederationInvitationsViewState.value = GetFederationInvitationsSuccessState(true)
|
||||||
} else {
|
} else {
|
||||||
|
@ -136,7 +136,7 @@ fun ImageView.loadFederatedUserAvatar(message: ChatMessage): io.reactivex.dispos
|
|||||||
return loadFederatedUserAvatar(
|
return loadFederatedUserAvatar(
|
||||||
message.activeUser!!,
|
message.activeUser!!,
|
||||||
message.activeUser!!.baseUrl!!,
|
message.activeUser!!.baseUrl!!,
|
||||||
message.roomToken,
|
message.token!!,
|
||||||
cloudId,
|
cloudId,
|
||||||
darkTheme,
|
darkTheme,
|
||||||
requestBigSize,
|
requestBigSize,
|
||||||
|
@ -32,6 +32,7 @@ import com.nextcloud.talk.R
|
|||||||
import com.nextcloud.talk.activities.BaseActivity
|
import com.nextcloud.talk.activities.BaseActivity
|
||||||
import com.nextcloud.talk.api.NcApi
|
import com.nextcloud.talk.api.NcApi
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
|
import com.nextcloud.talk.chat.ChatActivity
|
||||||
import com.nextcloud.talk.conversationlist.ConversationsListActivity
|
import com.nextcloud.talk.conversationlist.ConversationsListActivity
|
||||||
import com.nextcloud.talk.data.user.model.User
|
import com.nextcloud.talk.data.user.model.User
|
||||||
import com.nextcloud.talk.databinding.ActivityInvitationsBinding
|
import com.nextcloud.talk.databinding.ActivityInvitationsBinding
|
||||||
@ -39,6 +40,7 @@ import com.nextcloud.talk.invitation.adapters.InvitationsAdapter
|
|||||||
import com.nextcloud.talk.invitation.data.ActionEnum
|
import com.nextcloud.talk.invitation.data.ActionEnum
|
||||||
import com.nextcloud.talk.invitation.data.Invitation
|
import com.nextcloud.talk.invitation.data.Invitation
|
||||||
import com.nextcloud.talk.invitation.viewmodels.InvitationsViewModel
|
import com.nextcloud.talk.invitation.viewmodels.InvitationsViewModel
|
||||||
|
import com.nextcloud.talk.utils.bundle.BundleKeys
|
||||||
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
|
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@ -151,17 +153,12 @@ class InvitationsActivity : BaseActivity() {
|
|||||||
|
|
||||||
is InvitationsViewModel.InvitationActionSuccessState -> {
|
is InvitationsViewModel.InvitationActionSuccessState -> {
|
||||||
if (state.action == ActionEnum.ACCEPT) {
|
if (state.action == ActionEnum.ACCEPT) {
|
||||||
// val bundle = Bundle()
|
val bundle = Bundle()
|
||||||
// bundle.putString(BundleKeys.KEY_ROOM_TOKEN, ????) // ???
|
bundle.putString(BundleKeys.KEY_ROOM_TOKEN, state.invitation.localToken)
|
||||||
//
|
val chatIntent = Intent(context, ChatActivity::class.java)
|
||||||
// val chatIntent = Intent(context, ChatActivity::class.java)
|
chatIntent.putExtras(bundle)
|
||||||
// chatIntent.putExtras(bundle)
|
chatIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
||||||
// chatIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
startActivity(chatIntent)
|
||||||
// startActivity(chatIntent)
|
|
||||||
|
|
||||||
val intent = Intent(this, ConversationsListActivity::class.java)
|
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
|
||||||
startActivity(intent)
|
|
||||||
} else {
|
} else {
|
||||||
// adapter.currentList.remove(state.invitation)
|
// adapter.currentList.remove(state.invitation)
|
||||||
// adapter.notifyDataSetChanged() // leads to UnsupportedOperationException ?!
|
// adapter.notifyDataSetChanged() // leads to UnsupportedOperationException ?!
|
||||||
|
@ -21,15 +21,15 @@
|
|||||||
package com.nextcloud.talk.invitation.data
|
package com.nextcloud.talk.invitation.data
|
||||||
|
|
||||||
data class Invitation(
|
data class Invitation(
|
||||||
var id: Int,
|
var id: Int = 0,
|
||||||
var userId: String,
|
var state: Int = 0,
|
||||||
var state: Int,
|
var localCloudId: String? = null,
|
||||||
var localRoomId: Int,
|
var localToken: String? = null,
|
||||||
var accessToken: String?,
|
var remoteAttendeeId: Int = 0,
|
||||||
var remoteServerUrl: String,
|
var remoteServerUrl: String? = null,
|
||||||
var remoteToken: String,
|
var remoteToken: String? = null,
|
||||||
var remoteAttendeeId: Int,
|
var roomName: String? = null,
|
||||||
var inviterCloudId: String,
|
var userId: String? = null,
|
||||||
var inviterDisplayName: String,
|
var inviterCloudId: String? = null,
|
||||||
var roomName: String
|
var inviterDisplayName: String? = null
|
||||||
)
|
)
|
||||||
|
@ -66,16 +66,16 @@ class InvitationsRepositoryImpl(private val ncApi: NcApi) :
|
|||||||
filteredInvitations.map { invitation ->
|
filteredInvitations.map { invitation ->
|
||||||
Invitation(
|
Invitation(
|
||||||
invitation.id,
|
invitation.id,
|
||||||
invitation.userId!!,
|
|
||||||
invitation.state,
|
invitation.state,
|
||||||
invitation.localRoomId,
|
invitation.localCloudId!!,
|
||||||
invitation.accessToken!!,
|
invitation.localToken!!,
|
||||||
|
invitation.remoteAttendeeId,
|
||||||
invitation.remoteServerUrl!!,
|
invitation.remoteServerUrl!!,
|
||||||
invitation.remoteToken!!,
|
invitation.remoteToken!!,
|
||||||
invitation.remoteAttendeeId,
|
invitation.roomName!!,
|
||||||
|
invitation.userId!!,
|
||||||
invitation.inviterCloudId!!,
|
invitation.inviterCloudId!!,
|
||||||
invitation.inviterDisplayName!!,
|
invitation.inviterDisplayName!!
|
||||||
invitation.roomName!!
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -159,9 +159,7 @@ data class ChatMessage(
|
|||||||
|
|
||||||
var hiddenByCollapse: Boolean = false,
|
var hiddenByCollapse: Boolean = false,
|
||||||
|
|
||||||
var openWhenDownloaded: Boolean = true,
|
var openWhenDownloaded: Boolean = true
|
||||||
|
|
||||||
var roomToken: String = ""
|
|
||||||
|
|
||||||
) : Parcelable, MessageContentType, MessageContentType.Image {
|
) : Parcelable, MessageContentType, MessageContentType.Image {
|
||||||
|
|
||||||
|
@ -29,27 +29,28 @@ import kotlinx.parcelize.Parcelize
|
|||||||
data class Invitation(
|
data class Invitation(
|
||||||
@JsonField(name = ["id"])
|
@JsonField(name = ["id"])
|
||||||
var id: Int = 0,
|
var id: Int = 0,
|
||||||
@JsonField(name = ["userId"])
|
|
||||||
var userId: String? = null,
|
|
||||||
@JsonField(name = ["state"])
|
@JsonField(name = ["state"])
|
||||||
var state: Int = 0,
|
var state: Int = 0,
|
||||||
@JsonField(name = ["localRoomId"])
|
@JsonField(name = ["localCloudId"])
|
||||||
var localRoomId: Int = 0,
|
var localCloudId: String? = null,
|
||||||
@JsonField(name = ["accessToken"])
|
@JsonField(name = ["localToken"])
|
||||||
var accessToken: String? = null,
|
var localToken: String? = null,
|
||||||
|
@JsonField(name = ["remoteAttendeeId"])
|
||||||
|
var remoteAttendeeId: Int = 0,
|
||||||
@JsonField(name = ["remoteServerUrl"])
|
@JsonField(name = ["remoteServerUrl"])
|
||||||
var remoteServerUrl: String? = null,
|
var remoteServerUrl: String? = null,
|
||||||
@JsonField(name = ["remoteToken"])
|
@JsonField(name = ["remoteToken"])
|
||||||
var remoteToken: String? = null,
|
var remoteToken: String? = null,
|
||||||
@JsonField(name = ["remoteAttendeeId"])
|
@JsonField(name = ["roomName"])
|
||||||
var remoteAttendeeId: Int = 0,
|
var roomName: String? = null,
|
||||||
|
@JsonField(name = ["userId"])
|
||||||
|
var userId: String? = null,
|
||||||
@JsonField(name = ["inviterCloudId"])
|
@JsonField(name = ["inviterCloudId"])
|
||||||
var inviterCloudId: String? = null,
|
var inviterCloudId: String? = null,
|
||||||
@JsonField(name = ["inviterDisplayName"])
|
@JsonField(name = ["inviterDisplayName"])
|
||||||
var inviterDisplayName: String? = null,
|
var inviterDisplayName: String? = null
|
||||||
@JsonField(name = ["roomName"])
|
|
||||||
var roomName: String? = null
|
|
||||||
) : Parcelable {
|
) : Parcelable {
|
||||||
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'
|
// This constructor is added to work with the 'com.bluelinelabs.logansquare.annotation.JsonObject'
|
||||||
constructor() : this(0, null, 0, 0, null, null, null, 0, null, null, null)
|
constructor() : this(0, 0, null, null, 0, null, null, null, null, null, null)
|
||||||
}
|
}
|
||||||
|
@ -138,7 +138,7 @@ class MessageUtils(val context: Context) {
|
|||||||
themingContext,
|
themingContext,
|
||||||
messageStringInternal,
|
messageStringInternal,
|
||||||
id!!,
|
id!!,
|
||||||
message.roomToken,
|
message.token,
|
||||||
individualHashMap["name"]!!,
|
individualHashMap["name"]!!,
|
||||||
individualHashMap["type"]!!,
|
individualHashMap["type"]!!,
|
||||||
message.activeUser!!,
|
message.activeUser!!,
|
||||||
|
Loading…
Reference in New Issue
Block a user