Just add a spinner to the top of the screen which lets you select the phoneIndex. Upating this value updates the mTelephonyManager mImsManager, and mPhoneStateListener to use the selected phoneIndex and the subscription associated with it. Also adds fields for current subId and default data sim subId. Due to b/117555407, the same PhoneStateListener object can not be used to register on different subIds, so we workaround this by recreating the PhoneStateListener when reregistering. Test: manual test (on single sim) Fixes: 128033739 Change-Id: I9d6631da628351511e285afeb5b6d4331aaab7e5 Merged-In: I9d6631da628351511e285afeb5b6d4331aaab7e5
415 lines
18 KiB
XML
415 lines
18 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
/* //device/apps/Settings/assets/res/any/layout/radio_info.xml
|
|
**
|
|
** Copyright 2006, 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.
|
|
*/
|
|
-->
|
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent">
|
|
|
|
<LinearLayout style="@style/info_layout"
|
|
android:descendantFocusability="beforeDescendants"
|
|
android:focusableInTouchMode="true">
|
|
|
|
<!-- Phone index -->
|
|
<TextView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/phone_index_label"
|
|
style="@style/info_label"
|
|
/>
|
|
|
|
<Spinner android:id="@+id/phoneIndex"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
/>
|
|
|
|
<!-- IMEI -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_imei_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/imei" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Phone Number -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_phone_number_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/number" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Subscription ID -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_subid" style="@style/info_label" />
|
|
<TextView android:id="@+id/subid" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Default data subscription -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_dds" style="@style/info_label" />
|
|
<TextView android:id="@+id/dds" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- IMSI -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_imsi_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/imsi" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Network Identifier -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_current_network_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/operator" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Roaming -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_roaming_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/roaming" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Data Service Status -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_gprs_service_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/gprs" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Data Network Type -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_data_network_type_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/data_network" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Voice Service Status -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_gsm_service_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/gsm" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Voice Network Type -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_voice_network_type_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/voice_network" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Signal Strength -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_signal_strength_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/dbm" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Link Bandwidth -->
|
|
<LinearLayout style="@style/entry_layout" android:orientation="horizontal">
|
|
<TextView android:text="@string/radio_info_dl_kbps" style="@style/info_label" />
|
|
<TextView android:id="@+id/dl_kbps" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Link Bandwidth -->
|
|
<LinearLayout style="@style/entry_layout" android:orientation="horizontal">
|
|
<TextView android:text="@string/radio_info_ul_kbps" style="@style/info_label" />
|
|
<TextView android:id="@+id/ul_kbps" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Physical Channel Config -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_phy_chan_config" style="@style/info_label" />
|
|
<TextView android:id="@+id/phy_chan_config" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Horizontal Rule -->
|
|
<View
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="1dip"
|
|
android:background="?android:attr/listDivider" />
|
|
|
|
<!-- Preferred Network Type -->
|
|
<TextView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/radio_info_set_perferred_label"
|
|
style="@style/info_label"
|
|
/>
|
|
|
|
<Spinner android:id="@+id/preferredNetworkType"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
/>
|
|
|
|
<!-- Horizontal Rule -->
|
|
<View
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="1dip"
|
|
android:background="?android:attr/listDivider" />
|
|
|
|
<!-- Radio Power -->
|
|
<Switch android:id="@+id/radio_power"
|
|
android:textSize="14sp"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/radio_info_radio_power"/>
|
|
|
|
<!-- VoLTE provisioned -->
|
|
<Switch android:id="@+id/volte_provisioned_switch"
|
|
android:textSize="14sp"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/volte_provisioned_switch_string"/>
|
|
|
|
<!-- VT provisioned -->
|
|
<Switch android:id="@+id/vt_provisioned_switch"
|
|
android:textSize="14sp"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/vt_provisioned_switch_string"/>
|
|
|
|
<!-- Wifi Calling provisioned -->
|
|
<Switch android:id="@+id/wfc_provisioned_switch"
|
|
android:textSize="14sp"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/wfc_provisioned_switch_string"/>
|
|
|
|
<!-- EAB/Presence provisioned -->
|
|
<Switch android:id="@+id/eab_provisioned_switch"
|
|
android:textSize="14sp"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/eab_provisioned_switch_string"/>
|
|
|
|
<!-- Horizontal Rule -->
|
|
<View
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="1dip"
|
|
android:background="?android:attr/listDivider" />
|
|
|
|
<!-- Enable/Disable CBRS data -->
|
|
<Switch android:id="@+id/cbrs_data_switch"
|
|
android:textSize="14sp"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/cbrs_data_switch_string" />
|
|
|
|
<!-- Switch between SSSS(single sim single standby) and DSDS(dual sim dual standby). -->
|
|
<Switch android:id="@+id/dsds_switch"
|
|
android:textSize="14sp"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/dsds_switch_string" />
|
|
|
|
<!-- Horizontal Rule -->
|
|
<View
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="1dip"
|
|
android:background="?android:attr/listDivider" />
|
|
|
|
<!-- Ping stats -->
|
|
<Button android:id="@+id/ping_test"
|
|
android:textSize="14sp"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/ping_test_label"
|
|
/>
|
|
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_ping_hostname_v4" style="@style/info_label" />
|
|
<TextView android:id="@+id/pingHostnameV4" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_ping_hostname_v6" style="@style/info_label" />
|
|
<TextView android:id="@+id/pingHostnameV6" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_http_client_test" style="@style/info_label" />
|
|
<TextView android:id="@+id/httpClientTest" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Horizontal Rule -->
|
|
<View
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="1dip"
|
|
android:background="?android:attr/listDivider" />
|
|
|
|
<!-- PPP Sent -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_ppp_sent_label"
|
|
style="@style/info_label" />
|
|
<TextView android:id="@+id/sent" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- PPP Received -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_ppp_received_label"
|
|
style="@style/info_label" />
|
|
<TextView android:id="@+id/received" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- PPP Sent since last received -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_ppp_resets_label"
|
|
style="@style/info_label" />
|
|
<TextView android:id="@+id/sentSinceReceived" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Horizontal Rule -->
|
|
<View
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="1dip"
|
|
android:background="?android:attr/listDivider" />
|
|
|
|
<!-- Call Status -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_call_status_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/call" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Message Waiting Indicator -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_message_waiting_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/mwi" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Call Forwarding Indicator -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_call_redirect_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/cfi" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<!-- Horizontal Rule -->
|
|
<View
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="1dip"
|
|
android:background="?android:attr/listDivider" />
|
|
|
|
<!-- CellInfoListRate Selection -->
|
|
<!-- Location -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_signal_location_label" style="@style/info_label" />
|
|
<TextView android:id="@+id/location" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
<TextView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/radio_info_cell_info_refresh_rate"
|
|
style="@style/info_label"
|
|
/>
|
|
|
|
<Spinner android:id="@+id/cell_info_rate_select"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
/>
|
|
|
|
<!-- CellInfo -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:text="@string/radio_info_cellinfo_label"
|
|
style="@style/info_label" />
|
|
</LinearLayout>
|
|
<LinearLayout style="@style/entry_layout">
|
|
<TextView android:id="@+id/cellinfo"
|
|
style="@style/info_value"
|
|
android:minHeight="300dip"
|
|
android:textSize="12sp" />
|
|
</LinearLayout>
|
|
|
|
<!-- Horizontal Rule -->
|
|
<View
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="1dip"
|
|
android:background="?android:attr/listDivider" />
|
|
|
|
<!-- Launch OEM-specific Info/Settings Activity (if any) -->
|
|
<!-- Carrier Provisioning -->
|
|
<LinearLayout style="@style/entry_layout"
|
|
android:orientation="horizontal" >
|
|
<Button android:id="@+id/carrier_provisioning"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_weight="1"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/carrier_provisioning"
|
|
android:textSize="14sp"/>
|
|
<Button android:id="@+id/trigger_carrier_provisioning"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_weight="1"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/trigger_carrier_provisioning"
|
|
android:textSize="14sp"/>
|
|
<Button android:id="@+id/oem_info"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_weight="1"
|
|
android:layout_width="0dp"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/oem_radio_info_label"
|
|
android:textSize="14sp"/>
|
|
</LinearLayout>
|
|
|
|
<!-- SMSC -->
|
|
<RelativeLayout android:layout_width="match_parent"
|
|
android:layout_height="wrap_content">
|
|
<TextView android:id="@+id/smsc_label"
|
|
android:text="@string/radio_info_smsc_label"
|
|
android:layout_alignBaseline="@+id/update_smsc"
|
|
style="@style/info_label" />
|
|
<Button android:id="@+id/refresh_smsc"
|
|
android:textSize="14sp"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/radio_info_smsc_refresh_label"
|
|
android:layout_alignParentEnd="true"
|
|
/>
|
|
<Button android:id="@+id/update_smsc"
|
|
android:textSize="14sp"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/radio_info_smsc_update_label"
|
|
android:layout_toStartOf="@+id/refresh_smsc"
|
|
android:layout_alignBaseline="@+id/refresh_smsc"
|
|
/>
|
|
<EditText android:id="@+id/smsc"
|
|
style="@style/form_value"
|
|
android:layout_alignBaseline="@+id/refresh_smsc"
|
|
android:layout_toStartOf="@id/update_smsc"
|
|
android:layout_toEndOf="@id/smsc_label" />
|
|
</RelativeLayout>
|
|
|
|
<!-- Test setting to ignore bad DNS, useful in lab environments -->
|
|
<LinearLayout style="@style/entry_layout">
|
|
<Button android:id="@+id/dns_check_toggle"
|
|
android:textSize="14sp"
|
|
android:layout_marginTop="8dip"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:text="@string/radio_info_toggle_dns_check_label"
|
|
/>
|
|
<TextView android:id="@+id/dnsCheckState" style="@style/info_value" />
|
|
</LinearLayout>
|
|
|
|
|
|
</LinearLayout>
|
|
</ScrollView>
|