summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSFragment.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSPanel.java21
-rw-r--r--packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java8
3 files changed, 22 insertions, 12 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
index c36cdf6ac262..19cbcb8ae8ac 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
@@ -256,7 +256,7 @@ public class QSFragment extends Fragment implements QS, CommandQueue.Callbacks {
public void setExpanded(boolean expanded) {
if (DEBUG) Log.d(TAG, "setExpanded " + expanded);
mQsExpanded = expanded;
- mQSPanel.setListening(mListening && mQsExpanded);
+ mQSPanel.setListening(mListening, mQsExpanded);
updateQsState();
}
@@ -287,8 +287,7 @@ public class QSFragment extends Fragment implements QS, CommandQueue.Callbacks {
mListening = listening;
mHeader.setListening(listening);
mFooter.setListening(listening);
- mQSPanel.setListening(mListening && mQsExpanded);
- mQSPanel.getFooter().setListening(listening);
+ mQSPanel.setListening(mListening, mQsExpanded);
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index 7a57fdde6712..8b2e1d5eef64 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
@@ -353,12 +353,21 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
if (mListening) {
refreshAllTiles();
}
- if (mBrightnessView.getVisibility() == View.VISIBLE) {
- if (listening) {
- mBrightnessController.registerCallbacks();
- } else {
- mBrightnessController.unregisterCallbacks();
- }
+ }
+
+ public void setListening(boolean listening, boolean expanded) {
+ setListening(listening && expanded);
+ getFooter().setListening(listening);
+ // Set the listening as soon as the QS fragment starts listening regardless of the expansion,
+ // so it will update the current brightness before the slider is visible.
+ setBrightnessListening(listening);
+ }
+
+ public void setBrightnessListening(boolean listening) {
+ if (listening) {
+ mBrightnessController.registerCallbacks();
+ } else {
+ mBrightnessController.unregisterCallbacks();
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java b/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java
index 117872558f7f..3ed5f70b8915 100644
--- a/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java
+++ b/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java
@@ -460,7 +460,7 @@ public class BrightnessController implements ToggleSlider.Listener {
private void animateSliderTo(int target) {
if (!mControlValueInitialized) {
- // Don't animate the first value since it's default state isn't meaningful to users.
+ // Don't animate the first value since its default state isn't meaningful to users.
mControl.setValue(target);
mControlValueInitialized = true;
}
@@ -470,10 +470,12 @@ public class BrightnessController implements ToggleSlider.Listener {
mSliderAnimator = ValueAnimator.ofInt(mControl.getValue(), target);
mSliderAnimator.addUpdateListener((ValueAnimator animation) -> {
mExternalChange = true;
- mControl.setValue((int)animation.getAnimatedValue());
+ mControl.setValue((int) animation.getAnimatedValue());
mExternalChange = false;
});
- mSliderAnimator.setDuration(SLIDER_ANIMATION_DURATION);
+ final long animationDuration = SLIDER_ANIMATION_DURATION * Math.abs(
+ mControl.getValue() - target) / GAMMA_SPACE_MAX;
+ mSliderAnimator.setDuration(animationDuration);
mSliderAnimator.start();
}