private boolean mAutomaticAvailable;
private boolean mAutomaticMode;
+ private int mCurBrightness = -1;
+
private boolean mRestoredOldState;
// Backlight range is from 0 - 255. Need to make sure that user
private ContentObserver mBrightnessObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
+ mCurBrightness = -1;
onBrightnessChanged();
}
};
: Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
mSeekBar.setProgress(getBrightness());
mSeekBar.setEnabled(!mAutomaticMode);
+ setBrightness(mSeekBar.getProgress(), false);
}
private int getBrightness() {
Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0);
brightness = (brightness+1)/2;
} else {
- brightness = Settings.System.getInt(getContext().getContentResolver(),
- Settings.System.SCREEN_BRIGHTNESS, 100);
+ if (mCurBrightness < 0) {
+ brightness = Settings.System.getInt(getContext().getContentResolver(),
+ Settings.System.SCREEN_BRIGHTNESS, 100);
+ } else {
+ brightness = mCurBrightness;
+ }
brightness = (brightness - mScreenBrightnessDim)
/ (MAXIMUM_BACKLIGHT - mScreenBrightnessDim);
}
}
setBrightness(mOldBrightness, false);
mRestoredOldState = true;
+ mCurBrightness = -1;
}
private void setBrightness(int brightness, boolean write) {
power.setBacklightBrightness(brightness);
}
if (write) {
+ mCurBrightness = -1;
final ContentResolver resolver = getContext().getContentResolver();
Settings.System.putInt(resolver,
Settings.System.SCREEN_BRIGHTNESS, brightness);
+ } else {
+ mCurBrightness = brightness;
}
} catch (RemoteException doe) {
}
myState.progress = mSeekBar.getProgress();
myState.oldAutomatic = mOldAutomatic == 1;
myState.oldProgress = mOldBrightness;
+ myState.curBrightness = mCurBrightness;
// Restore the old state when the activity or dialog is being paused
restoreOldState();
mOldAutomatic = myState.oldAutomatic ? 1 : 0;
setMode(myState.automatic ? 1 : 0);
setBrightness(myState.progress, false);
+ mCurBrightness = myState.curBrightness;
}
private static class SavedState extends BaseSavedState {
boolean oldAutomatic;
int progress;
int oldProgress;
+ int curBrightness;
public SavedState(Parcel source) {
super(source);
progress = source.readInt();
oldAutomatic = source.readInt() == 1;
oldProgress = source.readInt();
+ curBrightness = source.readInt();
}
@Override
dest.writeInt(progress);
dest.writeInt(oldAutomatic ? 1 : 0);
dest.writeInt(oldProgress);
+ dest.writeInt(curBrightness);
}
public SavedState(Parcelable superState) {