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

Commit d60e0cc4 authored by Philip P. Moltmann's avatar Philip P. Moltmann
Browse files

Provide IndividualSensorPrivacyController instead of bind it

Test: Toggled toggles
Bug: 162549680
Change-Id: I7353c36577c1d78bb7111e16a235fce84d53f888
parent eca12d24
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -63,6 +63,8 @@ import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.DeviceProvisionedControllerImpl;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController;
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyControllerImpl;
import com.android.systemui.statusbar.policy.SensorPrivacyController;
import com.android.systemui.statusbar.policy.SensorPrivacyControllerImpl;

@@ -128,6 +130,16 @@ public abstract class SystemUIDefaultModule {
        return spC;
    }

    @Provides
    @SysUISingleton
    static IndividualSensorPrivacyController provideIndividualSensorPrivacyController(
            SensorPrivacyManager sensorPrivacyManager) {
        IndividualSensorPrivacyController spC = new IndividualSensorPrivacyControllerImpl(
                sensorPrivacyManager);
        spC.init();
        return spC;
    }

    @Binds
    @SysUISingleton
    public abstract QSFactory bindQSFactory(QSFactoryImpl qsFactoryImpl);
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.hardware.SensorPrivacyManager.IndividualSensor;

public interface IndividualSensorPrivacyController extends
        CallbackController<IndividualSensorPrivacyController.Callback> {
    void init();

    boolean isSensorBlocked(@IndividualSensor int sensor);

+6 −8
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.systemui.statusbar.policy;
import static android.service.SensorPrivacyIndividualEnabledSensorProto.CAMERA;
import static android.service.SensorPrivacyIndividualEnabledSensorProto.MICROPHONE;

import android.content.Context;
import android.hardware.SensorPrivacyManager;
import android.hardware.SensorPrivacyManager.IndividualSensor;
import android.util.ArraySet;
@@ -29,22 +28,21 @@ import androidx.annotation.NonNull;

import java.util.Set;

import javax.inject.Inject;

public class IndividualSensorPrivacyControllerImpl implements IndividualSensorPrivacyController {

    private static final int[] SENSORS = new int[] {CAMERA, MICROPHONE};

    private final @NonNull Context mContext;
    private final @NonNull SensorPrivacyManager mSensorPrivacyManager;
    private final SparseBooleanArray mState = new SparseBooleanArray();
    private final Set<Callback> mCallbacks = new ArraySet<>();

    @Inject
    public IndividualSensorPrivacyControllerImpl(@NonNull Context context) {
        mContext = context;
        mSensorPrivacyManager = context.getSystemService(SensorPrivacyManager.class);
    public IndividualSensorPrivacyControllerImpl(
            @NonNull SensorPrivacyManager sensorPrivacyManager) {
        mSensorPrivacyManager = sensorPrivacyManager;
    }

    @Override
    public void init() {
        for (int sensor : SENSORS) {
            mSensorPrivacyManager.addSensorPrivacyListener(sensor,
                    (enabled) -> onSensorPrivacyChanged(sensor, enabled));
+0 −7
Original line number Diff line number Diff line
@@ -32,8 +32,6 @@ import com.android.systemui.statusbar.policy.FlashlightController;
import com.android.systemui.statusbar.policy.FlashlightControllerImpl;
import com.android.systemui.statusbar.policy.HotspotController;
import com.android.systemui.statusbar.policy.HotspotControllerImpl;
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController;
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyControllerImpl;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.KeyguardStateControllerImpl;
import com.android.systemui.statusbar.policy.LocationController;
@@ -120,11 +118,6 @@ public interface StatusBarPolicyModule {
    NetworkController.AccessPointController provideAccessPointController(
            AccessPointControllerImpl accessPointControllerImpl);

    /** */
    @Binds
    IndividualSensorPrivacyController provideIndividualSensorPrivacyController(
            IndividualSensorPrivacyControllerImpl controllerImpl);

    /** */
    @SysUISingleton
    @Provides
+12 −0
Original line number Diff line number Diff line
@@ -64,6 +64,8 @@ import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.DeviceProvisionedControllerImpl;
import com.android.systemui.statusbar.policy.HeadsUpManager;
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController;
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyControllerImpl;
import com.android.systemui.statusbar.policy.SensorPrivacyController;
import com.android.systemui.statusbar.policy.SensorPrivacyControllerImpl;
import com.android.systemui.statusbar.tv.notifications.TvNotificationHandler;
@@ -121,6 +123,16 @@ public abstract class TvSystemUIModule {
        return spC;
    }

    @Provides
    @SysUISingleton
    static IndividualSensorPrivacyController provideIndividualSensorPrivacyController(
            SensorPrivacyManager sensorPrivacyManager) {
        IndividualSensorPrivacyController spC = new IndividualSensorPrivacyControllerImpl(
                sensorPrivacyManager);
        spC.init();
        return spC;
    }

    @Binds
    @SysUISingleton
    abstract QSFactory bindQSFactory(QSFactoryImpl qsFactoryImpl);