Merge "Fix memory leak via ZenModeController callbacks." into nyc-dev am: 30e434a996

am: 480cb05866

* commit '480cb05866ca47188ce77f0eb5a304b371223c7c':
  Fix memory leak via ZenModeController callbacks.

Change-Id: If765b78cd4b947dec5c9845f8d3981c584e743e6
This commit is contained in:
Julia Reynolds
2016-06-02 21:22:34 +00:00
committed by android-build-merger
2 changed files with 24 additions and 11 deletions

View File

@@ -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);
}
};
}

View File

@@ -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() {