diff options
| author | 2024-08-09 15:57:01 +0000 | |
|---|---|---|
| committer | 2024-08-09 20:10:43 +0000 | |
| commit | 1c60a27490cb770e5ec5341ad15221176f54624f (patch) | |
| tree | 8f3e04889b22040f7d200092e44d687d7355c905 | |
| parent | 254b854c491524c49cb4c291396deac7a12519b6 (diff) | |
Update DozeScreenState and DozeBrightnessChange logs
* No functional changes to the user; only updates debug logging.
* Move the logs to the class that extends DreamService for
readability.
* Log before and after the request to update screen state and
brightness changes.
* Brightness change logs are now written from the background thread
instead of the original (main) thread to be more accurate of
when the change actually occurs.
* Bunch of formatting fixes
Test: view logs are still existent (DozeLog in dumpsys of sysui)
Test: atest DozeSuspendScreenStatePreventingAdapterTest
Flag: EXEMPT bugfix
Bug: 358578071
Change-Id: I423f22c2714f0c8ccf988a4147eb76fef7f3dfdf
11 files changed, 328 insertions, 303 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeBrightnessHostForwarder.java b/packages/SystemUI/src/com/android/systemui/doze/DozeBrightnessHostForwarder.java index 0b336143c34a..6fd4d33806a3 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeBrightnessHostForwarder.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeBrightnessHostForwarder.java @@ -16,8 +16,6 @@ package com.android.systemui.doze; -import java.util.concurrent.Executor; - /** * Forwards the currently used brightness to {@link DozeHost}. */ @@ -25,9 +23,8 @@ public class DozeBrightnessHostForwarder extends DozeMachine.Service.Delegate { private final DozeHost mHost; - public DozeBrightnessHostForwarder(DozeMachine.Service wrappedService, DozeHost host, - Executor bgExecutor) { - super(wrappedService, bgExecutor); + public DozeBrightnessHostForwarder(DozeMachine.Service wrappedService, DozeHost host) { + super(wrappedService); mHost = host; } diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java index 5bfcc975d02d..cdcb03e59e8a 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java @@ -253,9 +253,11 @@ public class DozeLog implements Dumpable { /** * Appends display state changed event to the logs * @param displayState new DozeMachine state + * @param afterRequest whether the request has successfully been sent else false for it's + * about to be requested */ - public void traceDisplayState(int displayState) { - mLogger.logDisplayStateChanged(displayState); + public void traceDisplayState(int displayState, boolean afterRequest) { + mLogger.logDisplayStateChanged(displayState, afterRequest); } /** @@ -402,18 +404,22 @@ public class DozeLog implements Dumpable { /** * Appends new AOD screen brightness to logs * @param brightness display brightness setting between 1 and 255 + * @param afterRequest whether the request has successfully been sent else false for it's + * about to be requested */ - public void traceDozeScreenBrightness(int brightness) { - mLogger.logDozeScreenBrightness(brightness); + public void traceDozeScreenBrightness(int brightness, boolean afterRequest) { + mLogger.logDozeScreenBrightness(brightness, afterRequest); } /** * Appends new AOD screen brightness to logs * @param brightness display brightness setting between {@link PowerManager#BRIGHTNESS_MIN} and * {@link PowerManager#BRIGHTNESS_MAX} + * @param afterRequest whether the request has successfully been sent else false for it's + * about to be requested */ - public void traceDozeScreenBrightnessFloat(float brightness) { - mLogger.logDozeScreenBrightnessFloat(brightness); + public void traceDozeScreenBrightnessFloat(float brightness, boolean afterRequest) { + mLogger.logDozeScreenBrightnessFloat(brightness, afterRequest); } /** diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt b/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt index a31dbec242fe..71287314102c 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLogger.kt @@ -32,23 +32,18 @@ import java.util.Locale import javax.inject.Inject /** Interface for logging messages to the [DozeLog]. */ -class DozeLogger @Inject constructor( - @DozeLog private val buffer: LogBuffer -) { +class DozeLogger @Inject constructor(@DozeLog private val buffer: LogBuffer) { fun logPickupWakeup(isWithinVibrationThreshold: Boolean) { - buffer.log(TAG, DEBUG, { - bool1 = isWithinVibrationThreshold - }, { - "PickupWakeup withinVibrationThreshold=$bool1" - }) + buffer.log( + TAG, + DEBUG, + { bool1 = isWithinVibrationThreshold }, + { "PickupWakeup withinVibrationThreshold=$bool1" } + ) } fun logPulseStart(@Reason reason: Int) { - buffer.log(TAG, INFO, { - int1 = reason - }, { - "Pulse start, reason=${reasonToString(int1)}" - }) + buffer.log(TAG, INFO, { int1 = reason }, { "Pulse start, reason=${reasonToString(int1)}" }) } fun logPulseFinish() { @@ -60,52 +55,51 @@ class DozeLogger @Inject constructor( } fun logDozing(isDozing: Boolean) { - buffer.log(TAG, INFO, { - bool1 = isDozing - }, { - "Dozing=$bool1" - }) + buffer.log(TAG, INFO, { bool1 = isDozing }, { "Dozing=$bool1" }) } fun logDozingChanged(isDozing: Boolean) { - buffer.log(TAG, INFO, { - bool1 = isDozing - }, { - "Dozing changed dozing=$bool1" - }) + buffer.log(TAG, INFO, { bool1 = isDozing }, { "Dozing changed dozing=$bool1" }) } fun logPowerSaveChanged(powerSaveActive: Boolean, nextState: DozeMachine.State) { - buffer.log(TAG, INFO, { - bool1 = powerSaveActive - str1 = nextState.name - }, { - "Power save active=$bool1 nextState=$str1" - }) + buffer.log( + TAG, + INFO, + { + bool1 = powerSaveActive + str1 = nextState.name + }, + { "Power save active=$bool1 nextState=$str1" } + ) } fun logAlwaysOnSuppressedChange(isAodSuppressed: Boolean, nextState: DozeMachine.State) { - buffer.log(TAG, INFO, { - bool1 = isAodSuppressed - str1 = nextState.name - }, { - "Always on (AOD) suppressed changed, suppressed=$bool1 nextState=$str1" - }) - } - - fun logFling( - expand: Boolean, - aboveThreshold: Boolean, - screenOnFromTouch: Boolean - ) { - buffer.log(TAG, DEBUG, { - bool1 = expand - bool2 = aboveThreshold - bool4 = screenOnFromTouch - }, { - "Fling expand=$bool1 aboveThreshold=$bool2 thresholdNeeded=$bool3 " + - "screenOnFromTouch=$bool4" - }) + buffer.log( + TAG, + INFO, + { + bool1 = isAodSuppressed + str1 = nextState.name + }, + { "Always on (AOD) suppressed changed, suppressed=$bool1 nextState=$str1" } + ) + } + + fun logFling(expand: Boolean, aboveThreshold: Boolean, screenOnFromTouch: Boolean) { + buffer.log( + TAG, + DEBUG, + { + bool1 = expand + bool2 = aboveThreshold + bool4 = screenOnFromTouch + }, + { + "Fling expand=$bool1 aboveThreshold=$bool2 thresholdNeeded=$bool3 " + + "screenOnFromTouch=$bool4" + } + ) } fun logEmergencyCall() { @@ -113,280 +107,314 @@ class DozeLogger @Inject constructor( } fun logKeyguardBouncerChanged(isShowing: Boolean) { - buffer.log(TAG, INFO, { - bool1 = isShowing - }, { - "Keyguard bouncer changed, showing=$bool1" - }) + buffer.log(TAG, INFO, { bool1 = isShowing }, { "Keyguard bouncer changed, showing=$bool1" }) } fun logScreenOn(isPulsing: Boolean) { - buffer.log(TAG, INFO, { - bool1 = isPulsing - }, { - "Screen on, pulsing=$bool1" - }) + buffer.log(TAG, INFO, { bool1 = isPulsing }, { "Screen on, pulsing=$bool1" }) } fun logScreenOff(why: Int) { - buffer.log(TAG, INFO, { - int1 = why - }, { - "Screen off, why=$int1" - }) + buffer.log(TAG, INFO, { int1 = why }, { "Screen off, why=$int1" }) } fun logMissedTick(delay: String) { - buffer.log(TAG, ERROR, { - str1 = delay - }, { - "Missed AOD time tick by $str1" - }) + buffer.log(TAG, ERROR, { str1 = delay }, { "Missed AOD time tick by $str1" }) } fun logTimeTickScheduled(whenAt: Long, triggerAt: Long) { - buffer.log(TAG, DEBUG, { - long1 = whenAt - long2 = triggerAt - }, { - "Time tick scheduledAt=${DATE_FORMAT.format(Date(long1))} " + - "triggerAt=${DATE_FORMAT.format(Date(long2))}" - }) + buffer.log( + TAG, + DEBUG, + { + long1 = whenAt + long2 = triggerAt + }, + { + "Time tick scheduledAt=${DATE_FORMAT.format(Date(long1))} " + + "triggerAt=${DATE_FORMAT.format(Date(long2))}" + } + ) } fun logKeyguardVisibilityChange(isVisible: Boolean) { - buffer.log(TAG, INFO, { - bool1 = isVisible - }, { - "Keyguard visibility change, isVisible=$bool1" - }) + buffer.log( + TAG, + INFO, + { bool1 = isVisible }, + { "Keyguard visibility change, isVisible=$bool1" } + ) } fun logPendingUnscheduleTimeTick(isPending: Boolean, isTimeTickScheduled: Boolean) { - buffer.log(TAG, INFO, { - bool1 = isPending - bool2 = isTimeTickScheduled - }, { - "Pending unschedule time tick, isPending=$bool1, isTimeTickScheduled:$bool2" - }) + buffer.log( + TAG, + INFO, + { + bool1 = isPending + bool2 = isTimeTickScheduled + }, + { "Pending unschedule time tick, isPending=$bool1, isTimeTickScheduled:$bool2" } + ) } fun logDozeStateChanged(state: DozeMachine.State) { - buffer.log(TAG, INFO, { - str1 = state.name - }, { - "Doze state changed to $str1" - }) + buffer.log(TAG, INFO, { str1 = state.name }, { "Doze state changed to $str1" }) } fun logStateChangedSent(state: DozeMachine.State) { - buffer.log(TAG, INFO, { - str1 = state.name - }, { - "Doze state sent to all DozeMachineParts stateSent=$str1" - }) + buffer.log( + TAG, + INFO, + { str1 = state.name }, + { "Doze state sent to all DozeMachineParts stateSent=$str1" } + ) } fun logDisplayStateDelayedByUdfps(delayedDisplayState: Int) { - buffer.log(TAG, INFO, { - str1 = Display.stateToString(delayedDisplayState) - }, { - "Delaying display state change to: $str1 due to UDFPS activity" - }) - } - - fun logDisplayStateChanged(displayState: Int) { - buffer.log(TAG, INFO, { - str1 = Display.stateToString(displayState) - }, { - "Display state changed to $str1" - }) + buffer.log( + TAG, + INFO, + { str1 = Display.stateToString(delayedDisplayState) }, + { "Delaying display state change to: $str1 due to UDFPS activity" } + ) + } + + fun logDisplayStateChanged(displayState: Int, afterRequest: Boolean) { + buffer.log( + TAG, + INFO, + { + str1 = Display.stateToString(displayState) + bool1 = afterRequest + }, + { "Display state ${if (bool1) "changed" else "requested"} to $str1" } + ) } fun logWakeDisplay(isAwake: Boolean, @Reason reason: Int) { - buffer.log(TAG, DEBUG, { - bool1 = isAwake - int1 = reason - }, { - "Display wakefulness changed, isAwake=$bool1, reason=${reasonToString(int1)}" - }) + buffer.log( + TAG, + DEBUG, + { + bool1 = isAwake + int1 = reason + }, + { "Display wakefulness changed, isAwake=$bool1, reason=${reasonToString(int1)}" } + ) } fun logProximityResult(isNear: Boolean, millis: Long, @Reason reason: Int) { - buffer.log(TAG, DEBUG, { - bool1 = isNear - long1 = millis - int1 = reason - }, { - "Proximity result reason=${reasonToString(int1)} near=$bool1 millis=$long1" - }) + buffer.log( + TAG, + DEBUG, + { + bool1 = isNear + long1 = millis + int1 = reason + }, + { "Proximity result reason=${reasonToString(int1)} near=$bool1 millis=$long1" } + ) } fun logPostureChanged(posture: Int, partUpdated: String) { - buffer.log(TAG, INFO, { - int1 = posture - str1 = partUpdated - }, { - "Posture changed, posture=${DevicePostureController.devicePostureToString(int1)}" + - " partUpdated=$str1" - }) + buffer.log( + TAG, + INFO, + { + int1 = posture + str1 = partUpdated + }, + { + "Posture changed, posture=${DevicePostureController.devicePostureToString(int1)}" + + " partUpdated=$str1" + } + ) } /** - * Log why a pulse was dropped and the current doze machine state. The state can be null - * if the DozeMachine is the middle of transitioning between states. + * Log why a pulse was dropped and the current doze machine state. The state can be null if the + * DozeMachine is the middle of transitioning between states. */ fun logPulseDropped(from: String, state: DozeMachine.State?) { - buffer.log(TAG, INFO, { - str1 = from - str2 = state?.name - }, { - "Pulse dropped, cannot pulse from=$str1 state=$str2" - }) + buffer.log( + TAG, + INFO, + { + str1 = from + str2 = state?.name + }, + { "Pulse dropped, cannot pulse from=$str1 state=$str2" } + ) } fun logSensorEventDropped(sensorEvent: Int, reason: String) { - buffer.log(TAG, INFO, { - int1 = sensorEvent - str1 = reason - }, { - "SensorEvent [$int1] dropped, reason=$str1" - }) + buffer.log( + TAG, + INFO, + { + int1 = sensorEvent + str1 = reason + }, + { "SensorEvent [$int1] dropped, reason=$str1" } + ) } fun logPulseEvent(pulseEvent: String, dozing: Boolean, pulseReason: String) { - buffer.log(TAG, DEBUG, { - str1 = pulseEvent - bool1 = dozing - str2 = pulseReason - }, { - "Pulse-$str1 dozing=$bool1 pulseReason=$str2" - }) + buffer.log( + TAG, + DEBUG, + { + str1 = pulseEvent + bool1 = dozing + str2 = pulseReason + }, + { "Pulse-$str1 dozing=$bool1 pulseReason=$str2" } + ) } fun logPulseDropped(reason: String) { - buffer.log(TAG, INFO, { - str1 = reason - }, { - "Pulse dropped, why=$str1" - }) + buffer.log(TAG, INFO, { str1 = reason }, { "Pulse dropped, why=$str1" }) } fun logPulseTouchDisabledByProx(disabled: Boolean) { - buffer.log(TAG, DEBUG, { - bool1 = disabled - }, { - "Pulse touch modified by prox, disabled=$bool1" - }) + buffer.log( + TAG, + DEBUG, + { bool1 = disabled }, + { "Pulse touch modified by prox, disabled=$bool1" } + ) } fun logSensorTriggered(@Reason reason: Int) { - buffer.log(TAG, DEBUG, { - int1 = reason - }, { - "Sensor triggered, type=${reasonToString(int1)}" - }) + buffer.log( + TAG, + DEBUG, + { int1 = reason }, + { "Sensor triggered, type=${reasonToString(int1)}" } + ) } fun logAlwaysOnSuppressed(state: DozeMachine.State, reason: String) { - buffer.log(TAG, INFO, { - str1 = state.name - str2 = reason - }, { - "Always-on state suppressed, suppressed state=$str1 reason=$str2" - }) + buffer.log( + TAG, + INFO, + { + str1 = state.name + str2 = reason + }, + { "Always-on state suppressed, suppressed state=$str1 reason=$str2" } + ) } fun logImmediatelyEndDoze(reason: String) { - buffer.log(TAG, INFO, { - str1 = reason - }, { - "Doze immediately ended due to $str1" - }) - } - - fun logDozeScreenBrightness(brightness: Int) { - buffer.log(TAG, INFO, { - int1 = brightness - }, { - "Doze screen brightness set (int), brightness=$int1" - }) - } - - fun logDozeScreenBrightnessFloat(brightness: Float) { - buffer.log(TAG, INFO, { - double1 = brightness.toDouble() - }, { - "Doze screen brightness set (float), brightness=$double1" - }) + buffer.log(TAG, INFO, { str1 = reason }, { "Doze immediately ended due to $str1" }) + } + + fun logDozeScreenBrightness(brightness: Int, afterRequest: Boolean) { + buffer.log( + TAG, + INFO, + { + int1 = brightness + bool1 = afterRequest + }, + { + "Doze screen brightness ${if (bool1) "set" else "requested"}" + + " (int), brightness=$int1" + } + ) + } + + fun logDozeScreenBrightnessFloat(brightness: Float, afterRequest: Boolean) { + buffer.log( + TAG, + INFO, + { + double1 = brightness.toDouble() + bool1 = afterRequest + }, + { + "Doze screen brightness ${if (bool1) "set" else "requested"}" + + " (float), brightness=$double1" + } + ) } fun logSetAodDimmingScrim(scrimOpacity: Long) { - buffer.log(TAG, INFO, { - long1 = scrimOpacity - }, { - "Doze aod dimming scrim opacity set, opacity=$long1" - }) + buffer.log( + TAG, + INFO, + { long1 = scrimOpacity }, + { "Doze aod dimming scrim opacity set, opacity=$long1" } + ) } fun logCarModeEnded() { - buffer.log(TAG, INFO, {}, { - "Doze car mode ended" - }) + buffer.log(TAG, INFO, {}, { "Doze car mode ended" }) } fun logCarModeStarted() { - buffer.log(TAG, INFO, {}, { - "Doze car mode started" - }) + buffer.log(TAG, INFO, {}, { "Doze car mode started" }) } fun logSensorRegisterAttempt(sensorInfo: String, successfulRegistration: Boolean) { - buffer.log(TAG, INFO, { - str1 = sensorInfo - bool1 = successfulRegistration - }, { - "Register sensor. Success=$bool1 sensor=$str1" - }) + buffer.log( + TAG, + INFO, + { + str1 = sensorInfo + bool1 = successfulRegistration + }, + { "Register sensor. Success=$bool1 sensor=$str1" } + ) } fun logSensorUnregisterAttempt(sensorInfo: String, successfulUnregister: Boolean) { - buffer.log(TAG, INFO, { - str1 = sensorInfo - bool1 = successfulUnregister - }, { - "Unregister sensor. Success=$bool1 sensor=$str1" - }) + buffer.log( + TAG, + INFO, + { + str1 = sensorInfo + bool1 = successfulUnregister + }, + { "Unregister sensor. Success=$bool1 sensor=$str1" } + ) } fun logSensorUnregisterAttempt( - sensorInfo: String, - successfulUnregister: Boolean, - reason: String + sensorInfo: String, + successfulUnregister: Boolean, + reason: String ) { - buffer.log(TAG, INFO, { - str1 = sensorInfo - bool1 = successfulUnregister - str2 = reason - }, { - "Unregister sensor. reason=$str2. Success=$bool1 sensor=$str1" - }) + buffer.log( + TAG, + INFO, + { + str1 = sensorInfo + bool1 = successfulUnregister + str2 = reason + }, + { "Unregister sensor. reason=$str2. Success=$bool1 sensor=$str1" } + ) } fun logSkipSensorRegistration(sensor: String) { - buffer.log(TAG, DEBUG, { - str1 = sensor - }, { - "Skipping sensor registration because its already registered. sensor=$str1" - }) + buffer.log( + TAG, + DEBUG, + { str1 = sensor }, + { "Skipping sensor registration because its already registered. sensor=$str1" } + ) } fun logSetIgnoreTouchWhilePulsing(ignoreTouchWhilePulsing: Boolean) { - buffer.log(TAG, DEBUG, { - bool1 = ignoreTouchWhilePulsing - }, { - "Prox changed while pulsing. setIgnoreTouchWhilePulsing=$bool1" - }) + buffer.log( + TAG, + DEBUG, + { bool1 = ignoreTouchWhilePulsing }, + { "Prox changed while pulsing. setIgnoreTouchWhilePulsing=$bool1" } + ) } fun log(@CompileTimeConstant msg: String) { diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java index 8198ef41bb49..e02e3fbc339b 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java @@ -39,7 +39,6 @@ import com.android.systemui.util.wakelock.WakeLock; import java.io.PrintWriter; import java.util.ArrayList; -import java.util.concurrent.Executor; import javax.inject.Inject; @@ -232,7 +231,6 @@ public class DozeMachine { } void onScreenState(int state) { - mDozeLog.traceDisplayState(state); for (Part part : mParts) { part.onScreenState(state); } @@ -516,11 +514,9 @@ public class DozeMachine { class Delegate implements Service { private final Service mDelegate; - private final Executor mBgExecutor; - public Delegate(Service delegate, Executor bgExecutor) { + public Delegate(Service delegate) { mDelegate = delegate; - mBgExecutor = bgExecutor; } @Override @@ -540,16 +536,12 @@ public class DozeMachine { @Override public void setDozeScreenBrightness(int brightness) { - mBgExecutor.execute(() -> { - mDelegate.setDozeScreenBrightness(brightness); - }); + mDelegate.setDozeScreenBrightness(brightness); } @Override public void setDozeScreenBrightnessFloat(float brightness) { - mBgExecutor.execute(() -> { - mDelegate.setDozeScreenBrightnessFloat(brightness); - }); + mDelegate.setDozeScreenBrightnessFloat(brightness); } } } diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenStatePreventingAdapter.java b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenStatePreventingAdapter.java index 8d4447285af2..25c2c39f3e25 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeScreenStatePreventingAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeScreenStatePreventingAdapter.java @@ -22,16 +22,14 @@ import androidx.annotation.VisibleForTesting; import com.android.systemui.statusbar.phone.DozeParameters; -import java.util.concurrent.Executor; - /** * Prevents usage of doze screen states on devices that don't support them. */ public class DozeScreenStatePreventingAdapter extends DozeMachine.Service.Delegate { @VisibleForTesting - DozeScreenStatePreventingAdapter(DozeMachine.Service inner, Executor bgExecutor) { - super(inner, bgExecutor); + DozeScreenStatePreventingAdapter(DozeMachine.Service inner) { + super(inner); } @Override @@ -49,8 +47,8 @@ public class DozeScreenStatePreventingAdapter extends DozeMachine.Service.Delega * return a new instance of {@link DozeScreenStatePreventingAdapter} wrapping {@code inner}. */ public static DozeMachine.Service wrapIfNeeded(DozeMachine.Service inner, - DozeParameters params, Executor bgExecutor) { - return isNeeded(params) ? new DozeScreenStatePreventingAdapter(inner, bgExecutor) : inner; + DozeParameters params) { + return isNeeded(params) ? new DozeScreenStatePreventingAdapter(inner) : inner; } private static boolean isNeeded(DozeParameters params) { diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java index ba38ab0583d4..2e372ff435c2 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java @@ -23,6 +23,7 @@ import android.os.SystemClock; import android.service.dreams.DreamService; import android.util.Log; +import com.android.systemui.dagger.qualifiers.UiBackground; import com.android.systemui.doze.dagger.DozeComponent; import com.android.systemui.plugins.DozeServicePlugin; import com.android.systemui.plugins.DozeServicePlugin.RequestDoze; @@ -31,6 +32,7 @@ import com.android.systemui.plugins.PluginManager; import java.io.FileDescriptor; import java.io.PrintWriter; +import java.util.concurrent.Executor; import javax.inject.Inject; @@ -43,9 +45,14 @@ public class DozeService extends DreamService private DozeMachine mDozeMachine; private DozeServicePlugin mDozePlugin; private PluginManager mPluginManager; + private DozeLog mDozeLog; + private Executor mBgExecutor; @Inject - public DozeService(DozeComponent.Builder dozeComponentBuilder, PluginManager pluginManager) { + public DozeService(DozeComponent.Builder dozeComponentBuilder, PluginManager pluginManager, + DozeLog dozeLog, @UiBackground Executor bgExecutor) { + mDozeLog = dozeLog; + mBgExecutor = bgExecutor; mDozeComponentBuilder = dozeComponentBuilder; setDebug(DEBUG); mPluginManager = pluginManager; @@ -143,9 +150,29 @@ public class DozeService extends DreamService @Override public void setDozeScreenState(int state) { + mDozeLog.traceDisplayState(state, /* afterRequest */ false); super.setDozeScreenState(state); + mDozeLog.traceDisplayState(state, /* afterRequest */ true); if (mDozeMachine != null) { mDozeMachine.onScreenState(state); } } + + @Override + public void setDozeScreenBrightness(int brightness) { + mBgExecutor.execute(() -> { + mDozeLog.traceDozeScreenBrightness(brightness, /* afterRequest */ false); + super.setDozeScreenBrightness(brightness); + mDozeLog.traceDozeScreenBrightness(brightness, /* afterRequest */ true); + }); + } + + @Override + public void setDozeScreenBrightnessFloat(float brightness) { + mBgExecutor.execute(() -> { + mDozeLog.traceDozeScreenBrightnessFloat(brightness, /* afterRequest */ false); + super.setDozeScreenBrightnessFloat(brightness); + mDozeLog.traceDozeScreenBrightnessFloat(brightness, /* afterRequest */ true); + }); + } } diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapter.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapter.java index f7773f1888b3..cfc952df83e8 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapter.java @@ -22,16 +22,14 @@ import androidx.annotation.VisibleForTesting; import com.android.systemui.statusbar.phone.DozeParameters; -import java.util.concurrent.Executor; - /** * Prevents usage of doze screen states on devices that don't support them. */ public class DozeSuspendScreenStatePreventingAdapter extends DozeMachine.Service.Delegate { @VisibleForTesting - DozeSuspendScreenStatePreventingAdapter(DozeMachine.Service inner, Executor bgExecutor) { - super(inner, bgExecutor); + DozeSuspendScreenStatePreventingAdapter(DozeMachine.Service inner) { + super(inner); } @Override @@ -47,8 +45,8 @@ public class DozeSuspendScreenStatePreventingAdapter extends DozeMachine.Service * return a new instance of {@link DozeSuspendScreenStatePreventingAdapter} wrapping {@code inner}. */ public static DozeMachine.Service wrapIfNeeded(DozeMachine.Service inner, - DozeParameters params, Executor bgExecutor) { - return isNeeded(params) ? new DozeSuspendScreenStatePreventingAdapter(inner, bgExecutor) + DozeParameters params) { + return isNeeded(params) ? new DozeSuspendScreenStatePreventingAdapter(inner) : inner; } diff --git a/packages/SystemUI/src/com/android/systemui/doze/dagger/DozeModule.java b/packages/SystemUI/src/com/android/systemui/doze/dagger/DozeModule.java index 8c3de4bd1928..f383a04eb3ee 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/dagger/DozeModule.java +++ b/packages/SystemUI/src/com/android/systemui/doze/dagger/DozeModule.java @@ -19,7 +19,6 @@ package com.android.systemui.doze.dagger; import android.content.Context; import android.hardware.Sensor; -import com.android.systemui.dagger.qualifiers.UiBackground; import com.android.systemui.doze.DozeAuthRemover; import com.android.systemui.doze.DozeBrightnessHostForwarder; import com.android.systemui.doze.DozeDockHandler; @@ -51,7 +50,6 @@ import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Optional; -import java.util.concurrent.Executor; /** Dagger module for use with {@link com.android.systemui.doze.dagger.DozeComponent}. */ @Module @@ -60,13 +58,13 @@ public abstract class DozeModule { @DozeScope @WrappedService static DozeMachine.Service providesWrappedService(DozeMachine.Service dozeMachineService, - DozeHost dozeHost, DozeParameters dozeParameters, @UiBackground Executor bgExecutor) { + DozeHost dozeHost, DozeParameters dozeParameters) { DozeMachine.Service wrappedService = dozeMachineService; - wrappedService = new DozeBrightnessHostForwarder(wrappedService, dozeHost, bgExecutor); + wrappedService = new DozeBrightnessHostForwarder(wrappedService, dozeHost); wrappedService = DozeScreenStatePreventingAdapter.wrapIfNeeded( - wrappedService, dozeParameters, bgExecutor); + wrappedService, dozeParameters); wrappedService = DozeSuspendScreenStatePreventingAdapter.wrapIfNeeded( - wrappedService, dozeParameters, bgExecutor); + wrappedService, dozeParameters); return wrappedService; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java index f13a593d08f2..ac1015521502 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeServiceHost.java @@ -424,14 +424,12 @@ public final class DozeServiceHost implements DozeHost { @Override public void setDozeScreenBrightness(int brightness) { - mDozeLog.traceDozeScreenBrightness(brightness); mNotificationShadeWindowController.setDozeScreenBrightness(brightness); } @Override public void setDozeScreenBrightnessFloat(float brightness) { - mDozeLog.traceDozeScreenBrightnessFloat(brightness); mNotificationShadeWindowController.setDozeScreenBrightnessFloat(brightness); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStatePreventingAdapterTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStatePreventingAdapterTest.java index 419f7eda9d1f..299c38481b03 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStatePreventingAdapterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeScreenStatePreventingAdapterTest.java @@ -29,31 +29,22 @@ import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.phone.DozeParameters; -import com.android.systemui.util.concurrency.FakeExecutor; -import com.android.systemui.util.time.FakeSystemClock; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import java.util.concurrent.Executor; - @SmallTest @RunWith(AndroidJUnit4.class) public class DozeScreenStatePreventingAdapterTest extends SysuiTestCase { - private Executor mExecutor; private DozeMachine.Service mInner; private DozeScreenStatePreventingAdapter mWrapper; @Before public void setup() throws Exception { - mExecutor = new FakeExecutor(new FakeSystemClock()); mInner = mock(DozeMachine.Service.class); - mWrapper = new DozeScreenStatePreventingAdapter( - mInner, - mExecutor - ); + mWrapper = new DozeScreenStatePreventingAdapter(mInner); } @Test @@ -98,7 +89,7 @@ public class DozeScreenStatePreventingAdapterTest extends SysuiTestCase { when(params.getDisplayStateSupported()).thenReturn(false); assertEquals(DozeScreenStatePreventingAdapter.class, - DozeScreenStatePreventingAdapter.wrapIfNeeded(mInner, params, mExecutor) + DozeScreenStatePreventingAdapter.wrapIfNeeded(mInner, params) .getClass()); } @@ -107,7 +98,6 @@ public class DozeScreenStatePreventingAdapterTest extends SysuiTestCase { DozeParameters params = mock(DozeParameters.class); when(params.getDisplayStateSupported()).thenReturn(true); - assertSame(mInner, DozeScreenStatePreventingAdapter.wrapIfNeeded(mInner, params, - mExecutor)); + assertSame(mInner, DozeScreenStatePreventingAdapter.wrapIfNeeded(mInner, params)); } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapterTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapterTest.java index 5a89710f6cf6..0d6a9ceece5c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapterTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSuspendScreenStatePreventingAdapterTest.java @@ -29,28 +29,22 @@ import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.phone.DozeParameters; -import com.android.systemui.util.concurrency.FakeExecutor; -import com.android.systemui.util.time.FakeSystemClock; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import java.util.concurrent.Executor; - @SmallTest @RunWith(AndroidJUnit4.class) public class DozeSuspendScreenStatePreventingAdapterTest extends SysuiTestCase { - private Executor mExecutor; private DozeMachine.Service mInner; private DozeSuspendScreenStatePreventingAdapter mWrapper; @Before public void setup() throws Exception { - mExecutor = new FakeExecutor(new FakeSystemClock()); mInner = mock(DozeMachine.Service.class); - mWrapper = new DozeSuspendScreenStatePreventingAdapter(mInner, mExecutor); + mWrapper = new DozeSuspendScreenStatePreventingAdapter(mInner); } @Test @@ -101,7 +95,7 @@ public class DozeSuspendScreenStatePreventingAdapterTest extends SysuiTestCase { when(params.getDozeSuspendDisplayStateSupported()).thenReturn(false); assertEquals(DozeSuspendScreenStatePreventingAdapter.class, - DozeSuspendScreenStatePreventingAdapter.wrapIfNeeded(mInner, params, mExecutor) + DozeSuspendScreenStatePreventingAdapter.wrapIfNeeded(mInner, params) .getClass()); } @@ -110,7 +104,6 @@ public class DozeSuspendScreenStatePreventingAdapterTest extends SysuiTestCase { DozeParameters params = mock(DozeParameters.class); when(params.getDozeSuspendDisplayStateSupported()).thenReturn(true); - assertSame(mInner, DozeSuspendScreenStatePreventingAdapter.wrapIfNeeded(mInner, params, - mExecutor)); + assertSame(mInner, DozeSuspendScreenStatePreventingAdapter.wrapIfNeeded(mInner, params)); } } |