diff options
author | 2021-01-06 09:15:18 -0800 | |
---|---|---|
committer | 2021-01-07 09:06:15 -0800 | |
commit | 5b8fe03d1fc2c3cc7a6143c63cd0a4b097fc65aa (patch) | |
tree | 50080575c795fa51e4f969f4ffe2345ceee75299 | |
parent | 542630954b270eadd31af33a8019df588647d9df (diff) |
Add individual sensor privacay states to sensor privacy api
Test: Compile
Bug: 162549680
Change-Id: Ie564b5370cc99727709d523b00634c60766d4187
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); |