From e1531983670dc100ff4f349cbbf47c651f283a43 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Tue, 5 Sep 2017 11:20:30 -0400 Subject: [PATCH] Don't crash from null ServiceState in cdma Test: runtest systemui Change-Id: Ib9813af4896d90878df970ef798f3f09e6522f3a Fixes: 65224543 --- .../statusbar/policy/MobileSignalController.java | 12 +++++++----- .../policy/NetworkControllerSignalTest.java | 8 ++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java index b6c76551c48bb..34a03bf36c473 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java @@ -345,7 +345,7 @@ public class MobileSignalController extends SignalController< if (isCarrierNetworkChangeActive()) { return false; } - if (isCdma()) { + if (isCdma() && mServiceState != null) { final int iconMode = mServiceState.getCdmaEriIconMode(); return mServiceState.getCdmaEriIconIndex() != EriInfo.ROAMING_INDICATOR_OFF && (iconMode == EriInfo.ROAMING_ICON_MODE_NORMAL @@ -520,10 +520,12 @@ public class MobileSignalController extends SignalController< + " dataState=" + state.getDataRegState()); } mServiceState = state; - mDataNetType = state.getDataNetworkType(); - if (mDataNetType == TelephonyManager.NETWORK_TYPE_LTE && mServiceState != null && - mServiceState.isUsingCarrierAggregation()) { - mDataNetType = TelephonyManager.NETWORK_TYPE_LTE_CA; + if (state != null) { + mDataNetType = state.getDataNetworkType(); + if (mDataNetType == TelephonyManager.NETWORK_TYPE_LTE && mServiceState != null && + mServiceState.isUsingCarrierAggregation()) { + mDataNetType = TelephonyManager.NETWORK_TYPE_LTE_CA; + } } updateTelephony(); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java index 9055022df261e..173cc4c1a4d67 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java @@ -201,6 +201,14 @@ public class NetworkControllerSignalTest extends NetworkControllerBaseTest { } } + @Test + public void testRoamingNoService_DoesNotCrash() { + setupDefaultSignal(); + setCdma(); + mServiceState = null; + updateServiceState(); + } + @Test @Ignore("Flaky") public void testQsSignalStrength() {