Provide IndividualSensorPrivacyController instead of bind it
Test: Toggled toggles Bug: 162549680 Change-Id: I7353c36577c1d78bb7111e16a235fce84d53f888
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -20,6 +20,7 @@ import android.hardware.SensorPrivacyManager.IndividualSensor;
|
||||
|
||||
public interface IndividualSensorPrivacyController extends
|
||||
CallbackController<IndividualSensorPrivacyController.Callback> {
|
||||
void init();
|
||||
|
||||
boolean isSensorBlocked(@IndividualSensor int sensor);
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user