Merge "Fix memory leak via ZenModeController callbacks." into nyc-dev am: 30e434a996
am: 84e725309c
* commit '84e725309c468b9f8d49e25562b6ee400c79992e':
Fix memory leak via ZenModeController callbacks.
Change-Id: I865083fdfb2ddaa77d772d77770c1a48859dc03c
This commit is contained in:
@@ -70,16 +70,6 @@ public class ZenFooter extends LinearLayout {
|
||||
}
|
||||
|
||||
public void init(final ZenModeController controller) {
|
||||
controller.addCallback(new ZenModeController.Callback() {
|
||||
@Override
|
||||
public void onZenChanged(int zen) {
|
||||
setZen(zen);
|
||||
}
|
||||
@Override
|
||||
public void onConfigChanged(ZenModeConfig config) {
|
||||
setConfig(config);
|
||||
}
|
||||
});
|
||||
mEndNowButton.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -92,6 +82,18 @@ public class ZenFooter extends LinearLayout {
|
||||
update();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onAttachedToWindow() {
|
||||
super.onAttachedToWindow();
|
||||
mController.addCallback(mZenCallback);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
mController.removeCallback(mZenCallback);
|
||||
}
|
||||
|
||||
private void setZen(int zen) {
|
||||
if (mZen == zen) return;
|
||||
mZen = zen;
|
||||
@@ -143,4 +145,14 @@ public class ZenFooter extends LinearLayout {
|
||||
mSpTexts.update();
|
||||
}
|
||||
|
||||
private final ZenModeController.Callback mZenCallback = new ZenModeController.Callback() {
|
||||
@Override
|
||||
public void onZenChanged(int zen) {
|
||||
setZen(zen);
|
||||
}
|
||||
@Override
|
||||
public void onConfigChanged(ZenModeConfig config) {
|
||||
setConfig(config);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -234,6 +234,7 @@ public class ZenModePanel extends LinearLayout {
|
||||
mAttachedZen = getSelectedZen(-1);
|
||||
mSessionZen = mAttachedZen;
|
||||
mTransitionHelper.clear();
|
||||
mController.addCallback(mZenCallback);
|
||||
setSessionExitCondition(copy(mExitCondition));
|
||||
updateWidgets();
|
||||
setRequestingConditions(!mHidden);
|
||||
@@ -247,6 +248,7 @@ public class ZenModePanel extends LinearLayout {
|
||||
mAttached = false;
|
||||
mAttachedZen = -1;
|
||||
mSessionZen = -1;
|
||||
mController.removeCallback(mZenCallback);
|
||||
setSessionExitCondition(null);
|
||||
setRequestingConditions(false);
|
||||
mTransitionHelper.clear();
|
||||
@@ -332,7 +334,6 @@ public class ZenModePanel extends LinearLayout {
|
||||
handleUpdateManualRule(mController.getManualRule());
|
||||
if (DEBUG) Log.d(mTag, "init mExitCondition=" + mExitCondition);
|
||||
hideAllConditions();
|
||||
mController.addCallback(mZenCallback);
|
||||
}
|
||||
|
||||
public void updateLocale() {
|
||||
|
||||
Reference in New Issue
Block a user