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

Commit 89377bb6 authored by Jason Monk's avatar Jason Monk
Browse files

Fix sysui crashlooping

Fix startup lifecycle on header.

Test: runtest systemui
Change-Id: I732cc2fb6693b9857c14534154d02a9b18e7d44a
parent 9abca5e9
Loading
Loading
Loading
Loading
+4 −8
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto;
import com.android.keyguard.KeyguardStatusView;
@@ -236,13 +237,8 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements
    }

    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
        mHost.getUserInfoController().addCallback(this);
    }

    @Override
    protected void onDetachedFromWindow() {
    @VisibleForTesting
    public void onDetachedFromWindow() {
        setListening(false);
        mHost.getUserInfoController().removeCallback(this);
        mHost.getNetworkController().removeEmergencyListener(this);
@@ -375,7 +371,7 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements
    }

    public void setUserInfoController(UserInfoController userInfoController) {
        // Don't care
        userInfoController.addCallback(this);
    }

    @Override
+6 −0
Original line number Diff line number Diff line
@@ -21,8 +21,10 @@ import android.os.Handler;
import android.support.test.runner.AndroidJUnit4;

import com.android.systemui.FragmentTestCase;
import com.android.systemui.R;
import com.android.systemui.statusbar.phone.PhoneStatusBar;
import com.android.systemui.statusbar.phone.QSTileHost;
import com.android.systemui.statusbar.phone.QuickStatusBarHeader;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.BluetoothController;
@@ -86,6 +88,10 @@ public class QSFragmentTest extends FragmentTestCase {
        qs.setListening(false);
        waitForIdleSync(h);

        // Manually push header through detach so it can handle standard cleanup it does on
        // removed from window.
        ((QuickStatusBarHeader) qs.getView().findViewById(R.id.header)).onDetachedFromWindow();

        host.destroy();
        // Ensure the tuner cleans up its persistent listeners.
        TunerService.get(mContext).destroy();