Merge pull request #2485 from nextcloud/bugfix/2418/server-not-supported

Use already fetched capabilities for user
This commit is contained in:
Marcel Hibbe 2022-10-13 08:44:29 +02:00 committed by GitHub
commit 5312bee14d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -34,6 +34,7 @@ import androidx.work.WorkManager
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
@ -46,6 +47,7 @@ import com.nextcloud.talk.events.EventStatus
import com.nextcloud.talk.jobs.CapabilitiesWorker import com.nextcloud.talk.jobs.CapabilitiesWorker
import com.nextcloud.talk.jobs.PushRegistrationWorker import com.nextcloud.talk.jobs.PushRegistrationWorker
import com.nextcloud.talk.jobs.SignalingSettingsWorker import com.nextcloud.talk.jobs.SignalingSettingsWorker
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.generic.Status import com.nextcloud.talk.models.json.generic.Status
import com.nextcloud.talk.models.json.userprofile.UserProfileOverall import com.nextcloud.talk.models.json.userprofile.UserProfileOverall
@ -205,7 +207,7 @@ class AccountVerificationController(args: Bundle? = null) :
capabilitiesOverall.ocs!!.data!!.capabilities!!.spreedCapability!!.features != null && capabilitiesOverall.ocs!!.data!!.capabilities!!.spreedCapability!!.features != null &&
!capabilitiesOverall.ocs!!.data!!.capabilities!!.spreedCapability!!.features!!.isEmpty() !capabilitiesOverall.ocs!!.data!!.capabilities!!.spreedCapability!!.features!!.isEmpty()
if (hasTalk) { if (hasTalk) {
fetchProfile(credentials) fetchProfile(credentials, capabilitiesOverall)
} else { } else {
if (activity != null && resources != null) { if (activity != null && resources != null) {
activity!!.runOnUiThread { activity!!.runOnUiThread {
@ -247,7 +249,7 @@ class AccountVerificationController(args: Bundle? = null) :
}) })
} }
private fun storeProfile(displayName: String?, userId: String) { private fun storeProfile(displayName: String?, userId: String, capabilities: Capabilities) {
userManager.storeProfile( userManager.storeProfile(
username, username,
UserManager.UserAttributes( UserManager.UserAttributes(
@ -258,7 +260,7 @@ class AccountVerificationController(args: Bundle? = null) :
token = token, token = token,
displayName = displayName, displayName = displayName,
pushConfigurationState = null, pushConfigurationState = null,
capabilities = null, capabilities = LoganSquare.serialize(capabilities),
certificateAlias = appPreferences!!.temporaryClientCertAlias, certificateAlias = appPreferences!!.temporaryClientCertAlias,
externalSignalingServer = null externalSignalingServer = null
) )
@ -300,7 +302,7 @@ class AccountVerificationController(args: Bundle? = null) :
}) })
} }
private fun fetchProfile(credentials: String) { private fun fetchProfile(credentials: String, capabilities: CapabilitiesOverall) {
ncApi.getUserProfile( ncApi.getUserProfile(
credentials, credentials,
ApiUtils.getUrlForUserProfile(baseUrl) ApiUtils.getUrlForUserProfile(baseUrl)
@ -320,7 +322,11 @@ class AccountVerificationController(args: Bundle? = null) :
displayName = userProfileOverall.ocs!!.data!!.displayNameAlt displayName = userProfileOverall.ocs!!.data!!.displayNameAlt
} }
if (!TextUtils.isEmpty(displayName)) { if (!TextUtils.isEmpty(displayName)) {
storeProfile(displayName, userProfileOverall.ocs!!.data!!.userId!!) storeProfile(
displayName, userProfileOverall.ocs!!.data!!.userId!!,
capabilities.ocs!!.data!!
.capabilities!!
)
} else { } else {
if (activity != null) { if (activity != null) {
activity!!.runOnUiThread { activity!!.runOnUiThread {