IMS-VT: Optimize handling of orientation requests am: 50b2f304bd
am: 01e31150e1

* commit '01e31150e1819cf37df5b143b3a845db2397d240':
  IMS-VT: Optimize handling of orientation requests

Change-Id: I028264f76a4e94bca9fc7a13b2c27b032a7b9fd3
diff --git a/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java b/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java
index d3334a3..3cab6dc 100644
--- a/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java
+++ b/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java
@@ -62,6 +62,7 @@
      * Cache the current rotation of the device.
      */
     private static int sCurrentOrientation = SCREEN_ORIENTATION_0;
+    private boolean mEnabled = false;
 
     public InCallOrientationEventListener(Context context) {
         super(context);
@@ -97,7 +98,13 @@
      * @param notify true or false. Notify device orientation changed if true.
      */
     public void enable(boolean notify) {
+        if (mEnabled) {
+            Log.v(this, "enable: Orientation listener is already enabled. Ignoring...");
+            return;
+        }
+
         super.enable();
+        mEnabled = true;
         if (notify) {
             InCallPresenter.getInstance().onDeviceOrientationChange(sCurrentOrientation);
         }
@@ -111,6 +118,26 @@
     }
 
     /**
+     * Disables the OrientationEventListener.
+     */
+    public void disable() {
+        if (!mEnabled) {
+            Log.v(this, "enable: Orientation listener is already disabled. Ignoring...");
+            return;
+        }
+
+        mEnabled = false;
+        super.disable();
+    }
+
+    /**
+     * Returns true the OrientationEventListener is enabled, false otherwise.
+     */
+    public boolean isEnabled() {
+        return mEnabled;
+    }
+
+    /**
      * Converts sensor rotation in degrees to screen orientation constants.
      * @param rotation sensor rotation angle in degrees
      * @return Screen orientation angle in degrees (0, 90, 180, 270). Returns -1 for degrees not
diff --git a/InCallUI/src/com/android/incallui/VideoCallPresenter.java b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
index 3494afa..06e3e44 100644
--- a/InCallUI/src/com/android/incallui/VideoCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
@@ -565,6 +565,7 @@
             updateCameraSelection(newPrimaryCall);
             adjustVideoMode(newPrimaryCall);
         }
+        checkForOrientationAllowedChange(newPrimaryCall);
     }
 
     private boolean isVideoMode() {