From d60e0cc4e15fc975b1cc60eaaef26196da899d02 Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Thu, 14 Jan 2021 13:45:24 -0800 Subject: Provide IndividualSensorPrivacyController instead of bind it Test: Toggled toggles Bug: 162549680 Change-Id: I7353c36577c1d78bb7111e16a235fce84d53f888 --- .../com/android/systemui/dagger/SystemUIDefaultModule.java | 12 ++++++++++++ .../policy/IndividualSensorPrivacyController.java | 1 + .../policy/IndividualSensorPrivacyControllerImpl.java | 14 ++++++-------- .../statusbar/policy/dagger/StatusBarPolicyModule.java | 7 ------- .../src/com/android/systemui/tv/TvSystemUIModule.java | 12 ++++++++++++ 5 files changed, 31 insertions(+), 15 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java index 754879e59dd9..239a77eb2f45 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java @@ -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); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyController.java index 22e6b072f6a4..a76d08a438f2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyController.java @@ -20,6 +20,7 @@ import android.hardware.SensorPrivacyManager.IndividualSensor; public interface IndividualSensorPrivacyController extends CallbackController { + void init(); boolean isSensorBlocked(@IndividualSensor int sensor); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyControllerImpl.java index a7eb5944200f..231fe08e6a99 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/IndividualSensorPrivacyControllerImpl.java @@ -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 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)); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/dagger/StatusBarPolicyModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/dagger/StatusBarPolicyModule.java index 366ae5491cd4..7a4b912d4071 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/dagger/StatusBarPolicyModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/dagger/StatusBarPolicyModule.java @@ -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 diff --git a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java index a24f7dd64481..df889f2c2ca6 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java @@ -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); -- cgit v1.2.3-59-g8ed1b