Do not crash when receiving video call on device w/o camera
Upon accepting a video call on a device that can not establish a video track on its own (for example by not having a camera), displaying the video enable/disable button would fail. This commit defaults this button to disabled.
This commit is contained in:
		
							parent
							
								
									77f448692c
								
							
						
					
					
						commit
						1822a71c2a
					
				|  | @ -874,7 +874,12 @@ public class RtpSessionActivity extends XmppActivity implements XmppConnectionSe | |||
|     } | ||||
| 
 | ||||
|     private void enableVideo(View view) { | ||||
|         requireRtpConnection().setVideoEnabled(true); | ||||
|         try { | ||||
|             requireRtpConnection().setVideoEnabled(true); | ||||
|         } catch (final IllegalStateException e) { | ||||
|             Toast.makeText(this, R.string.unable_to_enable_video, Toast.LENGTH_SHORT).show(); | ||||
|             return; | ||||
|         } | ||||
|         updateInCallButtonConfigurationVideo(true, requireRtpConnection().isCameraSwitchable()); | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -408,11 +408,7 @@ public abstract class XmppActivity extends ActionBarActivity { | |||
|         metrics = getResources().getDisplayMetrics(); | ||||
|         ExceptionHelper.init(getApplicationContext()); | ||||
|         new EmojiService(this).init(); | ||||
|         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { | ||||
|             this.isCameraFeatureAvailable = getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY); | ||||
|         } else { | ||||
|             this.isCameraFeatureAvailable = getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA); | ||||
|         } | ||||
|         this.isCameraFeatureAvailable = getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY); | ||||
|         this.mTheme = findTheme(); | ||||
|         setTheme(this.mTheme); | ||||
|     } | ||||
|  |  | |||
|  | @ -393,7 +393,7 @@ public class WebRTCWrapper { | |||
|     boolean isVideoEnabled() { | ||||
|         final VideoTrack videoTrack = this.localVideoTrack; | ||||
|         if (videoTrack == null) { | ||||
|             throw new IllegalStateException("Local video track does not exist"); | ||||
|             return false; | ||||
|         } | ||||
|         return videoTrack.enabled(); | ||||
|     } | ||||
|  |  | |||
|  | @ -961,4 +961,5 @@ | |||
|     <string name="server_does_not_support_easy_onboarding_invites">Server does not support generating invites</string> | ||||
|     <string name="no_active_accounts_support_this">No active accounts support this feature</string> | ||||
|     <string name="backup_started_message">The backup has been started. You’ll get a notification once it has been completed.</string> | ||||
|     <string name="unable_to_enable_video">Unable to enable video.</string> | ||||
| </resources> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Daniel Gultsch
						Daniel Gultsch