Split "Mobile Network Type" indication in Settings

Display data and voice network type for clarity

Change-Id: I26e52dcc564dfd96e36e45d94d6e69225ea4a80f
Fixes: 70938010
Test: manual, unit
This commit is contained in:
Hall Liu
2018-03-13 18:28:58 -07:00
parent 4786291624
commit 6f4b185331
5 changed files with 54 additions and 113 deletions

View File

@@ -105,13 +105,26 @@
<TextView <TextView
style="@style/device_info_dialog_label" style="@style/device_info_dialog_label"
android:id="@+id/network_type_label" android:id="@+id/voice_network_type_label"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/status_network_type"/> android:text="@string/status_voice_network_type"/>
<TextView <TextView
style="@style/device_info_dialog_value" style="@style/device_info_dialog_value"
android:id="@+id/network_type_value" android:id="@+id/voice_network_type_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/device_info_not_available"/>
<TextView
style="@style/device_info_dialog_label"
android:id="@+id/data_network_type_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/status_data_network_type"/>
<TextView
style="@style/device_info_dialog_value"
android:id="@+id/data_network_type_value"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/device_info_not_available"/> android:text="@string/device_info_not_available"/>

View File

@@ -2751,7 +2751,9 @@
<!-- About phone, status item title. The ICCID of the current LTE device. [CHAR LIMIT=30] --> <!-- About phone, status item title. The ICCID of the current LTE device. [CHAR LIMIT=30] -->
<string name="status_icc_id">ICCID</string> <string name="status_icc_id">ICCID</string>
<!-- About phone, status item title for the type of data phone network we're connected to, for example 3G or Edge or GPRS --> <!-- About phone, status item title for the type of data phone network we're connected to, for example 3G or Edge or GPRS -->
<string name="status_network_type">Mobile network type</string> <string name="status_data_network_type">Mobile data network type</string>
<!-- About phone, status item title for the type of voice phone network we're connected to, for example 3G or Edge or GPRS -->
<string name="status_voice_network_type">Mobile voice network type</string>
<!-- About phone, status item title for the latest area info cell broadcast received (Brazil only). --> <!-- About phone, status item title for the latest area info cell broadcast received (Brazil only). -->
<string name="status_latest_area_info">Operator info</string> <string name="status_latest_area_info">Operator info</string>
<!-- About phone, status item title. The status of data access. For example, the value may be "Connected" --> <!-- About phone, status item title. The status of data access. For example, the value may be "Connected" -->

View File

@@ -1,97 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/sim_status_title">
<Preference android:key="operator_name"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_operator"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="signal_strength"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_signal_strength"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="network_type"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_network_type"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="latest_area_info"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_latest_area_info"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="service_state"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_service_state"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="roaming_state"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_roaming"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="data_state"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_data_state"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="number"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_number"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="imei"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_imei"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="imei_sv"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_imei_sv"
android:summary="@string/device_info_not_available"
android:persistent="false" />
<Preference android:key="iccid"
android:enabled="false"
android:shouldDisableView="false"
android:title="@string/status_iccid"
android:summary="@string/device_info_not_available"
android:persistent="false" />
</PreferenceScreen>

View File

@@ -77,7 +77,9 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
@VisibleForTesting @VisibleForTesting
final static int SIGNAL_STRENGTH_VALUE_ID = R.id.signal_strength_value; final static int SIGNAL_STRENGTH_VALUE_ID = R.id.signal_strength_value;
@VisibleForTesting @VisibleForTesting
final static int CELLULAR_NETWORK_TYPE_VALUE_ID = R.id.network_type_value; final static int CELL_VOICE_NETWORK_TYPE_VALUE_ID = R.id.voice_network_type_value;
@VisibleForTesting
final static int CELL_DATA_NETWORK_TYPE_VALUE_ID = R.id.data_network_type_value;
@VisibleForTesting @VisibleForTesting
final static int ROAMING_INFO_VALUE_ID = R.id.roaming_state_value; final static int ROAMING_INFO_VALUE_ID = R.id.roaming_state_value;
@VisibleForTesting @VisibleForTesting
@@ -318,14 +320,16 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
private void updateNetworkType() { private void updateNetworkType() {
// Whether EDGE, UMTS, etc... // Whether EDGE, UMTS, etc...
String networktype = null; String dataNetworkTypeName = null;
String voiceNetworkTypeName = null;
final int subId = mSubscriptionInfo.getSubscriptionId(); final int subId = mSubscriptionInfo.getSubscriptionId();
final int actualDataNetworkType = mTelephonyManager.getDataNetworkType(subId); final int actualDataNetworkType = mTelephonyManager.getDataNetworkType(subId);
final int actualVoiceNetworkType = mTelephonyManager.getVoiceNetworkType(subId); final int actualVoiceNetworkType = mTelephonyManager.getVoiceNetworkType(subId);
if (TelephonyManager.NETWORK_TYPE_UNKNOWN != actualDataNetworkType) { if (TelephonyManager.NETWORK_TYPE_UNKNOWN != actualDataNetworkType) {
networktype = mTelephonyManager.getNetworkTypeName(actualDataNetworkType); dataNetworkTypeName = mTelephonyManager.getNetworkTypeName(actualDataNetworkType);
} else if (TelephonyManager.NETWORK_TYPE_UNKNOWN != actualVoiceNetworkType) { }
networktype = mTelephonyManager.getNetworkTypeName(actualVoiceNetworkType); if (TelephonyManager.NETWORK_TYPE_UNKNOWN != actualVoiceNetworkType) {
voiceNetworkTypeName = mTelephonyManager.getNetworkTypeName(actualVoiceNetworkType);
} }
boolean show4GForLTE = false; boolean show4GForLTE = false;
@@ -336,13 +340,20 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O
"bool" /* default type */, "com.android.systemui" /* default package */); "bool" /* default type */, "com.android.systemui" /* default package */);
show4GForLTE = con.getResources().getBoolean(id); show4GForLTE = con.getResources().getBoolean(id);
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "NameNotFoundException for show4GFotLTE"); Log.e(TAG, "NameNotFoundException for show4GForLTE");
} }
if (TextUtils.equals(networktype, "LTE") && show4GForLTE) { if (show4GForLTE) {
networktype = "4G"; if ("LTE".equals(dataNetworkTypeName)) {
dataNetworkTypeName = "4G";
} }
mDialog.setText(CELLULAR_NETWORK_TYPE_VALUE_ID, networktype); if ("LTE".equals(voiceNetworkTypeName)) {
voiceNetworkTypeName = "4G";
}
}
mDialog.setText(CELL_VOICE_NETWORK_TYPE_VALUE_ID, voiceNetworkTypeName);
mDialog.setText(CELL_DATA_NETWORK_TYPE_VALUE_ID, dataNetworkTypeName);
} }
private void updateRoamingStatus(ServiceState serviceState) { private void updateRoamingStatus(ServiceState serviceState) {

View File

@@ -16,7 +16,8 @@
package com.android.settings.deviceinfo.simstatus; package com.android.settings.deviceinfo.simstatus;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.CELLULAR_NETWORK_TYPE_VALUE_ID; import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.CELL_DATA_NETWORK_TYPE_VALUE_ID;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.CELL_VOICE_NETWORK_TYPE_VALUE_ID;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.EID_INFO_VALUE_ID; import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.EID_INFO_VALUE_ID;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.ICCID_INFO_LABEL_ID; import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.ICCID_INFO_LABEL_ID;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.ICCID_INFO_VALUE_ID; import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.ICCID_INFO_VALUE_ID;
@@ -188,13 +189,24 @@ public class SimStatusDialogControllerTest {
} }
@Test @Test
public void initialize_updateNetworkTypeWithEdge_shouldUpdateSettingToEdge() { public void initialize_updateVoiceNetworkTypeWithEdge_shouldUpdateSettingToEdge() {
when(mTelephonyManager.getVoiceNetworkType(anyInt())).thenReturn(
TelephonyManager.NETWORK_TYPE_EDGE);
mController.initialize();
verify(mDialog).setText(CELL_VOICE_NETWORK_TYPE_VALUE_ID,
TelephonyManager.getNetworkTypeName(TelephonyManager.NETWORK_TYPE_EDGE));
}
@Test
public void initialize_updateDataNetworkTypeWithEdge_shouldUpdateSettingToEdge() {
when(mTelephonyManager.getDataNetworkType(anyInt())).thenReturn( when(mTelephonyManager.getDataNetworkType(anyInt())).thenReturn(
TelephonyManager.NETWORK_TYPE_EDGE); TelephonyManager.NETWORK_TYPE_EDGE);
mController.initialize(); mController.initialize();
verify(mDialog).setText(CELLULAR_NETWORK_TYPE_VALUE_ID, verify(mDialog).setText(CELL_DATA_NETWORK_TYPE_VALUE_ID,
TelephonyManager.getNetworkTypeName(TelephonyManager.NETWORK_TYPE_EDGE)); TelephonyManager.getNetworkTypeName(TelephonyManager.NETWORK_TYPE_EDGE));
} }