diff --git a/packages/SettingsLib/res/drawable/ic_4g_lte_mobiledata.xml b/packages/SettingsLib/res/drawable/ic_4g_lte_mobiledata.xml new file mode 100644 index 0000000000000..43a82fa2d86e5 --- /dev/null +++ b/packages/SettingsLib/res/drawable/ic_4g_lte_mobiledata.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/packages/SettingsLib/res/drawable/ic_4g_lte_plus_mobiledata.xml b/packages/SettingsLib/res/drawable/ic_4g_lte_plus_mobiledata.xml new file mode 100644 index 0000000000000..b80c47af23d2a --- /dev/null +++ b/packages/SettingsLib/res/drawable/ic_4g_lte_plus_mobiledata.xml @@ -0,0 +1,29 @@ + + + + + + + diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index 534e41c424678..6ca15c1f3fc3f 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -1478,6 +1478,12 @@ LTE+ + + 4G LTE + + + 4G LTE+ + <i>5G <small>E</small></i> diff --git a/packages/SettingsLib/src/com/android/settingslib/mobile/MobileMappings.java b/packages/SettingsLib/src/com/android/settingslib/mobile/MobileMappings.java index 5e91a147318eb..c94195477cfcc 100644 --- a/packages/SettingsLib/src/com/android/settingslib/mobile/MobileMappings.java +++ b/packages/SettingsLib/src/com/android/settingslib/mobile/MobileMappings.java @@ -160,6 +160,19 @@ public class MobileMappings { TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA), TelephonyIcons.FOUR_G_PLUS); } + } else if (config.show4glteForLte) { + networkToIconLookup.put(toIconKey( + TelephonyManager.NETWORK_TYPE_LTE), + TelephonyIcons.FOUR_G_LTE); + if (config.hideLtePlus) { + networkToIconLookup.put(toDisplayIconKey( + TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA), + TelephonyIcons.FOUR_G_LTE); + } else { + networkToIconLookup.put(toDisplayIconKey( + TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA), + TelephonyIcons.FOUR_G_LTE_PLUS); + } } else { networkToIconLookup.put(toIconKey( TelephonyManager.NETWORK_TYPE_LTE), @@ -200,6 +213,7 @@ public class MobileMappings { public boolean show4gFor3g = false; public boolean alwaysShowCdmaRssi = false; public boolean show4gForLte = false; + public boolean show4glteForLte = false; public boolean hideLtePlus = false; public boolean hspaDataDistinguishable; public boolean alwaysShowDataRatIcon = false; @@ -228,6 +242,8 @@ public class MobileMappings { CarrierConfigManager.KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL); config.show4gForLte = b.getBoolean( CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL); + config.show4glteForLte = b.getBoolean( + CarrierConfigManager.KEY_SHOW_4GLTE_FOR_LTE_DATA_ICON_BOOL); config.show4gFor3g = b.getBoolean( CarrierConfigManager.KEY_SHOW_4G_FOR_3G_DATA_ICON_BOOL); config.hideLtePlus = b.getBoolean( diff --git a/packages/SettingsLib/src/com/android/settingslib/mobile/TelephonyIcons.java b/packages/SettingsLib/src/com/android/settingslib/mobile/TelephonyIcons.java index d4e58f7a2fc43..23e0923d72805 100644 --- a/packages/SettingsLib/src/com/android/settingslib/mobile/TelephonyIcons.java +++ b/packages/SettingsLib/src/com/android/settingslib/mobile/TelephonyIcons.java @@ -39,6 +39,8 @@ public class TelephonyIcons { public static final int ICON_3G = R.drawable.ic_3g_mobiledata; public static final int ICON_4G = R.drawable.ic_4g_mobiledata; public static final int ICON_4G_PLUS = R.drawable.ic_4g_plus_mobiledata; + public static final int ICON_4G_LTE = R.drawable.ic_4g_lte_mobiledata; + public static final int ICON_4G_LTE_PLUS = R.drawable.ic_4g_lte_plus_mobiledata; public static final int ICON_5G_E = R.drawable.ic_5g_e_mobiledata; public static final int ICON_1X = R.drawable.ic_1x_mobiledata; public static final int ICON_5G = R.drawable.ic_5g_mobiledata; @@ -225,6 +227,34 @@ public class TelephonyIcons { TelephonyIcons.ICON_LTE_PLUS ); + public static final MobileIconGroup FOUR_G_LTE = new MobileIconGroup( + "4G LTE", + null, + null, + AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH, + 0, + 0, + 0, + 0, + AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0], + R.string.data_connection_4g_lte, + TelephonyIcons.ICON_4G_LTE + ); + + public static final MobileIconGroup FOUR_G_LTE_PLUS = new MobileIconGroup( + "4G LTE+", + null, + null, + AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH, + 0, + 0, + 0, + 0, + AccessibilityContentDescriptions.PHONE_SIGNAL_STRENGTH[0], + R.string.data_connection_4g_lte_plus, + TelephonyIcons.ICON_4G_LTE_PLUS + ); + public static final MobileIconGroup LTE_CA_5G_E = new MobileIconGroup( "5Ge", null, @@ -327,6 +357,8 @@ public class TelephonyIcons { ICON_NAME_TO_ICON.put("h+", H_PLUS); ICON_NAME_TO_ICON.put("4g", FOUR_G); ICON_NAME_TO_ICON.put("4g+", FOUR_G_PLUS); + ICON_NAME_TO_ICON.put("4glte", FOUR_G_LTE); + ICON_NAME_TO_ICON.put("4glte+", FOUR_G_LTE_PLUS); ICON_NAME_TO_ICON.put("5ge", LTE_CA_5G_E); ICON_NAME_TO_ICON.put("lte", LTE); ICON_NAME_TO_ICON.put("lte+", LTE_PLUS); diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index b85426b3b4b02..83c78cd0236ca 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -1899,6 +1899,13 @@ public class CarrierConfigManager { public static final String KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL = "show_4g_for_lte_data_icon_bool"; + /** + * Boolean indicating if default data account should show 4G LTE or 4G icon. + * @hide + */ + public static final String KEY_SHOW_4GLTE_FOR_LTE_DATA_ICON_BOOL = + "show_4glte_for_lte_data_icon_bool"; + /** * Boolean indicating if default data account should show 4G icon when in 3G. */ @@ -6239,6 +6246,7 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_SPN_DISPLAY_RULE_USE_ROAMING_FROM_SERVICE_STATE_BOOL, false); sDefaults.putBoolean(KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL, false); sDefaults.putBoolean(KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL, false); + sDefaults.putBoolean(KEY_SHOW_4GLTE_FOR_LTE_DATA_ICON_BOOL, false); sDefaults.putBoolean(KEY_SHOW_4G_FOR_3G_DATA_ICON_BOOL, false); sDefaults.putString(KEY_OPERATOR_NAME_FILTER_PATTERN_STRING, ""); sDefaults.putString(KEY_SHOW_CARRIER_DATA_ICON_PATTERN_STRING, "");