Snap for 7621631 from c01a6bb97e95d73a9a948ea27e000f2e1312e9bf to sc-release

Change-Id: I97be5b03617124e39672b3271b517ad073935e7c
diff --git a/src/com/android/server/telecom/InCallController.java b/src/com/android/server/telecom/InCallController.java
index 66029c5..ca76456 100644
--- a/src/com/android/server/telecom/InCallController.java
+++ b/src/com/android/server/telecom/InCallController.java
@@ -35,6 +35,7 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
+import android.hardware.SensorPrivacyManager;
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.Handler;
@@ -986,6 +987,7 @@
 
     private final Context mContext;
     private final AppOpsManager mAppOpsManager;
+    private final SensorPrivacyManager mSensorPrivacyManager;
     private final TelecomSystem.SyncRoot mLock;
     private final CallsManager mCallsManager;
     private final SystemStateHelper mSystemStateHelper;
@@ -1042,6 +1044,7 @@
             CarModeTracker carModeTracker, ClockProxy clockProxy) {
         mContext = context;
         mAppOpsManager = context.getSystemService(AppOpsManager.class);
+        mSensorPrivacyManager = context.getSystemService(SensorPrivacyManager.class);
         mLock = lock;
         mCallsManager = callsManager;
         mSystemStateHelper = systemStateHelper;
@@ -1397,6 +1400,7 @@
             if (shouldStart) {
                 mAppOpsManager.startOp(AppOpsManager.OP_PHONE_CALL_CAMERA, myUid(),
                         mContext.getOpPackageName(), false, null, null);
+                mSensorPrivacyManager.showSensorUseDialog(SensorPrivacyManager.Sensors.CAMERA);
             }
         } else {
             boolean hadCall = !mCallsUsingCamera.isEmpty();
@@ -2274,6 +2278,7 @@
             if (mIsCallUsingMicrophone) {
                 mAppOpsManager.startOp(AppOpsManager.OP_PHONE_CALL_MICROPHONE, myUid(),
                         mContext.getOpPackageName(), false, null, null);
+                mSensorPrivacyManager.showSensorUseDialog(SensorPrivacyManager.Sensors.MICROPHONE);
             } else {
                 mAppOpsManager.finishOp(AppOpsManager.OP_PHONE_CALL_MICROPHONE, myUid(),
                         mContext.getOpPackageName(), null);
diff --git a/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java b/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java
index 6dfc6dc..ebb336e 100644
--- a/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java
+++ b/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java
@@ -50,6 +50,7 @@
 import android.content.pm.ServiceInfo;
 import android.content.res.Configuration;
 import android.content.res.Resources;
+import android.hardware.SensorPrivacyManager;
 import android.location.Country;
 import android.location.CountryDetector;
 import android.media.AudioManager;
@@ -221,6 +222,8 @@
                     return mVibratorManager;
                 case Context.PERMISSION_CHECKER_SERVICE:
                     return mPermissionCheckerManager;
+                case Context.SENSOR_PRIVACY_SERVICE:
+                    return mSensorPrivacyManager;
                 default:
                     return null;
             }
@@ -248,6 +251,8 @@
                 return Context.VIBRATOR_MANAGER_SERVICE;
             } else if (svcClass == PermissionCheckerManager.class) {
                 return Context.PERMISSION_CHECKER_SERVICE;
+            } else if (svcClass == SensorPrivacyManager.class) {
+                return Context.SENSOR_PRIVACY_SERVICE;
             }
             throw new UnsupportedOperationException();
         }
@@ -527,6 +532,7 @@
     private final PermissionCheckerManager mPermissionCheckerManager =
             mock(PermissionCheckerManager.class);
     private final PermissionInfo mPermissionInfo = mock(PermissionInfo.class);
+    private final SensorPrivacyManager mSensorPrivacyManager = mock(SensorPrivacyManager.class);
 
     private TelecomManager mTelecomManager = mock(TelecomManager.class);