Merge "Fix sysui crashlooping"

This commit is contained in:
Jorim Jaggi
2016-12-08 21:41:59 +00:00
committed by Android (Google) Code Review
2 changed files with 10 additions and 8 deletions

View File

@@ -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

View File

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