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