Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 480cb058 authored by Julia Reynolds's avatar Julia Reynolds Committed by android-build-merger
Browse files

Merge "Fix memory leak via ZenModeController callbacks." into nyc-dev

am: 30e434a9

* commit '30e434a9':
  Fix memory leak via ZenModeController callbacks.

Change-Id: I7d8702f3761ed71b1c06f1eedaa5740cfc2e799e
parents 2f2af399 30e434a9
Loading
Loading
Loading
Loading
+22 −10
Original line number Diff line number Diff line
@@ -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);
        }
    };
}
+2 −1
Original line number Diff line number Diff line
@@ -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() {