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

Commit 30e434a9 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents b1e24209 b44ef7eb
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
@@ -231,6 +231,7 @@ public class ZenModePanel extends LinearLayout {
        mAttachedZen = getSelectedZen(-1);
        mSessionZen = mAttachedZen;
        mTransitionHelper.clear();
        mController.addCallback(mZenCallback);
        setSessionExitCondition(copy(mExitCondition));
        updateWidgets();
        setRequestingConditions(!mHidden);
@@ -244,6 +245,7 @@ public class ZenModePanel extends LinearLayout {
        mAttached = false;
        mAttachedZen = -1;
        mSessionZen = -1;
        mController.removeCallback(mZenCallback);
        setSessionExitCondition(null);
        setRequestingConditions(false);
        mTransitionHelper.clear();
@@ -329,7 +331,6 @@ public class ZenModePanel extends LinearLayout {
        handleUpdateManualRule(mController.getManualRule());
        if (DEBUG) Log.d(mTag, "init mExitCondition=" + mExitCondition);
        hideAllConditions();
        mController.addCallback(mZenCallback);
    }

    public void updateLocale() {