ソースを参照

allow getPeersForCall without QueryMap

- null was not allowed for query map (led to Illegal Argument Exception which caused issue #1853)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 3 年 前
コミット
1b30a6ef62

+ 1 - 2
app/src/gplay/java/com/nextcloud/talk/services/firebase/MagicFirebaseMessagingService.kt

@@ -280,8 +280,7 @@ class MagicFirebaseMessagingService : FirebaseMessagingService() {
                 apiVersion,
                 signatureVerification.userEntity.baseUrl,
                 decryptedPushMessage.id
-            ),
-            null
+            )
         )
             .repeatWhen { completed ->
                 completed.zipWith(Observable.range(1, OBSERVABLE_COUNT), { _, i -> i })

+ 6 - 1
app/src/main/java/com/nextcloud/talk/activities/CallActivity.java

@@ -1787,7 +1787,12 @@ public class CallActivity extends CallBaseActivity {
         Log.d(TAG, "getPeersForCall");
         int apiVersion = ApiUtils.getCallApiVersion(conversationUser, new int[]{ApiUtils.APIv4, 1});
 
-        ncApi.getPeersForCall(credentials, ApiUtils.getUrlForCall(apiVersion, baseUrl, roomToken), null)
+        ncApi.getPeersForCall(
+            credentials,
+            ApiUtils.getUrlForCall(
+                apiVersion,
+                baseUrl,
+                roomToken))
             .subscribeOn(Schedulers.io())
             .subscribe(new Observer<ParticipantsOverall>() {
                 @Override

+ 6 - 2
app/src/main/java/com/nextcloud/talk/activities/CallNotificationActivity.java

@@ -214,8 +214,12 @@ public class CallNotificationActivity extends CallBaseActivity {
     private void checkIfAnyParticipantsRemainInRoom() {
         int apiVersion = ApiUtils.getCallApiVersion(userBeingCalled, new int[]{ApiUtils.APIv4, 1});
 
-        ncApi.getPeersForCall(credentials, ApiUtils.getUrlForCall(apiVersion, userBeingCalled.getBaseUrl(),
-                                                                  currentConversation.getToken()), null)
+        ncApi.getPeersForCall(
+            credentials,
+            ApiUtils.getUrlForCall(
+                apiVersion,
+                userBeingCalled.getBaseUrl(),
+                currentConversation.getToken()))
             .subscribeOn(Schedulers.io())
             .repeatWhen(completed -> completed.zipWith(Observable.range(1, 12), (n, i) -> i)
                 .flatMap(retryCount -> Observable.timer(5, TimeUnit.SECONDS))

+ 4 - 1
app/src/main/java/com/nextcloud/talk/api/NcApi.java

@@ -186,9 +186,12 @@ public interface NcApi {
     /*
         Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /call/callToken
     */
+    @GET
+    Observable<ParticipantsOverall> getPeersForCall(@Header("Authorization") String authorization, @Url String url);
+
     @GET
     Observable<ParticipantsOverall> getPeersForCall(@Header("Authorization") String authorization, @Url String url,
-                                                   @QueryMap Map<String, Boolean> fields);
+                                                    @QueryMap Map<String, Boolean> fields);
 
     @FormUrlEncoded
     @POST

+ 6 - 1
app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt

@@ -438,7 +438,12 @@ class ConversationInfoController(args: Bundle) :
 
         ncApi?.getPeersForCall(
             credentials,
-            ApiUtils.getUrlForParticipants(apiVersion, conversationUser!!.baseUrl, conversationToken), fieldMap
+            ApiUtils.getUrlForParticipants(
+                apiVersion,
+                conversationUser!!.baseUrl,
+                conversationToken
+            ),
+            fieldMap
         )
             ?.subscribeOn(Schedulers.io())
             ?.observeOn(AndroidSchedulers.mainThread())