Browse Source

Add web button and use capabilities

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 7 years ago
parent
commit
209b0b3103

+ 49 - 7
app/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java

@@ -21,6 +21,7 @@
 package com.nextcloud.talk.controllers.bottomsheet;
 package com.nextcloud.talk.controllers.bottomsheet;
 
 
 import android.content.Intent;
 import android.content.Intent;
+import android.net.Uri;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.NonNull;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
@@ -39,6 +40,7 @@ import com.nextcloud.talk.application.NextcloudTalkApplication;
 import com.nextcloud.talk.controllers.base.BaseController;
 import com.nextcloud.talk.controllers.base.BaseController;
 import com.nextcloud.talk.events.BottomSheetLockEvent;
 import com.nextcloud.talk.events.BottomSheetLockEvent;
 import com.nextcloud.talk.models.database.UserEntity;
 import com.nextcloud.talk.models.database.UserEntity;
+import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall;
 import com.nextcloud.talk.models.json.rooms.Room;
 import com.nextcloud.talk.models.json.rooms.Room;
 import com.nextcloud.talk.models.json.rooms.RoomOverall;
 import com.nextcloud.talk.models.json.rooms.RoomOverall;
 import com.nextcloud.talk.utils.ApiUtils;
 import com.nextcloud.talk.utils.ApiUtils;
@@ -76,6 +78,9 @@ public class OperationsMenuController extends BaseController {
     @BindView(R.id.ok_button)
     @BindView(R.id.ok_button)
     Button okButton;
     Button okButton;
 
 
+    @BindView(R.id.web_button)
+    Button webButton;
+
     @Inject
     @Inject
     NcApi ncApi;
     NcApi ncApi;
 
 
@@ -203,11 +208,42 @@ public class OperationsMenuController extends BaseController {
                                 @Override
                                 @Override
                                 public void onNext(RoomOverall roomOverall) {
                                 public void onNext(RoomOverall roomOverall) {
                                     room = roomOverall.getOcs().getData();
                                     room = roomOverall.getOcs().getData();
-                                    if (room.isHasPassword() && room.isGuest()) {
-
-                                    } else {
-                                        initiateCall();
-                                    }
+                                    ncApi.getCapabilities(null, ApiUtils.getUrlForCapabilities(baseUrl))
+                                            .subscribeOn(Schedulers.newThread())
+                                            .observeOn(AndroidSchedulers.mainThread())
+                                            .subscribe(new Observer<CapabilitiesOverall>() {
+                                                @Override
+                                                public void onSubscribe(Disposable d) {
+
+                                                }
+
+                                                @Override
+                                                public void onNext(CapabilitiesOverall capabilitiesOverall) {
+                                                    if (capabilitiesOverall.getOcs().getData()
+                                                            .getCapabilities().getSpreedCapability() != null &&
+                                                            capabilitiesOverall.getOcs().getData()
+                                                                    .getCapabilities().getSpreedCapability()
+                                                                    .getFeatures() != null) {
+                                                        if (room.isHasPassword() && room.isGuest()) {
+
+                                                        } else {
+                                                            initiateCall();
+                                                        }
+                                                    } else {
+                                                        showResultImage(false, true);
+                                                    }
+                                                }
+
+                                                @Override
+                                                public void onError(Throwable e) {
+                                                    showResultImage(false, false);
+                                                }
+
+                                                @Override
+                                                public void onComplete() {
+
+                                                }
+                                            });
                                 }
                                 }
 
 
                                 @Override
                                 @Override
@@ -236,7 +272,7 @@ public class OperationsMenuController extends BaseController {
         }
         }
     }
     }
 
 
-    private void showResultImage(boolean everythingOK, boolean isSignalingSettingsError) {
+    private void showResultImage(boolean everythingOK, boolean isGuestSupportError) {
         progressBar.setVisibility(View.GONE);
         progressBar.setVisibility(View.GONE);
 
 
         if (everythingOK) {
         if (everythingOK) {
@@ -253,10 +289,16 @@ public class OperationsMenuController extends BaseController {
             resultsTextView.setText(R.string.nc_all_ok_operation);
             resultsTextView.setText(R.string.nc_all_ok_operation);
         } else {
         } else {
             resultsTextView.setTextColor(getResources().getColor(R.color.nc_darkRed));
             resultsTextView.setTextColor(getResources().getColor(R.color.nc_darkRed));
-            if (!isSignalingSettingsError) {
+            if (!isGuestSupportError) {
                 resultsTextView.setText(R.string.nc_failed_to_perform_operation);
                 resultsTextView.setText(R.string.nc_failed_to_perform_operation);
             } else {
             } else {
                 resultsTextView.setText(R.string.nc_failed_signaling_settings);
                 resultsTextView.setText(R.string.nc_failed_signaling_settings);
+                webButton.setOnClickListener(v -> {
+                    new BottomSheetLockEvent(true, 0, false, true);
+                    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(callUrl));
+                    startActivity(browserIntent);
+                });
+                webButton.setVisibility(View.VISIBLE);
             }
             }
         }
         }
 
 

+ 15 - 1
app/src/main/res/layout/controller_operations_menu.xml

@@ -74,4 +74,18 @@
         android:text="@string/nc_ok"
         android:text="@string/nc_ok"
         android:textColor="@color/colorPrimary"
         android:textColor="@color/colorPrimary"
         android:visibility="gone"/>
         android:visibility="gone"/>
-</RelativeLayout>
+
+    <Button
+        android:id="@+id/web_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/result_text_view"
+        android:layout_marginBottom="12dp"
+        android:layout_marginEnd="8dp"
+        android:layout_toStartOf="@id/ok_button"
+        android:background="#0000"
+        android:text="@string/nc_join_via_web"
+        android:textColor="@color/nc_darkGreen"
+        android:visibility="gone"/>
+
+</RelativeLayout>