Use cached preferred network type for 5G icon
Test: atest NetworkTypeControllerTest
Bug: 155496097
Change-Id: I5d1e33981e25a3c8e0a644baf4bbb7a6c1e805ac
diff --git a/src/java/com/android/internal/telephony/NetworkTypeController.java b/src/java/com/android/internal/telephony/NetworkTypeController.java
index 865a014..a8af5c7 100644
--- a/src/java/com/android/internal/telephony/NetworkTypeController.java
+++ b/src/java/com/android/internal/telephony/NetworkTypeController.java
@@ -351,6 +351,11 @@
}
private @Annotation.OverrideNetworkType int getNrDisplayType() {
+ // Don't show 5G icon if preferred network type does not include 5G
+ if ((mPhone.getCachedPreferredNetworkType() & TelephonyManager.NETWORK_TYPE_BITMASK_NR)
+ == 0) {
+ return TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE;
+ }
// Icon display keys in order of priority
List<String> keys = new ArrayList<>();
// TODO: Update for NR SA
diff --git a/src/java/com/android/internal/telephony/Phone.java b/src/java/com/android/internal/telephony/Phone.java
index af72beb..ae3ed5b 100644
--- a/src/java/com/android/internal/telephony/Phone.java
+++ b/src/java/com/android/internal/telephony/Phone.java
@@ -2200,7 +2200,7 @@
}
/**
- * Query the preferred network type setting
+ * Query the preferred network type setting
*
* @param response is callback message to report one of NT_*_TYPE
*/
@@ -2209,6 +2209,17 @@
}
/**
+ * Get the cached value of the preferred network type setting
+ */
+ public int getCachedPreferredNetworkType() {
+ if (mCi != null && mCi instanceof BaseCommands) {
+ return ((BaseCommands) mCi).mPreferredNetworkType;
+ } else {
+ return RILConstants.PREFERRED_NETWORK_MODE;
+ }
+ }
+
+ /**
* Gets the default SMSC address.
*
* @param result Callback message contains the SMSC address.
diff --git a/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java
index ebde2af..5ee055f 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java
@@ -88,6 +88,8 @@
broadcastCarrierConfigs();
replaceInstance(Handler.class, "mLooper", mDisplayInfoController, Looper.myLooper());
+ doReturn((int) TelephonyManager.NETWORK_TYPE_BITMASK_NR).when(mPhone)
+ .getCachedPreferredNetworkType();
mNetworkTypeController = new NetworkTypeController(mPhone, mDisplayInfoController);
}