* commit 'b52a4a5af504daa0fb7fe28509a522e9d5153ab3': Don't wait for brightness changes
This commit is contained in:
@@ -341,7 +341,8 @@ final class DisplayPowerState {
|
|||||||
private int mPendingBacklight = INITIAL_BACKLIGHT;
|
private int mPendingBacklight = INITIAL_BACKLIGHT;
|
||||||
private int mActualState = INITIAL_SCREEN_STATE;
|
private int mActualState = INITIAL_SCREEN_STATE;
|
||||||
private int mActualBacklight = INITIAL_BACKLIGHT;
|
private int mActualBacklight = INITIAL_BACKLIGHT;
|
||||||
private boolean mChangeInProgress;
|
private boolean mStateChangeInProgress;
|
||||||
|
private boolean mBacklightChangeInProgress;
|
||||||
|
|
||||||
public PhotonicModulator() {
|
public PhotonicModulator() {
|
||||||
super("PhotonicModulator");
|
super("PhotonicModulator");
|
||||||
@@ -349,7 +350,9 @@ final class DisplayPowerState {
|
|||||||
|
|
||||||
public boolean setState(int state, int backlight) {
|
public boolean setState(int state, int backlight) {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
if (state != mPendingState || backlight != mPendingBacklight) {
|
boolean stateChanged = state != mPendingState;
|
||||||
|
boolean backlightChanged = backlight != mPendingBacklight;
|
||||||
|
if (stateChanged || backlightChanged) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Slog.d(TAG, "Requesting new screen state: state="
|
Slog.d(TAG, "Requesting new screen state: state="
|
||||||
+ Display.stateToString(state) + ", backlight=" + backlight);
|
+ Display.stateToString(state) + ", backlight=" + backlight);
|
||||||
@@ -358,12 +361,15 @@ final class DisplayPowerState {
|
|||||||
mPendingState = state;
|
mPendingState = state;
|
||||||
mPendingBacklight = backlight;
|
mPendingBacklight = backlight;
|
||||||
|
|
||||||
if (!mChangeInProgress) {
|
boolean changeInProgress = mStateChangeInProgress || mBacklightChangeInProgress;
|
||||||
mChangeInProgress = true;
|
mStateChangeInProgress = stateChanged;
|
||||||
|
mBacklightChangeInProgress = backlightChanged;
|
||||||
|
|
||||||
|
if (!changeInProgress) {
|
||||||
mLock.notifyAll();
|
mLock.notifyAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return !mChangeInProgress;
|
return !mStateChangeInProgress;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -375,7 +381,8 @@ final class DisplayPowerState {
|
|||||||
pw.println(" mPendingBacklight=" + mPendingBacklight);
|
pw.println(" mPendingBacklight=" + mPendingBacklight);
|
||||||
pw.println(" mActualState=" + Display.stateToString(mActualState));
|
pw.println(" mActualState=" + Display.stateToString(mActualState));
|
||||||
pw.println(" mActualBacklight=" + mActualBacklight);
|
pw.println(" mActualBacklight=" + mActualBacklight);
|
||||||
pw.println(" mChangeInProgress=" + mChangeInProgress);
|
pw.println(" mStateChangeInProgress=" + mStateChangeInProgress);
|
||||||
|
pw.println(" mBacklightChangeInProgress=" + mBacklightChangeInProgress);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -392,10 +399,15 @@ final class DisplayPowerState {
|
|||||||
stateChanged = (state != mActualState);
|
stateChanged = (state != mActualState);
|
||||||
backlight = mPendingBacklight;
|
backlight = mPendingBacklight;
|
||||||
backlightChanged = (backlight != mActualBacklight);
|
backlightChanged = (backlight != mActualBacklight);
|
||||||
if (!stateChanged && !backlightChanged) {
|
if (!stateChanged) {
|
||||||
// All changed applied, notify outer class and wait for more.
|
// State changed applied, notify outer class.
|
||||||
mChangeInProgress = false;
|
|
||||||
postScreenUpdateThreadSafe();
|
postScreenUpdateThreadSafe();
|
||||||
|
mStateChangeInProgress = false;
|
||||||
|
}
|
||||||
|
if (!backlightChanged) {
|
||||||
|
mBacklightChangeInProgress = false;
|
||||||
|
}
|
||||||
|
if (!stateChanged && !backlightChanged) {
|
||||||
try {
|
try {
|
||||||
mLock.wait();
|
mLock.wait();
|
||||||
} catch (InterruptedException ex) { }
|
} catch (InterruptedException ex) { }
|
||||||
|
|||||||
Reference in New Issue
Block a user