فهرست منبع

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

Use already fetched capabilities for user
Marcel Hibbe 2 سال پیش
والد
کامیت
5312bee14d
1فایلهای تغییر یافته به همراه11 افزوده شده و 5 حذف شده
  1. 11 5
      app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.kt

+ 11 - 5
app/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.kt

@@ -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 {