Tear down proximity sensors when no longer in use.

bug:10493709
Change-Id: I76e1940472aa503f1fe8c4a73c82852f8670b61c
diff --git a/InCallUI/src/com/android/incallui/InCallPresenter.java b/InCallUI/src/com/android/incallui/InCallPresenter.java
index 8c52aab..7678372 100644
--- a/InCallUI/src/com/android/incallui/InCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/InCallPresenter.java
@@ -435,6 +435,10 @@
             }
             mContactInfoCache = null;
 
+            if (mProximitySensor != null) {
+                removeListener(mProximitySensor);
+                mProximitySensor.tearDown();
+            }
             mProximitySensor = null;
 
             mAudioModeProvider = null;
diff --git a/InCallUI/src/com/android/incallui/ProximitySensor.java b/InCallUI/src/com/android/incallui/ProximitySensor.java
index 0dc54dc..5895c29 100644
--- a/InCallUI/src/com/android/incallui/ProximitySensor.java
+++ b/InCallUI/src/com/android/incallui/ProximitySensor.java
@@ -68,6 +68,16 @@
         mAudioModeProvider.addListener(this);
     }
 
+    public void tearDown() {
+        mAudioModeProvider.removeListener(this);
+
+        mAccelerometerListener.enable(false);
+
+        if (mProximityWakeLock.isHeld()) {
+            mProximityWakeLock.release();
+        }
+    }
+
     /**
      * Called to identify when the device is laid down flat.
      */