summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--InCallUI/src/com/android/incallui/CallButtonPresenter.java12
-rw-r--r--InCallUI/src/com/android/incallui/InCallCameraManager.java18
-rw-r--r--InCallUI/src/com/android/incallui/VideoCallPresenter.java13
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()) {