Merge "BrightnessMirror: When reinflating, notify QSPanel" into oc-dr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
1273dd6b86
@@ -46,6 +46,7 @@ import com.android.systemui.qs.external.CustomTile;
|
||||
import com.android.systemui.settings.BrightnessController;
|
||||
import com.android.systemui.settings.ToggleSliderView;
|
||||
import com.android.systemui.statusbar.policy.BrightnessMirrorController;
|
||||
import com.android.systemui.statusbar.policy.BrightnessMirrorController.BrightnessMirrorListener;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.tuner.TunerService.Tunable;
|
||||
|
||||
@@ -53,7 +54,7 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
/** View that represents the quick settings tile panel. **/
|
||||
public class QSPanel extends LinearLayout implements Tunable, Callback {
|
||||
public class QSPanel extends LinearLayout implements Tunable, Callback, BrightnessMirrorListener {
|
||||
|
||||
public static final String QS_SHOW_BRIGHTNESS = "qs_show_brightness";
|
||||
|
||||
@@ -152,6 +153,9 @@ public class QSPanel extends LinearLayout implements Tunable, Callback {
|
||||
if (mHost != null) {
|
||||
setTiles(mHost.getTiles());
|
||||
}
|
||||
if (mBrightnessMirrorController != null) {
|
||||
mBrightnessMirrorController.addCallback(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -163,6 +167,9 @@ public class QSPanel extends LinearLayout implements Tunable, Callback {
|
||||
for (TileRecord record : mRecords) {
|
||||
record.tile.removeCallbacks();
|
||||
}
|
||||
if (mBrightnessMirrorController != null) {
|
||||
mBrightnessMirrorController.removeCallback(this);
|
||||
}
|
||||
super.onDetachedFromWindow();
|
||||
}
|
||||
|
||||
@@ -194,12 +201,19 @@ public class QSPanel extends LinearLayout implements Tunable, Callback {
|
||||
}
|
||||
|
||||
public void setBrightnessMirror(BrightnessMirrorController c) {
|
||||
if (mBrightnessMirrorController != null) {
|
||||
mBrightnessMirrorController.removeCallback(this);
|
||||
}
|
||||
mBrightnessMirrorController = c;
|
||||
ToggleSliderView brightnessSlider = findViewById(R.id.brightness_slider);
|
||||
ToggleSliderView mirror = c.getMirror().findViewById(
|
||||
R.id.brightness_slider);
|
||||
brightnessSlider.setMirror(mirror);
|
||||
brightnessSlider.setMirrorController(c);
|
||||
if (mBrightnessMirrorController != null) {
|
||||
mBrightnessMirrorController.addCallback(this);
|
||||
}
|
||||
updateBrightnessMirror();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBrightnessMirrorReinflated(View brightnessMirror) {
|
||||
updateBrightnessMirror();
|
||||
}
|
||||
|
||||
View getBrightnessView() {
|
||||
@@ -246,9 +260,16 @@ public class QSPanel extends LinearLayout implements Tunable, Callback {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
mFooter.onConfigurationChanged();
|
||||
|
||||
updateBrightnessMirror();
|
||||
}
|
||||
|
||||
public void updateBrightnessMirror() {
|
||||
if (mBrightnessMirrorController != null) {
|
||||
// Reload the mirror in case it got reinflated but we didn't.
|
||||
setBrightnessMirror(mBrightnessMirrorController);
|
||||
ToggleSliderView brightnessSlider = findViewById(R.id.brightness_slider);
|
||||
ToggleSliderView mirrorSlider = mBrightnessMirrorController.getMirror()
|
||||
.findViewById(R.id.brightness_slider);
|
||||
brightnessSlider.setMirror(mirrorSlider);
|
||||
brightnessSlider.setMirrorController(mBrightnessMirrorController);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,14 +16,15 @@
|
||||
|
||||
package com.android.systemui.statusbar.policy;
|
||||
|
||||
import android.util.ArraySet;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewPropertyAnimator;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import com.android.internal.util.Preconditions;
|
||||
import com.android.systemui.Interpolators;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.statusbar.ScrimView;
|
||||
import com.android.systemui.statusbar.phone.ScrimController;
|
||||
import com.android.systemui.statusbar.phone.StatusBarWindowView;
|
||||
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
|
||||
@@ -31,7 +32,8 @@ import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
|
||||
/**
|
||||
* Controls showing and hiding of the brightness mirror.
|
||||
*/
|
||||
public class BrightnessMirrorController {
|
||||
public class BrightnessMirrorController
|
||||
implements CallbackController<BrightnessMirrorController.BrightnessMirrorListener> {
|
||||
|
||||
private final NotificationStackScrollLayout mStackScroller;
|
||||
public long TRANSITION_DURATION_OUT = 150;
|
||||
@@ -40,6 +42,7 @@ public class BrightnessMirrorController {
|
||||
private final StatusBarWindowView mStatusBarWindow;
|
||||
private final ScrimController mScrimController;
|
||||
private final View mNotificationPanel;
|
||||
private final ArraySet<BrightnessMirrorListener> mBrightnessMirrorListeners = new ArraySet<>();
|
||||
private final int[] mInt2Cache = new int[2];
|
||||
private View mBrightnessMirror;
|
||||
|
||||
@@ -130,5 +133,24 @@ public class BrightnessMirrorController {
|
||||
mBrightnessMirror = LayoutInflater.from(mBrightnessMirror.getContext()).inflate(
|
||||
R.layout.brightness_mirror, mStatusBarWindow, false);
|
||||
mStatusBarWindow.addView(mBrightnessMirror, index);
|
||||
|
||||
for (int i = 0; i < mBrightnessMirrorListeners.size(); i++) {
|
||||
mBrightnessMirrorListeners.valueAt(i).onBrightnessMirrorReinflated(mBrightnessMirror);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCallback(BrightnessMirrorListener listener) {
|
||||
Preconditions.checkNotNull(listener);
|
||||
mBrightnessMirrorListeners.add(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeCallback(BrightnessMirrorListener listener) {
|
||||
mBrightnessMirrorListeners.remove(listener);
|
||||
}
|
||||
|
||||
public interface BrightnessMirrorListener {
|
||||
void onBrightnessMirrorReinflated(View brightnessMirror);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user