Merge pull request #2221 from nextcloud/chore/1549/roomMigration3

Migrate contacts and creation of talk rooms from requery to room
This commit is contained in:
Andy Scherzinger 2022-07-16 16:30:14 +02:00 committed by GitHub
commit 26ce9ee868
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 50 additions and 56 deletions

View File

@ -32,8 +32,8 @@ import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.interfaces.DraweeController; import com.facebook.drawee.interfaces.DraweeController;
import com.nextcloud.talk.R; import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.data.user.model.User;
import com.nextcloud.talk.databinding.RvItemContactBinding; import com.nextcloud.talk.databinding.RvItemContactBinding;
import com.nextcloud.talk.models.database.UserEntity;
import com.nextcloud.talk.models.json.participants.Participant; import com.nextcloud.talk.models.json.participants.Participant;
import com.nextcloud.talk.utils.ApiUtils; import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.DisplayUtils; import com.nextcloud.talk.utils.DisplayUtils;
@ -57,15 +57,15 @@ public class ContactItem extends AbstractFlexibleItem<ContactItem.ContactItemVie
public static final String PARTICIPANT_SOURCE_USERS = "users"; public static final String PARTICIPANT_SOURCE_USERS = "users";
private final Participant participant; private final Participant participant;
private final UserEntity userEntity; private final User user;
private GenericTextHeaderItem header; private GenericTextHeaderItem header;
public boolean isOnline = true; public boolean isOnline = true;
public ContactItem(Participant participant, public ContactItem(Participant participant,
UserEntity userEntity, User user,
GenericTextHeaderItem genericTextHeaderItem) { GenericTextHeaderItem genericTextHeaderItem) {
this.participant = participant; this.participant = participant;
this.userEntity = userEntity; this.user = user;
this.header = genericTextHeaderItem; this.header = genericTextHeaderItem;
} }
@ -179,7 +179,7 @@ public class ContactItem extends AbstractFlexibleItem<ContactItem.ContactItemVie
.setOldController(holder.binding.avatarDraweeView.getController()) .setOldController(holder.binding.avatarDraweeView.getController())
.setAutoPlayAnimations(true) .setAutoPlayAnimations(true)
.setImageRequest(DisplayUtils.getImageRequestForUrl( .setImageRequest(DisplayUtils.getImageRequestForUrl(
ApiUtils.getUrlForGuestAvatar(userEntity.getBaseUrl(), ApiUtils.getUrlForGuestAvatar(user.getBaseUrl(),
displayName, displayName,
false))) false)))
.build(); .build();
@ -191,7 +191,7 @@ public class ContactItem extends AbstractFlexibleItem<ContactItem.ContactItemVie
.setOldController(holder.binding.avatarDraweeView.getController()) .setOldController(holder.binding.avatarDraweeView.getController())
.setAutoPlayAnimations(true) .setAutoPlayAnimations(true)
.setImageRequest(DisplayUtils.getImageRequestForUrl( .setImageRequest(DisplayUtils.getImageRequestForUrl(
ApiUtils.getUrlForAvatar(userEntity.getBaseUrl(), ApiUtils.getUrlForAvatar(user.getBaseUrl(),
participant.getCalculatedActorId(), participant.getCalculatedActorId(),
false))) false)))
.build(); .build();

View File

@ -52,12 +52,11 @@ import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedA
import com.nextcloud.talk.controllers.base.NewBaseController import com.nextcloud.talk.controllers.base.NewBaseController
import com.nextcloud.talk.controllers.bottomsheet.ConversationOperationEnum import com.nextcloud.talk.controllers.bottomsheet.ConversationOperationEnum
import com.nextcloud.talk.controllers.util.viewBinding import com.nextcloud.talk.controllers.util.viewBinding
import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.databinding.ControllerContactsRvBinding import com.nextcloud.talk.databinding.ControllerContactsRvBinding
import com.nextcloud.talk.events.OpenConversationEvent import com.nextcloud.talk.events.OpenConversationEvent
import com.nextcloud.talk.jobs.AddParticipantsToConversation import com.nextcloud.talk.jobs.AddParticipantsToConversation
import com.nextcloud.talk.models.RetrofitBucket import com.nextcloud.talk.models.RetrofitBucket
import com.nextcloud.talk.models.database.CapabilitiesUtil
import com.nextcloud.talk.models.database.UserEntity
import com.nextcloud.talk.models.json.autocomplete.AutocompleteOverall import com.nextcloud.talk.models.json.autocomplete.AutocompleteOverall
import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser
import com.nextcloud.talk.models.json.conversations.Conversation import com.nextcloud.talk.models.json.conversations.Conversation
@ -65,10 +64,11 @@ import com.nextcloud.talk.models.json.conversations.RoomOverall
import com.nextcloud.talk.models.json.converters.EnumActorTypeConverter import com.nextcloud.talk.models.json.converters.EnumActorTypeConverter
import com.nextcloud.talk.models.json.participants.Participant import com.nextcloud.talk.models.json.participants.Participant
import com.nextcloud.talk.ui.dialog.ContactsBottomDialog import com.nextcloud.talk.ui.dialog.ContactsBottomDialog
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.ConductorRemapping import com.nextcloud.talk.utils.ConductorRemapping
import com.nextcloud.talk.utils.bundle.BundleKeys import com.nextcloud.talk.utils.bundle.BundleKeys
import com.nextcloud.talk.utils.database.user.UserUtils import com.nextcloud.talk.utils.database.user.CapabilitiesUtilNew
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.SelectableAdapter import eu.davidea.flexibleadapter.SelectableAdapter
import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager
@ -95,7 +95,7 @@ class ContactsController(args: Bundle) :
private val binding: ControllerContactsRvBinding by viewBinding(ControllerContactsRvBinding::bind) private val binding: ControllerContactsRvBinding by viewBinding(ControllerContactsRvBinding::bind)
@Inject @Inject
lateinit var userUtils: UserUtils lateinit var userManager: UserManager
@Inject @Inject
lateinit var eventBus: EventBus lateinit var eventBus: EventBus
@ -104,7 +104,7 @@ class ContactsController(args: Bundle) :
lateinit var ncApi: NcApi lateinit var ncApi: NcApi
private var credentials: String? = null private var credentials: String? = null
private var currentUser: UserEntity? = null private var currentUser: User? = null
private var contactsQueryDisposable: Disposable? = null private var contactsQueryDisposable: Disposable? = null
private var cacheQueryDisposable: Disposable? = null private var cacheQueryDisposable: Disposable? = null
private var adapter: FlexibleAdapter<*>? = null private var adapter: FlexibleAdapter<*>? = null
@ -168,7 +168,7 @@ class ContactsController(args: Bundle) :
override fun onViewBound(view: View) { override fun onViewBound(view: View) {
super.onViewBound(view) super.onViewBound(view)
currentUser = userUtils.currentUser currentUser = userManager.currentUser.blockingGet()
if (currentUser != null) { if (currentUser != null) {
credentials = ApiUtils.getCredentials(currentUser!!.username, currentUser!!.token) credentials = ApiUtils.getCredentials(currentUser!!.username, currentUser!!.token)
} }
@ -285,7 +285,7 @@ class ContactsController(args: Bundle) :
Parcels.wrap(roomOverall.ocs!!.data!!) Parcels.wrap(roomOverall.ocs!!.data!!)
) )
ConductorRemapping.remapChatController( ConductorRemapping.remapChatController(
router, currentUser!!.id, router, currentUser!!.id!!,
roomOverall.ocs!!.data!!.token!!, bundle, true roomOverall.ocs!!.data!!.token!!, bundle, true
) )
} }
@ -311,12 +311,12 @@ class ContactsController(args: Bundle) :
} }
private fun addParticipantsToConversation() { private fun addParticipantsToConversation() {
val userIdsArray: Array<String> = selectedUserIds.toTypedArray<String>() val userIdsArray: Array<String> = selectedUserIds.toTypedArray()
val groupIdsArray: Array<String> = selectedGroupIds.toTypedArray<String>() val groupIdsArray: Array<String> = selectedGroupIds.toTypedArray()
val emailsArray: Array<String> = selectedEmails.toTypedArray<String>() val emailsArray: Array<String> = selectedEmails.toTypedArray()
val circleIdsArray: Array<String> = selectedCircleIds.toTypedArray<String>() val circleIdsArray: Array<String> = selectedCircleIds.toTypedArray()
val data = Data.Builder() val data = Data.Builder()
data.putLong(BundleKeys.KEY_INTERNAL_USER_ID, currentUser!!.id) data.putLong(BundleKeys.KEY_INTERNAL_USER_ID, currentUser!!.id!!)
data.putString(BundleKeys.KEY_TOKEN, conversationToken) data.putString(BundleKeys.KEY_TOKEN, conversationToken)
data.putStringArray(BundleKeys.KEY_SELECTED_USERS, userIdsArray) data.putStringArray(BundleKeys.KEY_SELECTED_USERS, userIdsArray)
data.putStringArray(BundleKeys.KEY_SELECTED_GROUPS, groupIdsArray) data.putStringArray(BundleKeys.KEY_SELECTED_GROUPS, groupIdsArray)
@ -402,13 +402,13 @@ class ContactsController(args: Bundle) :
if (!isAddingParticipantsView) { if (!isAddingParticipantsView) {
// groups // groups
shareTypesList.add("1") shareTypesList.add("1")
} else if (CapabilitiesUtil.hasSpreedFeatureCapability(currentUser, "invite-groups-and-mails")) { } else if (CapabilitiesUtilNew.hasSpreedFeatureCapability(currentUser, "invite-groups-and-mails")) {
// groups // groups
shareTypesList.add("1") shareTypesList.add("1")
// emails // emails
shareTypesList.add("4") shareTypesList.add("4")
} }
if (CapabilitiesUtil.hasSpreedFeatureCapability(currentUser, "circles-support")) { if (CapabilitiesUtilNew.hasSpreedFeatureCapability(currentUser, "circles-support")) {
// circles // circles
shareTypesList.add("7") shareTypesList.add("7")
} }
@ -732,7 +732,7 @@ class ContactsController(args: Bundle) :
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
fun onMessageEvent(openConversationEvent: OpenConversationEvent) { fun onMessageEvent(openConversationEvent: OpenConversationEvent) {
ConductorRemapping.remapChatController( ConductorRemapping.remapChatController(
router, currentUser!!.id, router, currentUser!!.id!!,
openConversationEvent.conversation!!.token!!, openConversationEvent.conversation!!.token!!,
openConversationEvent.bundle!!, true openConversationEvent.bundle!!, true
) )
@ -759,8 +759,8 @@ class ContactsController(args: Bundle) :
private fun updateSelection(contactItem: ContactItem) { private fun updateSelection(contactItem: ContactItem) {
contactItem.model.selected = !contactItem.model.selected contactItem.model.selected = !contactItem.model.selected
updateSelectionLists(contactItem.model) updateSelectionLists(contactItem.model)
if (CapabilitiesUtil.hasSpreedFeatureCapability(currentUser, "last-room-activity") && if (CapabilitiesUtilNew.hasSpreedFeatureCapability(currentUser, "last-room-activity") &&
!CapabilitiesUtil.hasSpreedFeatureCapability(currentUser, "invite-groups-and-mails") && !CapabilitiesUtilNew.hasSpreedFeatureCapability(currentUser, "invite-groups-and-mails") &&
isValidGroupSelection(contactItem, contactItem.model, adapter) isValidGroupSelection(contactItem, contactItem.model, adapter)
) { ) {
val currentItems: List<ContactItem> = adapter?.currentItems as List<ContactItem> val currentItems: List<ContactItem> = adapter?.currentItems as List<ContactItem>
@ -817,7 +817,7 @@ class ContactsController(args: Bundle) :
) )
ConductorRemapping.remapChatController( ConductorRemapping.remapChatController(
router, router,
currentUser!!.id, currentUser!!.id!!,
roomOverall.ocs!!.data!!.token!!, roomOverall.ocs!!.data!!.token!!,
bundle, bundle,
true true

View File

@ -30,19 +30,17 @@ import android.view.View
import autodagger.AutoInjector import autodagger.AutoInjector
import com.bluelinelabs.conductor.RouterTransaction import com.bluelinelabs.conductor.RouterTransaction
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler
import com.bluelinelabs.logansquare.LoganSquare
import com.nextcloud.talk.R import com.nextcloud.talk.R
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.application.NextcloudTalkApplication.Companion.sharedApplication import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
import com.nextcloud.talk.controllers.base.NewBaseController import com.nextcloud.talk.controllers.base.NewBaseController
import com.nextcloud.talk.controllers.util.viewBinding import com.nextcloud.talk.controllers.util.viewBinding
import com.nextcloud.talk.data.user.model.User
import com.nextcloud.talk.databinding.ControllerOperationsMenuBinding import com.nextcloud.talk.databinding.ControllerOperationsMenuBinding
import com.nextcloud.talk.events.ConversationsListFetchDataEvent import com.nextcloud.talk.events.ConversationsListFetchDataEvent
import com.nextcloud.talk.events.OpenConversationEvent import com.nextcloud.talk.events.OpenConversationEvent
import com.nextcloud.talk.models.RetrofitBucket import com.nextcloud.talk.models.RetrofitBucket
import com.nextcloud.talk.models.database.CapabilitiesUtil
import com.nextcloud.talk.models.database.UserEntity
import com.nextcloud.talk.models.json.capabilities.Capabilities import com.nextcloud.talk.models.json.capabilities.Capabilities
import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall
import com.nextcloud.talk.models.json.conversations.Conversation import com.nextcloud.talk.models.json.conversations.Conversation
@ -50,6 +48,7 @@ import com.nextcloud.talk.models.json.conversations.Conversation.ConversationTyp
import com.nextcloud.talk.models.json.conversations.RoomOverall import com.nextcloud.talk.models.json.conversations.RoomOverall
import com.nextcloud.talk.models.json.generic.GenericOverall import com.nextcloud.talk.models.json.generic.GenericOverall
import com.nextcloud.talk.models.json.participants.AddParticipantOverall import com.nextcloud.talk.models.json.participants.AddParticipantOverall
import com.nextcloud.talk.users.UserManager
import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DisplayUtils import com.nextcloud.talk.utils.DisplayUtils
import com.nextcloud.talk.utils.NoSupportedApiException import com.nextcloud.talk.utils.NoSupportedApiException
@ -66,7 +65,7 @@ import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_ID
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SERVER_CAPABILITIES import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SERVER_CAPABILITIES
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_USER_ENTITY import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_USER_ENTITY
import com.nextcloud.talk.utils.database.user.UserUtils import com.nextcloud.talk.utils.database.user.CapabilitiesUtilNew
import com.nextcloud.talk.utils.singletons.ApplicationWideMessageHolder import com.nextcloud.talk.utils.singletons.ApplicationWideMessageHolder
import io.reactivex.Observer import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
@ -90,14 +89,14 @@ class OperationsMenuController(args: Bundle) : NewBaseController(
lateinit var ncApi: NcApi lateinit var ncApi: NcApi
@Inject @Inject
lateinit var userUtils: UserUtils lateinit var userManager: UserManager
@Inject @Inject
lateinit var eventBus: EventBus lateinit var eventBus: EventBus
private val operation: ConversationOperationEnum? private val operation: ConversationOperationEnum?
private var conversation: Conversation? = null private var conversation: Conversation? = null
private var currentUser: UserEntity? = null private var currentUser: User? = null
private val callPassword: String private val callPassword: String
private val callUrl: String private val callUrl: String
private var baseUrl: String? = null private var baseUrl: String? = null
@ -116,7 +115,7 @@ class OperationsMenuController(args: Bundle) : NewBaseController(
override fun onViewBound(view: View) { override fun onViewBound(view: View) {
super.onViewBound(view) super.onViewBound(view)
sharedApplication!!.componentApplication.inject(this) sharedApplication!!.componentApplication.inject(this)
currentUser = userUtils.currentUser currentUser = userManager.currentUser.blockingGet()
if (!TextUtils.isEmpty(callUrl) && callUrl.contains("/call")) { if (!TextUtils.isEmpty(callUrl) && callUrl.contains("/call")) {
conversationToken = callUrl.substring(callUrl.lastIndexOf("/") + 1) conversationToken = callUrl.substring(callUrl.lastIndexOf("/") + 1)
@ -144,11 +143,11 @@ class OperationsMenuController(args: Bundle) : NewBaseController(
@Throws(IOException::class) @Throws(IOException::class)
private fun useBundledCapabilitiesForGuest() { private fun useBundledCapabilitiesForGuest() {
currentUser = UserEntity() currentUser = User()
currentUser!!.baseUrl = baseUrl currentUser!!.baseUrl = baseUrl
currentUser!!.userId = "?" currentUser!!.userId = "?"
try { try {
currentUser!!.capabilities = LoganSquare.serialize(serverCapabilities) currentUser!!.capabilities = serverCapabilities
} catch (e: IOException) { } catch (e: IOException) {
Log.e("OperationsMenu", "Failed to serialize capabilities") Log.e("OperationsMenu", "Failed to serialize capabilities")
throw e throw e
@ -172,12 +171,11 @@ class OperationsMenuController(args: Bundle) : NewBaseController(
} }
override fun onNext(capabilitiesOverall: CapabilitiesOverall) { override fun onNext(capabilitiesOverall: CapabilitiesOverall) {
currentUser = UserEntity() currentUser = User()
currentUser!!.baseUrl = baseUrl currentUser!!.baseUrl = baseUrl
currentUser!!.userId = "?" currentUser!!.userId = "?"
try { try {
currentUser!!.capabilities = LoganSquare currentUser!!.capabilities = capabilitiesOverall.ocs!!.data!!.capabilities
.serialize(capabilitiesOverall.ocs!!.data!!.capabilities)
} catch (e: IOException) { } catch (e: IOException) {
Log.e("OperationsMenu", "Failed to serialize capabilities") Log.e("OperationsMenu", "Failed to serialize capabilities")
} }
@ -469,12 +467,7 @@ class OperationsMenuController(args: Bundle) : NewBaseController(
try { try {
bundle.putParcelable( bundle.putParcelable(
KEY_SERVER_CAPABILITIES, KEY_SERVER_CAPABILITIES,
Parcels.wrap<Capabilities>( Parcels.wrap<Capabilities>(currentUser!!.capabilities)
LoganSquare.parse<Capabilities>(
currentUser!!.capabilities,
Capabilities::class.java
)
)
) )
} catch (e: IOException) { } catch (e: IOException) {
Log.e(TAG, "Failed to parse capabilities for guest") Log.e(TAG, "Failed to parse capabilities for guest")
@ -604,7 +597,7 @@ class OperationsMenuController(args: Bundle) : NewBaseController(
} }
@kotlin.Throws(NoSupportedApiException::class) @kotlin.Throws(NoSupportedApiException::class)
private fun checkCapabilities(currentUser: UserEntity) { private fun checkCapabilities(currentUser: User) {
ApiUtils.getConversationApiVersion(currentUser, intArrayOf(ApiUtils.APIv4, 1)) ApiUtils.getConversationApiVersion(currentUser, intArrayOf(ApiUtils.APIv4, 1))
ApiUtils.getCallApiVersion(currentUser, intArrayOf(ApiUtils.APIv4, 1)) ApiUtils.getCallApiVersion(currentUser, intArrayOf(ApiUtils.APIv4, 1))
ApiUtils.getChatApiVersion(currentUser, intArrayOf(1)) ApiUtils.getChatApiVersion(currentUser, intArrayOf(1))
@ -619,7 +612,7 @@ class OperationsMenuController(args: Bundle) : NewBaseController(
} }
val apiVersion = ApiUtils.getConversationApiVersion(currentUser, API_CONVERSATION_VERSIONS) val apiVersion = ApiUtils.getConversationApiVersion(currentUser, API_CONVERSATION_VERSIONS)
if (localInvitedUsers!!.size > 0 || localInvitedGroups.size > 0 && if (localInvitedUsers!!.size > 0 || localInvitedGroups.size > 0 &&
CapabilitiesUtil.hasSpreedFeatureCapability(currentUser, "invite-groups-and-mails") CapabilitiesUtilNew.hasSpreedFeatureCapability(currentUser, "invite-groups-and-mails")
) { ) {
addGroupsToConversation(localInvitedUsers, localInvitedGroups, apiVersion) addGroupsToConversation(localInvitedUsers, localInvitedGroups, apiVersion)
addUsersToConversation(localInvitedUsers, localInvitedGroups, apiVersion) addUsersToConversation(localInvitedUsers, localInvitedGroups, apiVersion)
@ -676,7 +669,7 @@ class OperationsMenuController(args: Bundle) : NewBaseController(
) { ) {
var retrofitBucket: RetrofitBucket var retrofitBucket: RetrofitBucket
if (localInvitedGroups!!.size > 0 && if (localInvitedGroups!!.size > 0 &&
CapabilitiesUtil.hasSpreedFeatureCapability(currentUser, "invite-groups-and-mails") CapabilitiesUtilNew.hasSpreedFeatureCapability(currentUser, "invite-groups-and-mails")
) { ) {
for (i in localInvitedGroups.indices) { for (i in localInvitedGroups.indices) {
val groupId = localInvitedGroups[i] val groupId = localInvitedGroups[i]

View File

@ -51,15 +51,15 @@ import org.parceler.Parcels
private const val TAG = "ProfileBottomSheet" private const val TAG = "ProfileBottomSheet"
class ProfileBottomSheet(val ncApi: NcApi, val userEntity: User, val router: Router) { class ProfileBottomSheet(val ncApi: NcApi, val userModel: User, val router: Router) {
private val allowedAppIds = listOf(SPREED.stringValue, PROFILE.stringValue, EMAIL.stringValue) private val allowedAppIds = listOf(SPREED.stringValue, PROFILE.stringValue, EMAIL.stringValue)
fun showFor(user: String, context: Context) { fun showFor(user: String, context: Context) {
ncApi.hoverCard( ncApi.hoverCard(
ApiUtils.getCredentials(userEntity.username, userEntity.token), ApiUtils.getCredentials(userModel.username, userModel.token),
ApiUtils.getUrlForHoverCard(userEntity.baseUrl, user) ApiUtils.getUrlForHoverCard(userModel.baseUrl, user)
).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) ).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(object : Observer<HoverCardOverall> { .subscribe(object : Observer<HoverCardOverall> {
override fun onSubscribe(d: Disposable) { override fun onSubscribe(d: Disposable) {
@ -68,7 +68,8 @@ class ProfileBottomSheet(val ncApi: NcApi, val userEntity: User, val router: Rou
override fun onNext(hoverCardOverall: HoverCardOverall) { override fun onNext(hoverCardOverall: HoverCardOverall) {
bottomSheet( bottomSheet(
hoverCardOverall.ocs!!.data!!.actions!!, hoverCardOverall.ocs!!.data!!.displayName!!, hoverCardOverall.ocs!!.data!!.actions!!,
hoverCardOverall.ocs!!.data!!.displayName!!,
user, user,
context context
) )
@ -124,16 +125,16 @@ class ProfileBottomSheet(val ncApi: NcApi, val userEntity: User, val router: Rou
private fun talkTo(userId: String) { private fun talkTo(userId: String) {
val apiVersion = val apiVersion =
ApiUtils.getConversationApiVersion(userEntity, intArrayOf(ApiUtils.APIv4, 1)) ApiUtils.getConversationApiVersion(userModel, intArrayOf(ApiUtils.APIv4, 1))
val retrofitBucket = ApiUtils.getRetrofitBucketForCreateRoom( val retrofitBucket = ApiUtils.getRetrofitBucketForCreateRoom(
apiVersion, apiVersion,
userEntity.baseUrl, userModel.baseUrl,
"1", "1",
null, null,
userId, userId,
null null
) )
val credentials = ApiUtils.getCredentials(userEntity.username, userEntity.token) val credentials = ApiUtils.getCredentials(userModel.username, userModel.token)
ncApi.createRoom( ncApi.createRoom(
credentials, credentials,
retrofitBucket.url, retrofitBucket.queryMap retrofitBucket.url, retrofitBucket.queryMap
@ -147,7 +148,7 @@ class ProfileBottomSheet(val ncApi: NcApi, val userEntity: User, val router: Rou
override fun onNext(roomOverall: RoomOverall) { override fun onNext(roomOverall: RoomOverall) {
val bundle = Bundle() val bundle = Bundle()
bundle.putParcelable(BundleKeys.KEY_USER_ENTITY, userEntity) bundle.putParcelable(BundleKeys.KEY_USER_ENTITY, userModel)
bundle.putString(BundleKeys.KEY_ROOM_TOKEN, roomOverall.ocs!!.data!!.token) bundle.putString(BundleKeys.KEY_ROOM_TOKEN, roomOverall.ocs!!.data!!.token)
bundle.putString(BundleKeys.KEY_ROOM_ID, roomOverall.ocs!!.data!!.roomId) bundle.putString(BundleKeys.KEY_ROOM_ID, roomOverall.ocs!!.data!!.roomId)
@ -155,7 +156,7 @@ class ProfileBottomSheet(val ncApi: NcApi, val userEntity: User, val router: Rou
ncApi.getRoom( ncApi.getRoom(
credentials, credentials,
ApiUtils.getUrlForRoom( ApiUtils.getUrlForRoom(
apiVersion, userEntity.baseUrl, apiVersion, userModel.baseUrl,
roomOverall.ocs!!.data!!.token roomOverall.ocs!!.data!!.token
) )
) )
@ -172,7 +173,7 @@ class ProfileBottomSheet(val ncApi: NcApi, val userEntity: User, val router: Rou
Parcels.wrap(roomOverall.ocs!!.data) Parcels.wrap(roomOverall.ocs!!.data)
) )
ConductorRemapping.remapChatController( ConductorRemapping.remapChatController(
router, userEntity.id!!, router, userModel.id!!,
roomOverall.ocs!!.data!!.token!!, bundle, true roomOverall.ocs!!.data!!.token!!, bundle, true
) )
} }

View File

@ -1 +1 @@
152 151