فهرست منبع

Safeguard against crashes on devices with no camera

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 7 سال پیش
والد
کامیت
a3c54fd854
1فایلهای تغییر یافته به همراه21 افزوده شده و 10 حذف شده
  1. 21 10
      app/src/main/java/com/nextcloud/talk/activities/CallActivity.java

+ 21 - 10
app/src/main/java/com/nextcloud/talk/activities/CallActivity.java

@@ -504,6 +504,10 @@ public class CallActivity extends AppCompatActivity {
                 onMicrophoneClick();
             }
 
+            if (cameraEnumerator.getDeviceNames().length == 0) {
+                cameraControlButton.setVisibility(View.GONE);
+            }
+
             if (cameraSwitchButton != null && cameraEnumerator.getDeviceNames().length > 1) {
                 cameraSwitchButton.setVisibility(View.VISIBLE);
             }
@@ -518,6 +522,10 @@ public class CallActivity extends AppCompatActivity {
                     onCameraClick();
                 }
 
+                if (cameraEnumerator.getDeviceNames().length == 0) {
+                    cameraControlButton.setVisibility(View.GONE);
+                }
+
                 if (cameraSwitchButton != null && cameraEnumerator.getDeviceNames().length > 1) {
                     cameraSwitchButton.setVisibility(View.VISIBLE);
                 }
@@ -606,16 +614,19 @@ public class CallActivity extends AppCompatActivity {
         videoCapturer = createCameraCapturer(cameraEnumerator);
 
         //Create a VideoSource instance
-        videoSource = peerConnectionFactory.createVideoSource(videoCapturer);
-        localVideoTrack = peerConnectionFactory.createVideoTrack("NCv0", videoSource);
-        localMediaStream.addTrack(localVideoTrack);
-        localVideoTrack.setEnabled(false);
-
-        //create a videoRenderer based on SurfaceViewRenderer instance
-        localRenderer = new VideoRenderer(pipVideoView);
-        // And finally, with our VideoRenderer ready, we
-        // can add our renderer to the VideoTrack.
-        localVideoTrack.addRenderer(localRenderer);
+        if (videoCapturer != null) {
+            videoSource = peerConnectionFactory.createVideoSource(videoCapturer);
+            localVideoTrack = peerConnectionFactory.createVideoTrack("NCv0", videoSource);
+            localMediaStream.addTrack(localVideoTrack);
+            localVideoTrack.setEnabled(false);
+
+            //create a videoRenderer based on SurfaceViewRenderer instance
+            localRenderer = new VideoRenderer(pipVideoView);
+            // And finally, with our VideoRenderer ready, we
+            // can add our renderer to the VideoTrack.
+            localVideoTrack.addRenderer(localRenderer);
+        }
+
     }
 
     private void microphoneInitialization() {