catch NPE when detecting camera facing. fixes #3820

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java | 10 
1 file changed, 9 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java 🔗

@@ -509,7 +509,7 @@ public class WebRTCWrapper {
         final CameraEnumerator enumerator = getCameraEnumerator();
         final Set<String> deviceNames = ImmutableSet.copyOf(enumerator.getDeviceNames());
         for (final String deviceName : deviceNames) {
-            if (enumerator.isFrontFacing(deviceName)) {
+            if (isFrontFacing(enumerator, deviceName)) {
                 final CapturerChoice capturerChoice = of(enumerator, deviceName, deviceNames);
                 if (capturerChoice == null) {
                     return Optional.absent();
@@ -525,6 +525,14 @@ public class WebRTCWrapper {
         }
     }
 
+    private static boolean isFrontFacing(final CameraEnumerator cameraEnumerator, final String deviceName) {
+        try {
+            return cameraEnumerator.isFrontFacing(deviceName);
+        } catch (final NullPointerException e) {
+            return false;
+        }
+    }
+
     public PeerConnection.PeerConnectionState getState() {
         return requirePeerConnection().connectionState();
     }