From d6ebc55e383a986a3b32b94186282a0af94bea2d Mon Sep 17 00:00:00 2001 From: Tyler Gunn Date: Thu, 4 Jun 2015 10:22:24 -0700 Subject: Defer retrieval of camera ids and capabilities until in video call. - The InCallCameraManager used to call initializeCameraList on startup. - Delayed this until getActiveCameraId() is called, Bug: 20993325 Change-Id: Ia8cf16c621650fd4adafa2c506a0021a0f63a6f8 --- .../com/android/incallui/InCallCameraManager.java | 24 ++++++++++++++-------- .../com/android/incallui/VideoCallPresenter.java | 22 +++++++++++--------- 2 files changed, 28 insertions(+), 18 deletions(-) (limited to 'InCallUI') diff --git a/InCallUI/src/com/android/incallui/InCallCameraManager.java b/InCallUI/src/com/android/incallui/InCallCameraManager.java index b7ec079af..53000f1dd 100644 --- a/InCallUI/src/com/android/incallui/InCallCameraManager.java +++ b/InCallUI/src/com/android/incallui/InCallCameraManager.java @@ -57,14 +57,15 @@ public class InCallCameraManager { 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 class InCallCameraManager { */ public InCallCameraManager(Context context) { mUseFrontFacingCamera = true; - initializeCameraList(context); + mContext = context; } /** @@ -103,6 +104,8 @@ public class InCallCameraManager { * @return The active camera ID. */ public String getActiveCameraId() { + maybeInitializeCameraList(mContext); + if (mUseFrontFacingCamera) { return mFrontFacingCameraId; } else { @@ -111,15 +114,17 @@ public class InCallCameraManager { } /** - * 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 @@ public class InCallCameraManager { } } } + + 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 31be7d3d3..ea0652a6d 100644 --- a/InCallUI/src/com/android/incallui/VideoCallPresenter.java +++ b/InCallUI/src/com/android/incallui/VideoCallPresenter.java @@ -489,19 +489,21 @@ public class VideoCallPresenter extends Presenter