mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 03:59:35 +01:00
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:
commit
26ce9ee868
@ -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();
|
||||||
|
@ -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
|
||||||
|
@ -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]
|
||||||
|
@ -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
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
152
|
151
|
Loading…
Reference in New Issue
Block a user