summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Evan Severson <evanseverson@google.com> 2021-01-06 09:15:18 -0800
committer Evan Severson <evanseverson@google.com> 2021-01-07 09:06:15 -0800
commit5b8fe03d1fc2c3cc7a6143c63cd0a4b097fc65aa (patch)
tree50080575c795fa51e4f969f4ffe2345ceee75299
parent542630954b270eadd31af33a8019df588647d9df (diff)
Add individual sensor privacay states to sensor privacy api
Test: Compile Bug: 162549680 Change-Id: Ie564b5370cc99727709d523b00634c60766d4187
-rw-r--r--libs/sensorprivacy/SensorPrivacyManager.cpp21
-rw-r--r--libs/sensorprivacy/aidl/android/hardware/ISensorPrivacyManager.aidl8
-rw-r--r--libs/sensorprivacy/include/sensorprivacy/SensorPrivacyManager.h8
3 files changed, 37 insertions, 0 deletions
diff --git a/libs/sensorprivacy/SensorPrivacyManager.cpp b/libs/sensorprivacy/SensorPrivacyManager.cpp
index f973cbad17..7bddee60a5 100644
--- a/libs/sensorprivacy/SensorPrivacyManager.cpp
+++ b/libs/sensorprivacy/SensorPrivacyManager.cpp
@@ -64,6 +64,15 @@ void SensorPrivacyManager::addSensorPrivacyListener(
}
}
+void SensorPrivacyManager::addIndividualSensorPrivacyListener(int userId, int sensor,
+ const sp<hardware::ISensorPrivacyListener>& listener)
+{
+ sp<hardware::ISensorPrivacyManager> service = getService();
+ if (service != nullptr) {
+ service->addIndividualSensorPrivacyListener(userId, sensor, listener);
+ }
+}
+
void SensorPrivacyManager::removeSensorPrivacyListener(
const sp<hardware::ISensorPrivacyListener>& listener)
{
@@ -85,6 +94,18 @@ bool SensorPrivacyManager::isSensorPrivacyEnabled()
return false;
}
+bool SensorPrivacyManager::isIndividualSensorPrivacyEnabled(int userId, int sensor)
+{
+ sp<hardware::ISensorPrivacyManager> service = getService();
+ if (service != nullptr) {
+ bool result;
+ service->isIndividualSensorPrivacyEnabled(userId, sensor, &result);
+ return result;
+ }
+ // if the SensorPrivacyManager is not available then assume sensor privacy is disabled
+ return false;
+}
+
status_t SensorPrivacyManager::linkToDeath(const sp<IBinder::DeathRecipient>& recipient)
{
sp<hardware::ISensorPrivacyManager> service = getService();
diff --git a/libs/sensorprivacy/aidl/android/hardware/ISensorPrivacyManager.aidl b/libs/sensorprivacy/aidl/android/hardware/ISensorPrivacyManager.aidl
index 4c2d5dbb8f..629b8c2093 100644
--- a/libs/sensorprivacy/aidl/android/hardware/ISensorPrivacyManager.aidl
+++ b/libs/sensorprivacy/aidl/android/hardware/ISensorPrivacyManager.aidl
@@ -22,9 +22,17 @@ import android.hardware.ISensorPrivacyListener;
interface ISensorPrivacyManager {
void addSensorPrivacyListener(in ISensorPrivacyListener listener);
+ void addIndividualSensorPrivacyListener(int userId, int sensor, in ISensorPrivacyListener listener);
+
void removeSensorPrivacyListener(in ISensorPrivacyListener listener);
boolean isSensorPrivacyEnabled();
+ boolean isIndividualSensorPrivacyEnabled(int userId, int sensor);
+
void setSensorPrivacy(boolean enable);
+
+ void setIndividualSensorPrivacy(int userId, int sensor, boolean enable);
+
+ void setIndividualSensorPrivacyForProfileGroup(int userId, int sensor, boolean enable);
}
diff --git a/libs/sensorprivacy/include/sensorprivacy/SensorPrivacyManager.h b/libs/sensorprivacy/include/sensorprivacy/SensorPrivacyManager.h
index 2546a681b9..bd7c726c69 100644
--- a/libs/sensorprivacy/include/sensorprivacy/SensorPrivacyManager.h
+++ b/libs/sensorprivacy/include/sensorprivacy/SensorPrivacyManager.h
@@ -28,11 +28,19 @@ namespace android {
class SensorPrivacyManager
{
public:
+ enum {
+ INDIVIDUAL_SENSOR_MICROPHONE = 1,
+ INDIVIDUAL_SENSOR_CAMERA = 2
+ };
+
SensorPrivacyManager();
void addSensorPrivacyListener(const sp<hardware::ISensorPrivacyListener>& listener);
+ void addIndividualSensorPrivacyListener(int userId, int sensor,
+ const sp<hardware::ISensorPrivacyListener>& listener);
void removeSensorPrivacyListener(const sp<hardware::ISensorPrivacyListener>& listener);
bool isSensorPrivacyEnabled();
+ bool isIndividualSensorPrivacyEnabled(int userId, int sensor);
status_t linkToDeath(const sp<IBinder::DeathRecipient>& recipient);
status_t unlinkToDeath(const sp<IBinder::DeathRecipient>& recipient);