summaryrefslogtreecommitdiff
path: root/InCallUI/src/com/android/incallui/InCallCameraManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'InCallUI/src/com/android/incallui/InCallCameraManager.java')
-rw-r--r--InCallUI/src/com/android/incallui/InCallCameraManager.java25
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);
+ }
+ }
}