am 384e2274: Fix errors that could lead to brightness flickering
* commit '384e2274834a788e1808951a2b486c14daf474ab': Fix errors that could lead to brightness flickering
This commit is contained in:
@@ -59,6 +59,7 @@ public class BrightnessController implements ToggleSlider.Listener {
|
||||
|
||||
private boolean mAutomatic;
|
||||
private boolean mListening;
|
||||
private boolean mExternalChange;
|
||||
|
||||
public interface BrightnessStateChangeCallback {
|
||||
public void onBrightnessLevelChanged();
|
||||
@@ -86,19 +87,24 @@ public class BrightnessController implements ToggleSlider.Listener {
|
||||
@Override
|
||||
public void onChange(boolean selfChange, Uri uri) {
|
||||
if (selfChange) return;
|
||||
if (BRIGHTNESS_MODE_URI.equals(uri)) {
|
||||
updateMode();
|
||||
updateSlider();
|
||||
} else if (BRIGHTNESS_URI.equals(uri) && !mAutomatic) {
|
||||
updateSlider();
|
||||
} else if (BRIGHTNESS_ADJ_URI.equals(uri) && mAutomatic) {
|
||||
updateSlider();
|
||||
} else {
|
||||
updateMode();
|
||||
updateSlider();
|
||||
}
|
||||
for (BrightnessStateChangeCallback cb : mChangeCallbacks) {
|
||||
cb.onBrightnessLevelChanged();
|
||||
try {
|
||||
mExternalChange = true;
|
||||
if (BRIGHTNESS_MODE_URI.equals(uri)) {
|
||||
updateMode();
|
||||
updateSlider();
|
||||
} else if (BRIGHTNESS_URI.equals(uri) && !mAutomatic) {
|
||||
updateSlider();
|
||||
} else if (BRIGHTNESS_ADJ_URI.equals(uri) && mAutomatic) {
|
||||
updateSlider();
|
||||
} else {
|
||||
updateMode();
|
||||
updateSlider();
|
||||
}
|
||||
for (BrightnessStateChangeCallback cb : mChangeCallbacks) {
|
||||
cb.onBrightnessLevelChanged();
|
||||
}
|
||||
} finally {
|
||||
mExternalChange = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,6 +197,8 @@ public class BrightnessController implements ToggleSlider.Listener {
|
||||
@Override
|
||||
public void onChanged(ToggleSlider view, boolean tracking, boolean automatic, int value) {
|
||||
updateIcon(mAutomatic);
|
||||
if (mExternalChange) return;
|
||||
|
||||
if (!mAutomatic) {
|
||||
final int val = value + mMinimumBacklight;
|
||||
setBrightness(val);
|
||||
|
||||
@@ -40,35 +40,27 @@ public class BrightnessDialog extends Activity {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
final Window window = getWindow();
|
||||
final WindowManager.LayoutParams lp = window.getAttributes();
|
||||
|
||||
// Offset from the top
|
||||
lp.y = getResources().getDimensionPixelOffset(R.dimen.volume_panel_top);
|
||||
lp.type = WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
|
||||
lp.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS;
|
||||
|
||||
window.setAttributes(lp);
|
||||
window.setGravity(Gravity.TOP);
|
||||
window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
|
||||
window.requestFeature(Window.FEATURE_NO_TITLE);
|
||||
|
||||
setContentView(R.layout.quick_settings_brightness_dialog);
|
||||
|
||||
final ImageView icon = (ImageView) findViewById(R.id.brightness_icon);
|
||||
final ToggleSlider slider = (ToggleSlider) findViewById(R.id.brightness_slider);
|
||||
mBrightnessController = new BrightnessController(this, icon, slider);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
|
||||
final ImageView icon = (ImageView) findViewById(R.id.brightness_icon);
|
||||
final ToggleSlider slider = (ToggleSlider) findViewById(R.id.brightness_slider);
|
||||
mBrightnessController = new BrightnessController(this, icon, slider);
|
||||
mBrightnessController.registerCallbacks();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
|
||||
mBrightnessController.unregisterCallbacks();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user