diff options
Diffstat (limited to 'InCallUI/src/com/android/incallui/InCallCameraManager.java')
-rw-r--r-- | InCallUI/src/com/android/incallui/InCallCameraManager.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/InCallUI/src/com/android/incallui/InCallCameraManager.java b/InCallUI/src/com/android/incallui/InCallCameraManager.java index ded9387f3..b7ec079af 100644 --- a/InCallUI/src/com/android/incallui/InCallCameraManager.java +++ b/InCallUI/src/com/android/incallui/InCallCameraManager.java @@ -25,12 +25,22 @@ import android.hardware.camera2.params.StreamConfigurationMap; import android.util.Size; import java.lang.String; +import java.util.Collections; +import java.util.concurrent.ConcurrentHashMap; +import java.util.Set; /** * Used to track which camera is used for outgoing video. */ public class InCallCameraManager { + public interface Listener { + void onActiveCameraSelectionChanged(boolean isUsingFrontFacingCamera); + } + + private final Set<Listener> mCameraSelectionListeners = Collections. + newSetFromMap(new ConcurrentHashMap<Listener, Boolean>(8,0.9f,1)); + /** * The camera ID for the front facing camera. */ @@ -73,6 +83,9 @@ public class InCallCameraManager { */ public void setUseFrontFacingCamera(boolean useFrontFacingCamera) { mUseFrontFacingCamera = useFrontFacingCamera; + for (Listener listener : mCameraSelectionListeners) { + listener.onActiveCameraSelectionChanged(mUseFrontFacingCamera); + } } /** @@ -148,4 +161,16 @@ public class InCallCameraManager { } } } + + public void addCameraSelectionListener(Listener listener) { + if (listener != null) { + mCameraSelectionListeners.add(listener); + } + } + + public void removeCameraSelectionListener(Listener listener) { + if (listener != null) { + mCameraSelectionListeners.remove(listener); + } + } } |