Add more specific start/stop dream reasons.
As dreams get more complex, we would like more specific loggings for how dreams are started/stopped for better debugging. This CL adds "reason" as a required parameter in the start/stop dream internal/private API. This allows callers to specify reasons. Bug: 252796782 Fix: 252796782 Test: verified reasons are correctly logged on device Change-Id: Icea03eb6e23ca113f50fa047f6d57e6e1d0b5604
This commit is contained in:
@@ -29,16 +29,18 @@ public abstract class DreamManagerInternal {
|
||||
*
|
||||
* @param doze If true, starts the doze dream component if one has been configured,
|
||||
* otherwise starts the user-specified dream.
|
||||
* @param reason The reason to start dreaming, which is logged to help debugging.
|
||||
*/
|
||||
public abstract void startDream(boolean doze);
|
||||
public abstract void startDream(boolean doze, String reason);
|
||||
|
||||
/**
|
||||
* Called by the power manager to stop a dream.
|
||||
*
|
||||
* @param immediate If true, ends the dream summarily, otherwise gives it some time
|
||||
* to perform a proper exit transition.
|
||||
* @param reason The reason to stop dreaming, which is logged to help debugging.
|
||||
*/
|
||||
public abstract void stopDream(boolean immediate);
|
||||
public abstract void stopDream(boolean immediate, String reason);
|
||||
|
||||
/**
|
||||
* Called by the power manager to determine whether a dream is running.
|
||||
|
||||
@@ -856,13 +856,13 @@ public final class DreamManagerService extends SystemService {
|
||||
|
||||
private final class LocalService extends DreamManagerInternal {
|
||||
@Override
|
||||
public void startDream(boolean doze) {
|
||||
startDreamInternal(doze, "dream manager request" /*reason*/);
|
||||
public void startDream(boolean doze, String reason) {
|
||||
startDreamInternal(doze, reason);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stopDream(boolean immediate) {
|
||||
stopDreamInternal(immediate, "dream manager request" /*reason*/);
|
||||
public void stopDream(boolean immediate, String reason) {
|
||||
stopDreamInternal(immediate, reason);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1597,7 +1597,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
||||
// If there's a dream running then use home to escape the dream
|
||||
// but don't actually go home.
|
||||
if (mDreamManagerInternal != null && mDreamManagerInternal.isDreaming()) {
|
||||
mDreamManagerInternal.stopDream(false /*immediate*/);
|
||||
mDreamManagerInternal.stopDream(false /*immediate*/, "short press on home" /*reason*/);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -3218,8 +3218,10 @@ public final class PowerManagerService extends SystemService
|
||||
if (mDreamManager != null) {
|
||||
// Restart the dream whenever the sandman is summoned.
|
||||
if (startDreaming) {
|
||||
mDreamManager.stopDream(/* immediate= */ false);
|
||||
mDreamManager.startDream(wakefulness == WAKEFULNESS_DOZING);
|
||||
mDreamManager.stopDream(/* immediate= */ false,
|
||||
"power manager request before starting dream" /*reason*/);
|
||||
mDreamManager.startDream(wakefulness == WAKEFULNESS_DOZING,
|
||||
"power manager request" /*reason*/);
|
||||
}
|
||||
isDreaming = mDreamManager.isDreaming();
|
||||
} else {
|
||||
@@ -3304,7 +3306,7 @@ public final class PowerManagerService extends SystemService
|
||||
|
||||
// Stop dream.
|
||||
if (isDreaming) {
|
||||
mDreamManager.stopDream(/* immediate= */ false);
|
||||
mDreamManager.stopDream(/* immediate= */ false, "power manager request" /*reason*/);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -731,7 +731,7 @@ public class PowerManagerServiceTest {
|
||||
doAnswer(inv -> {
|
||||
when(mDreamManagerInternalMock.isDreaming()).thenReturn(true);
|
||||
return null;
|
||||
}).when(mDreamManagerInternalMock).startDream(anyBoolean());
|
||||
}).when(mDreamManagerInternalMock).startDream(anyBoolean(), anyString());
|
||||
|
||||
setMinimumScreenOffTimeoutConfig(5);
|
||||
createService();
|
||||
@@ -753,7 +753,7 @@ public class PowerManagerServiceTest {
|
||||
doAnswer(inv -> {
|
||||
when(mDreamManagerInternalMock.isDreaming()).thenReturn(true);
|
||||
return null;
|
||||
}).when(mDreamManagerInternalMock).startDream(anyBoolean());
|
||||
}).when(mDreamManagerInternalMock).startDream(anyBoolean(), anyString());
|
||||
|
||||
setMinimumScreenOffTimeoutConfig(5);
|
||||
createService();
|
||||
@@ -1168,7 +1168,7 @@ public class PowerManagerServiceTest {
|
||||
doAnswer(inv -> {
|
||||
when(mDreamManagerInternalMock.isDreaming()).thenReturn(true);
|
||||
return null;
|
||||
}).when(mDreamManagerInternalMock).startDream(anyBoolean());
|
||||
}).when(mDreamManagerInternalMock).startDream(anyBoolean(), anyString());
|
||||
|
||||
final String pkg = mContextSpy.getOpPackageName();
|
||||
final Binder token = new Binder();
|
||||
@@ -1662,7 +1662,7 @@ public class PowerManagerServiceTest {
|
||||
forceDozing();
|
||||
// Allow handleSandman() to be called asynchronously
|
||||
advanceTime(500);
|
||||
verify(mDreamManagerInternalMock).startDream(eq(true));
|
||||
verify(mDreamManagerInternalMock).startDream(eq(true), anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1700,7 +1700,7 @@ public class PowerManagerServiceTest {
|
||||
|
||||
// Allow handleSandman() to be called asynchronously
|
||||
advanceTime(500);
|
||||
verify(mDreamManagerInternalMock).startDream(eq(true));
|
||||
verify(mDreamManagerInternalMock).startDream(eq(true), anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user