Merge "Initialize screen state earlier in the boot process." into jb-mr1-dev
This commit is contained in:
@@ -49,8 +49,6 @@ final class DisplayPowerState {
|
|||||||
private static final int DIRTY_ELECTRON_BEAM = 1 << 1;
|
private static final int DIRTY_ELECTRON_BEAM = 1 << 1;
|
||||||
private static final int DIRTY_BRIGHTNESS = 1 << 2;
|
private static final int DIRTY_BRIGHTNESS = 1 << 2;
|
||||||
|
|
||||||
private static final int DIRTY_ALL = 0xffffffff;
|
|
||||||
|
|
||||||
private final Choreographer mChoreographer;
|
private final Choreographer mChoreographer;
|
||||||
private final ElectronBeam mElectronBeam;
|
private final ElectronBeam mElectronBeam;
|
||||||
private final PhotonicModulator mScreenBrightnessModulator;
|
private final PhotonicModulator mScreenBrightnessModulator;
|
||||||
@@ -68,10 +66,16 @@ final class DisplayPowerState {
|
|||||||
mElectronBeam = electronBean;
|
mElectronBeam = electronBean;
|
||||||
mScreenBrightnessModulator = screenBrightnessModulator;
|
mScreenBrightnessModulator = screenBrightnessModulator;
|
||||||
|
|
||||||
|
// At boot time, we know that the screen is on and the electron beam
|
||||||
|
// animation is not playing. We don't know the screen's brightness though,
|
||||||
|
// so prepare to set it to a known state when the state is next applied.
|
||||||
|
// Although we set the brightness to full on here, the display power controller
|
||||||
|
// will reset the brightness to a new level immediately before the changes
|
||||||
|
// actually have a chance to be applied.
|
||||||
mScreenOn = true;
|
mScreenOn = true;
|
||||||
mElectronBeamLevel = 1.0f;
|
mElectronBeamLevel = 1.0f;
|
||||||
mScreenBrightness = PowerManager.BRIGHTNESS_ON;
|
mScreenBrightness = PowerManager.BRIGHTNESS_ON;
|
||||||
invalidate(DIRTY_ALL);
|
invalidate(DIRTY_BRIGHTNESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final FloatProperty<DisplayPowerState> ELECTRON_BEAM_LEVEL =
|
public static final FloatProperty<DisplayPowerState> ELECTRON_BEAM_LEVEL =
|
||||||
|
|||||||
@@ -296,6 +296,7 @@ public final class PowerManagerService extends IPowerManager.Stub
|
|||||||
}
|
}
|
||||||
|
|
||||||
nativeInit();
|
nativeInit();
|
||||||
|
nativeSetPowerState(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -305,6 +306,14 @@ public final class PowerManagerService extends IPowerManager.Stub
|
|||||||
public void init(Context context, LightsService ls,
|
public void init(Context context, LightsService ls,
|
||||||
ActivityManagerService am, BatteryService bs, IBatteryStats bss,
|
ActivityManagerService am, BatteryService bs, IBatteryStats bss,
|
||||||
DisplayManagerService dm) {
|
DisplayManagerService dm) {
|
||||||
|
// Forcibly turn the screen on at boot so that it is in a known power state.
|
||||||
|
// We do this in init() rather than in the constructor because setting the
|
||||||
|
// screen state requires a call into surface flinger which then needs to call back
|
||||||
|
// into the activity manager to check permissions. Unfortunately the
|
||||||
|
// activity manager is not running when the constructor is called, so we
|
||||||
|
// have to defer setting the screen state until this point.
|
||||||
|
nativeSetScreenState(true);
|
||||||
|
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mLightsService = ls;
|
mLightsService = ls;
|
||||||
mBatteryService = bs;
|
mBatteryService = bs;
|
||||||
|
|||||||
Reference in New Issue
Block a user