am c680ac44: am 5f348fc7: am 4fbef46a: Merge "Defer retrieval of camera ids and capabilities until in video call." into mnc-dev
* commit 'c680ac44bbb18dfbea7e183706f800b173d01e98':
Defer retrieval of camera ids and capabilities until in video call.
diff --git a/InCallUI/src/com/android/incallui/InCallCameraManager.java b/InCallUI/src/com/android/incallui/InCallCameraManager.java
index b7ec079..53000f1 100644
--- a/InCallUI/src/com/android/incallui/InCallCameraManager.java
+++ b/InCallUI/src/com/android/incallui/InCallCameraManager.java
@@ -57,14 +57,15 @@
private boolean mUseFrontFacingCamera;
/**
- * Aspect ratio of the front facing camera.
+ * Indicates whether the list of cameras has been initialized yet. Initialization is delayed
+ * until a video call is present.
*/
- private float mFrontFacingCameraAspectRatio;
+ private boolean mIsInitialized = false;
/**
- * Aspect ratio of the rear facing camera.
+ * The context.
*/
- private float mRearFacingCameraAspectRatio;
+ private Context mContext;
/**
* Initializes the InCall CameraManager.
@@ -73,7 +74,7 @@
*/
public InCallCameraManager(Context context) {
mUseFrontFacingCamera = true;
- initializeCameraList(context);
+ mContext = context;
}
/**
@@ -103,6 +104,8 @@
* @return The active camera ID.
*/
public String getActiveCameraId() {
+ maybeInitializeCameraList(mContext);
+
if (mUseFrontFacingCamera) {
return mFrontFacingCameraId;
} else {
@@ -111,15 +114,17 @@
}
/**
- * Get the camera ID and aspect ratio for the front and rear cameras.
+ * Get the list of cameras available for use.
*
* @param context The context.
*/
- private void initializeCameraList(Context context) {
- if (context == null) {
+ private void maybeInitializeCameraList(Context context) {
+ if (mIsInitialized || context == null) {
return;
}
+ Log.v(this, "initializeCameraList");
+
CameraManager cameraManager = null;
try {
cameraManager = (CameraManager) context.getSystemService(
@@ -160,6 +165,9 @@
}
}
}
+
+ mIsInitialized = true;
+ Log.v(this, "initializeCameraList : done");
}
public void addCameraSelectionListener(Listener listener) {
diff --git a/InCallUI/src/com/android/incallui/VideoCallPresenter.java b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
index e39d154..c1fb645 100644
--- a/InCallUI/src/com/android/incallui/VideoCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
@@ -489,19 +489,21 @@
+ " hasCallStateChanged=" +
hasCallStateChanged + " isVideoMode=" + isVideoMode());
- if (!hasCallStateChanged) { return; }
+ if (!hasCallStateChanged) {
+ return;
+ }
- final InCallCameraManager cameraManager = InCallPresenter.getInstance().
- getInCallCameraManager();
+ if (isVideoCall) {
+ final InCallCameraManager cameraManager = InCallPresenter.getInstance().
+ getInCallCameraManager();
- String prevCameraId = cameraManager.getActiveCameraId();
+ String prevCameraId = cameraManager.getActiveCameraId();
+ updateCameraSelection(call);
+ String newCameraId = cameraManager.getActiveCameraId();
- updateCameraSelection(call);
-
- String newCameraId = cameraManager.getActiveCameraId();
-
- if (!Objects.equals(prevCameraId, newCameraId) && CallUtils.isActiveVideoCall(call)) {
- enableCamera(call.getVideoCall(), true);
+ if (!Objects.equals(prevCameraId, newCameraId) && CallUtils.isActiveVideoCall(call)) {
+ enableCamera(call.getVideoCall(), true);
+ }
}
// Make sure we hide or show the video UI if needed.