am 3c2f216b: am 4636af18: am 04554021: Fixing NPE in InCallCameraManager.
* commit '3c2f216b2820a9555520797e0e79e4c7635f40cd':
Fixing NPE in InCallCameraManager.
diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
index 8a5170c..1f7a36f 100644
--- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
@@ -41,7 +41,6 @@
private boolean mAutomaticallyMuted = false;
private boolean mPreviousMuteState = false;
private boolean mShowManageConference = false;
- private InCallCameraManager mInCallCameraManager;
public CallButtonPresenter() {
}
@@ -55,7 +54,6 @@
// register for call state changes last
InCallPresenter.getInstance().addListener(this);
InCallPresenter.getInstance().addIncomingCallListener(this);
- mInCallCameraManager = InCallPresenter.getInstance().getInCallCameraManager();
}
@Override
@@ -65,7 +63,6 @@
InCallPresenter.getInstance().removeListener(this);
AudioModeProvider.getInstance().removeListener(this);
InCallPresenter.getInstance().removeIncomingCallListener(this);
- mInCallCameraManager = null;
}
@Override
@@ -236,14 +233,15 @@
* 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 @@
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 084a98f..ded9387 100644
--- a/InCallUI/src/com/android/incallui/InCallCameraManager.java
+++ b/InCallUI/src/com/android/incallui/InCallCameraManager.java
@@ -103,8 +103,22 @@
* @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 f218de2..4523605 100644
--- a/InCallUI/src/com/android/incallui/VideoCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
@@ -125,11 +125,6 @@
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 @@
InCallVideoCallListenerNotifier.getInstance().addSurfaceChangeListener(this);
InCallVideoCallListenerNotifier.getInstance().addVideoEventListener(this);
InCallVideoCallListenerNotifier.getInstance().addSessionModificationListener(this);
-
- mInCallCameraManager = InCallPresenter.getInstance().getInCallCameraManager();
mIsVideoCall = false;
}
@@ -203,8 +196,6 @@
InCallVideoCallListenerNotifier.getInstance().removeSurfaceChangeListener(this);
InCallVideoCallListenerNotifier.getInstance().removeVideoEventListener(this);
InCallVideoCallListenerNotifier.getInstance().removeSessionModificationListener(this);
-
- mInCallCameraManager = null;
}
/**
@@ -425,7 +416,9 @@
}
mPreviewSurfaceState = PreviewSurfaceState.CAMERA_SET;
- mVideoCall.setCamera(mInCallCameraManager.getActiveCameraId());
+ InCallCameraManager cameraManager = InCallPresenter.getInstance().
+ getInCallCameraManager();
+ mVideoCall.setCamera(cameraManager.getActiveCameraId());
mVideoCall.requestCameraCapabilities();
if (ui.isDisplayVideoSurfaceCreated()) {