Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5b8fe03d authored by Evan Severson's avatar Evan Severson
Browse files

Add individual sensor privacay states to sensor privacy api

Test: Compile
Bug: 162549680

Change-Id: Ie564b5370cc99727709d523b00634c60766d4187
parent 54263095
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -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();
+8 −0
Original line number Diff line number Diff line
@@ -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);
}
+8 −0
Original line number Diff line number Diff line
@@ -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);