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);