diff options
Diffstat (limited to 'InCallUI')
3 files changed, 25 insertions, 18 deletions
diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java index 8a5170c88..1f7a36fed 100644 --- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java +++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java @@ -41,7 +41,6 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto private boolean mAutomaticallyMuted = false; private boolean mPreviousMuteState = false; private boolean mShowManageConference = false; - private InCallCameraManager mInCallCameraManager; public CallButtonPresenter() { } @@ -55,7 +54,6 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto // register for call state changes last InCallPresenter.getInstance().addListener(this); InCallPresenter.getInstance().addIncomingCallListener(this); - mInCallCameraManager = InCallPresenter.getInstance().getInCallCameraManager(); } @Override @@ -65,7 +63,6 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto InCallPresenter.getInstance().removeListener(this); AudioModeProvider.getInstance().removeListener(this); InCallPresenter.getInstance().removeIncomingCallListener(this); - mInCallCameraManager = null; } @Override @@ -236,14 +233,15 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto * false if we should switch to using the back-facing camera. */ public void switchCameraClicked(boolean useFrontFacingCamera) { - mInCallCameraManager.setUseFrontFacingCamera(useFrontFacingCamera); + InCallCameraManager cameraManager = InCallPresenter.getInstance().getInCallCameraManager(); + cameraManager.setUseFrontFacingCamera(useFrontFacingCamera); VideoCall videoCall = mCall.getVideoCall(); if (videoCall == null) { return; } - String cameraId = mInCallCameraManager.getActiveCameraId(); + String cameraId = cameraManager.getActiveCameraId(); if (cameraId != null) { videoCall.setCamera(cameraId); videoCall.requestCameraCapabilities(); @@ -268,7 +266,9 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto mCall.getVideoState() | VideoProfile.VideoState.PAUSED); videoCall.sendSessionModifyRequest(videoProfile); } else { - videoCall.setCamera(mInCallCameraManager.getActiveCameraId()); + InCallCameraManager cameraManager = InCallPresenter.getInstance(). + getInCallCameraManager(); + videoCall.setCamera(cameraManager.getActiveCameraId()); VideoProfile videoProfile = new VideoProfile( mCall.getVideoState() & ~VideoProfile.VideoState.PAUSED); videoCall.sendSessionModifyRequest(videoProfile); diff --git a/InCallUI/src/com/android/incallui/InCallCameraManager.java b/InCallUI/src/com/android/incallui/InCallCameraManager.java index 084a98f92..ded9387f3 100644 --- a/InCallUI/src/com/android/incallui/InCallCameraManager.java +++ b/InCallUI/src/com/android/incallui/InCallCameraManager.java @@ -103,8 +103,22 @@ public class InCallCameraManager { * @param context The context. */ private void initializeCameraList(Context context) { - CameraManager cameraManager = (CameraManager) context.getSystemService( - Context.CAMERA_SERVICE); + if (context == null) { + return; + } + + CameraManager cameraManager = null; + try { + cameraManager = (CameraManager) context.getSystemService( + Context.CAMERA_SERVICE); + } catch (Exception e) { + Log.e(this, "Could not get camera service."); + return; + } + + if (cameraManager == null) { + return; + } String[] cameraIds = {}; try { diff --git a/InCallUI/src/com/android/incallui/VideoCallPresenter.java b/InCallUI/src/com/android/incallui/VideoCallPresenter.java index f218de265..452360554 100644 --- a/InCallUI/src/com/android/incallui/VideoCallPresenter.java +++ b/InCallUI/src/com/android/incallui/VideoCallPresenter.java @@ -125,11 +125,6 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi private boolean mIsVideoCall; /** - * Determines the active camera for transmitted video. - */ - private InCallCameraManager mInCallCameraManager; - - /** * Determines the device orientation (portrait/lanscape). */ private int mDeviceOrientation; @@ -183,8 +178,6 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi InCallVideoCallListenerNotifier.getInstance().addSurfaceChangeListener(this); InCallVideoCallListenerNotifier.getInstance().addVideoEventListener(this); InCallVideoCallListenerNotifier.getInstance().addSessionModificationListener(this); - - mInCallCameraManager = InCallPresenter.getInstance().getInCallCameraManager(); mIsVideoCall = false; } @@ -203,8 +196,6 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi InCallVideoCallListenerNotifier.getInstance().removeSurfaceChangeListener(this); InCallVideoCallListenerNotifier.getInstance().removeVideoEventListener(this); InCallVideoCallListenerNotifier.getInstance().removeSessionModificationListener(this); - - mInCallCameraManager = null; } /** @@ -425,7 +416,9 @@ public class VideoCallPresenter extends Presenter<VideoCallPresenter.VideoCallUi } mPreviewSurfaceState = PreviewSurfaceState.CAMERA_SET; - mVideoCall.setCamera(mInCallCameraManager.getActiveCameraId()); + InCallCameraManager cameraManager = InCallPresenter.getInstance(). + getInCallCameraManager(); + mVideoCall.setCamera(cameraManager.getActiveCameraId()); mVideoCall.requestCameraCapabilities(); if (ui.isDisplayVideoSurfaceCreated()) { |