Loading res/layout/radio_info.xml +25 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,19 @@ 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" /> Loading @@ -37,6 +50,18 @@ <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" /> Loading res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -482,6 +482,10 @@ <!-- HTTP proxy settings. Title for Proxy-Auto Config URL. [CHAR LIMIT=25] --> <string name="proxy_url_title">"PAC URL: "</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_subid">Current subId:</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_dds">SubId of default data SIM:</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_dl_kbps">DL Bandwidth (kbps):</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> Loading Loading @@ -529,6 +533,8 @@ <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_data_network_type_label">Data Network Type:</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="phone_index_label">Select phone index</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_set_perferred_label">Set Preferred Network Type:</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_ping_hostname_v4">Ping Hostname(www.google.com) IPv4:</string> Loading src/com/android/settings/RadioInfo.java +117 −25 Original line number Diff line number Diff line Loading @@ -127,6 +127,7 @@ public class RadioInfo extends Activity { "Unknown" }; private static String[] mPhoneIndexLabels; private static final int CELL_INFO_LIST_RATE_DISABLED = Integer.MAX_VALUE; private static final int CELL_INFO_LIST_RATE_MAX = 0; Loading Loading @@ -162,7 +163,7 @@ public class RadioInfo extends Activity { 60000 }; private void log(String s) { private static void log(String s) { Log.d(TAG, s); } Loading @@ -182,6 +183,8 @@ public class RadioInfo extends Activity { private TextView mDeviceId; //DeviceId is the IMEI in GSM and the MEID in CDMA private TextView number; private TextView mSubscriptionId; private TextView mDds; private TextView mSubscriberId; private TextView callState; private TextView operatorName; Loading Loading @@ -219,6 +222,7 @@ public class RadioInfo extends Activity { private Switch imsWfcProvisionedSwitch; private Switch eabProvisionedSwitch; private Spinner preferredNetworkType; private Spinner mSelectPhoneIndex; private Spinner cellInfoRefreshRateSpinner; private ConnectivityManager mConnectivityManager; Loading @@ -237,6 +241,7 @@ public class RadioInfo extends Activity { private int mPreferredNetworkTypeResult; private int mCellInfoRefreshRateIndex; private int mSelectedPhoneIndex; private final NetworkRequest mDefaultNetworkRequest = new NetworkRequest.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR) Loading Loading @@ -346,6 +351,21 @@ public class RadioInfo extends Activity { preferredNetworkType.setSelection(mPreferredNetworkTypeResult, true); } private void updatePhoneIndex(int phoneIndex, int subId) { // unregister listeners on the old subId mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); mTelephonyManager.setCellInfoListRate(CELL_INFO_LIST_RATE_DISABLED); // update the subId mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId); mImsManager = ImsManager.getInstance(getApplicationContext(), phoneIndex); // update the phoneId phone = PhoneFactory.getPhone(phoneIndex); updateAllFields(); } private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { Loading Loading @@ -406,13 +426,15 @@ public class RadioInfo extends Activity { mConnectivityManager = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE); phone = PhoneFactory.getDefaultPhone(); //TODO: Need to update this if the default phoneId changes? // Better to have an instance per phone? mImsManager = ImsManager.getInstance(getApplicationContext(), SubscriptionManager.getDefaultVoicePhoneId()); mPhoneIndexLabels = getPhoneIndexLabels(mTelephonyManager); mDeviceId = (TextView) findViewById(R.id.imei); number = (TextView) findViewById(R.id.number); mSubscriptionId = (TextView) findViewById(R.id.subid); mDds = (TextView) findViewById(R.id.dds); mSubscriberId = (TextView) findViewById(R.id.imsi); callState = (TextView) findViewById(R.id.call); operatorName = (TextView) findViewById(R.id.operator); Loading @@ -439,10 +461,17 @@ public class RadioInfo extends Activity { mPhyChanConfig = (TextView) findViewById(R.id.phy_chan_config); preferredNetworkType = (Spinner) findViewById(R.id.preferredNetworkType); ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, ArrayAdapter<String> preferredNetworkTypeAdapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, mPreferredNetworkLabels); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); preferredNetworkType.setAdapter(adapter); preferredNetworkTypeAdapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); preferredNetworkType.setAdapter(preferredNetworkTypeAdapter); mSelectPhoneIndex = (Spinner) findViewById(R.id.phoneIndex); ArrayAdapter<String> phoneIndexAdapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, mPhoneIndexLabels); phoneIndexAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mSelectPhoneIndex.setAdapter(phoneIndexAdapter); cellInfoRefreshRateSpinner = (Spinner) findViewById(R.id.cell_info_rate_select); ArrayAdapter<String> cellInfoAdapter = new ArrayAdapter<String>(this, Loading Loading @@ -493,6 +522,7 @@ public class RadioInfo extends Activity { mCellInfoRefreshRateIndex = 0; //disabled mPreferredNetworkTypeResult = mPreferredNetworkLabels.length - 1; //Unknown mSelectedPhoneIndex = 0; //phone 0 //FIXME: Replace with TelephonyManager call phone.getPreferredNetworkType( Loading @@ -507,6 +537,10 @@ public class RadioInfo extends Activity { log("Started onResume"); updateAllFields(); } private void updateAllFields() { updateMessageWaiting(); updateCallRedirect(); updateDataState(); Loading @@ -519,6 +553,7 @@ public class RadioInfo extends Activity { updateLocation(mCellLocationResult); updateCellInfo(mCellInfoResult); updateSubscriptionIds(); mPingHostnameV4.setText(mPingHostnameResultV4); mPingHostnameV6.setText(mPingHostnameResultV6); Loading @@ -532,25 +567,17 @@ public class RadioInfo extends Activity { preferredNetworkType.setSelection(mPreferredNetworkTypeResult, true); preferredNetworkType.setOnItemSelectedListener(mPreferredNetworkHandler); // set phone index mSelectPhoneIndex.setSelection(mSelectedPhoneIndex, true); mSelectPhoneIndex.setOnItemSelectedListener(mSelectPhoneIndexHandler); radioPowerOnSwitch.setOnCheckedChangeListener(mRadioPowerOnChangeListener); imsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener); imsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener); imsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener); eabProvisionedSwitch.setOnCheckedChangeListener(mEabCheckedChangeListener); mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE //b/27803938 - RadioInfo currently cannot read PRECISE_CALL_STATE // | PhoneStateListener.LISTEN_PRECISE_CALL_STATE | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE | PhoneStateListener.LISTEN_DATA_ACTIVITY | PhoneStateListener.LISTEN_CELL_LOCATION | PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR | PhoneStateListener.LISTEN_CELL_INFO | PhoneStateListener.LISTEN_SERVICE_STATE | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS | PhoneStateListener.LISTEN_PHYSICAL_CHANNEL_CONFIGURATION); registerPhoneStateListener(); mConnectivityManager.registerNetworkCallback( mDefaultNetworkRequest, mNetworkCallback, mHandler); Loading Loading @@ -586,6 +613,8 @@ public class RadioInfo extends Activity { mPreferredNetworkTypeResult = b.getInt("mPreferredNetworkTypeResult", mPreferredNetworkLabels.length - 1); mSelectedPhoneIndex = b.getInt("mSelectedPhoneIndex", 0); mCellInfoRefreshRateIndex = b.getInt("mCellInfoRefreshRateIndex", 0); } Loading @@ -596,6 +625,7 @@ public class RadioInfo extends Activity { outState.putString("mHttpClientTestResult", mHttpClientTestResult); outState.putInt("mPreferredNetworkTypeResult", mPreferredNetworkTypeResult); outState.putInt("mSelectedPhoneIndex", mSelectedPhoneIndex); outState.putInt("mCellInfoRefreshRateIndex", mCellInfoRefreshRateIndex); } Loading Loading @@ -643,6 +673,34 @@ public class RadioInfo extends Activity { return true; } // returns array of string labels for each phone index. The array index is equal to the phone // index. private static String[] getPhoneIndexLabels(TelephonyManager tm) { int phones = tm.getPhoneCount(); String[] labels = new String[phones]; for (int i = 0; i < phones; i++) { labels[i] = "Phone " + i; } return labels; } // register mPhoneStateListener for relevant fields using the current TelephonyManager private void registerPhoneStateListener() { mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE //b/27803938 - RadioInfo currently cannot read PRECISE_CALL_STATE // | PhoneStateListener.LISTEN_PRECISE_CALL_STATE | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE | PhoneStateListener.LISTEN_DATA_ACTIVITY | PhoneStateListener.LISTEN_CELL_LOCATION | PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR | PhoneStateListener.LISTEN_CELL_INFO | PhoneStateListener.LISTEN_SERVICE_STATE | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS | PhoneStateListener.LISTEN_PHYSICAL_CHANNEL_CONFIGURATION); } private void updateDnsCheckState() { //FIXME: Replace with a TelephonyManager call dnsCheckState.setText(phone.isDnsCheckDisabled() ? Loading Loading @@ -864,6 +922,11 @@ public class RadioInfo extends Activity { mCellInfo.setText(buildCellInfoString(arrayCi)); } private final void updateSubscriptionIds() { mSubscriptionId.setText(Integer.toString(phone.getSubId())); mDds.setText(Integer.toString(SubscriptionManager.getDefaultDataSubscriptionId())); } private final void updateMessageWaiting() { mMwi.setText(String.valueOf(mMwiValue)); Loading Loading @@ -1487,6 +1550,35 @@ public class RadioInfo extends Activity { } }; AdapterView.OnItemSelectedListener mSelectPhoneIndexHandler = new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView parent, View v, int pos, long id) { if (pos >= 0 && pos <= mPhoneIndexLabels.length - 1) { // the array position is equal to the phone index int phoneIndex = pos; Phone[] phones = PhoneFactory.getPhones(); if (phones == null || phones.length <= phoneIndex) { log("phoneIndex " + phoneIndex + " is invalid"); return; } log("switching to phone " + phoneIndex); // getSubId says it takes a slotIndex, but it actually takes a phone index int[] subIds = SubscriptionManager.getSubId(phoneIndex); if (subIds == null || subIds.length < 1) { log("no subscription found for phoneIndex " + phoneIndex); return; } mSelectedPhoneIndex = phoneIndex; updatePhoneIndex(phoneIndex, subIds[0]); } } public void onNothingSelected(AdapterView parent) { } }; AdapterView.OnItemSelectedListener mCellInfoRefreshRateHandler = new AdapterView.OnItemSelectedListener() { Loading Loading
res/layout/radio_info.xml +25 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,19 @@ 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" /> Loading @@ -37,6 +50,18 @@ <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" /> Loading
res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -482,6 +482,10 @@ <!-- HTTP proxy settings. Title for Proxy-Auto Config URL. [CHAR LIMIT=25] --> <string name="proxy_url_title">"PAC URL: "</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_subid">Current subId:</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_dds">SubId of default data SIM:</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_dl_kbps">DL Bandwidth (kbps):</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> Loading Loading @@ -529,6 +533,8 @@ <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_data_network_type_label">Data Network Type:</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="phone_index_label">Select phone index</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_set_perferred_label">Set Preferred Network Type:</string> <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed --> <string name="radio_info_ping_hostname_v4">Ping Hostname(www.google.com) IPv4:</string> Loading
src/com/android/settings/RadioInfo.java +117 −25 Original line number Diff line number Diff line Loading @@ -127,6 +127,7 @@ public class RadioInfo extends Activity { "Unknown" }; private static String[] mPhoneIndexLabels; private static final int CELL_INFO_LIST_RATE_DISABLED = Integer.MAX_VALUE; private static final int CELL_INFO_LIST_RATE_MAX = 0; Loading Loading @@ -162,7 +163,7 @@ public class RadioInfo extends Activity { 60000 }; private void log(String s) { private static void log(String s) { Log.d(TAG, s); } Loading @@ -182,6 +183,8 @@ public class RadioInfo extends Activity { private TextView mDeviceId; //DeviceId is the IMEI in GSM and the MEID in CDMA private TextView number; private TextView mSubscriptionId; private TextView mDds; private TextView mSubscriberId; private TextView callState; private TextView operatorName; Loading Loading @@ -219,6 +222,7 @@ public class RadioInfo extends Activity { private Switch imsWfcProvisionedSwitch; private Switch eabProvisionedSwitch; private Spinner preferredNetworkType; private Spinner mSelectPhoneIndex; private Spinner cellInfoRefreshRateSpinner; private ConnectivityManager mConnectivityManager; Loading @@ -237,6 +241,7 @@ public class RadioInfo extends Activity { private int mPreferredNetworkTypeResult; private int mCellInfoRefreshRateIndex; private int mSelectedPhoneIndex; private final NetworkRequest mDefaultNetworkRequest = new NetworkRequest.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR) Loading Loading @@ -346,6 +351,21 @@ public class RadioInfo extends Activity { preferredNetworkType.setSelection(mPreferredNetworkTypeResult, true); } private void updatePhoneIndex(int phoneIndex, int subId) { // unregister listeners on the old subId mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); mTelephonyManager.setCellInfoListRate(CELL_INFO_LIST_RATE_DISABLED); // update the subId mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId); mImsManager = ImsManager.getInstance(getApplicationContext(), phoneIndex); // update the phoneId phone = PhoneFactory.getPhone(phoneIndex); updateAllFields(); } private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { Loading Loading @@ -406,13 +426,15 @@ public class RadioInfo extends Activity { mConnectivityManager = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE); phone = PhoneFactory.getDefaultPhone(); //TODO: Need to update this if the default phoneId changes? // Better to have an instance per phone? mImsManager = ImsManager.getInstance(getApplicationContext(), SubscriptionManager.getDefaultVoicePhoneId()); mPhoneIndexLabels = getPhoneIndexLabels(mTelephonyManager); mDeviceId = (TextView) findViewById(R.id.imei); number = (TextView) findViewById(R.id.number); mSubscriptionId = (TextView) findViewById(R.id.subid); mDds = (TextView) findViewById(R.id.dds); mSubscriberId = (TextView) findViewById(R.id.imsi); callState = (TextView) findViewById(R.id.call); operatorName = (TextView) findViewById(R.id.operator); Loading @@ -439,10 +461,17 @@ public class RadioInfo extends Activity { mPhyChanConfig = (TextView) findViewById(R.id.phy_chan_config); preferredNetworkType = (Spinner) findViewById(R.id.preferredNetworkType); ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, ArrayAdapter<String> preferredNetworkTypeAdapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, mPreferredNetworkLabels); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); preferredNetworkType.setAdapter(adapter); preferredNetworkTypeAdapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); preferredNetworkType.setAdapter(preferredNetworkTypeAdapter); mSelectPhoneIndex = (Spinner) findViewById(R.id.phoneIndex); ArrayAdapter<String> phoneIndexAdapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, mPhoneIndexLabels); phoneIndexAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mSelectPhoneIndex.setAdapter(phoneIndexAdapter); cellInfoRefreshRateSpinner = (Spinner) findViewById(R.id.cell_info_rate_select); ArrayAdapter<String> cellInfoAdapter = new ArrayAdapter<String>(this, Loading Loading @@ -493,6 +522,7 @@ public class RadioInfo extends Activity { mCellInfoRefreshRateIndex = 0; //disabled mPreferredNetworkTypeResult = mPreferredNetworkLabels.length - 1; //Unknown mSelectedPhoneIndex = 0; //phone 0 //FIXME: Replace with TelephonyManager call phone.getPreferredNetworkType( Loading @@ -507,6 +537,10 @@ public class RadioInfo extends Activity { log("Started onResume"); updateAllFields(); } private void updateAllFields() { updateMessageWaiting(); updateCallRedirect(); updateDataState(); Loading @@ -519,6 +553,7 @@ public class RadioInfo extends Activity { updateLocation(mCellLocationResult); updateCellInfo(mCellInfoResult); updateSubscriptionIds(); mPingHostnameV4.setText(mPingHostnameResultV4); mPingHostnameV6.setText(mPingHostnameResultV6); Loading @@ -532,25 +567,17 @@ public class RadioInfo extends Activity { preferredNetworkType.setSelection(mPreferredNetworkTypeResult, true); preferredNetworkType.setOnItemSelectedListener(mPreferredNetworkHandler); // set phone index mSelectPhoneIndex.setSelection(mSelectedPhoneIndex, true); mSelectPhoneIndex.setOnItemSelectedListener(mSelectPhoneIndexHandler); radioPowerOnSwitch.setOnCheckedChangeListener(mRadioPowerOnChangeListener); imsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener); imsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener); imsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener); eabProvisionedSwitch.setOnCheckedChangeListener(mEabCheckedChangeListener); mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE //b/27803938 - RadioInfo currently cannot read PRECISE_CALL_STATE // | PhoneStateListener.LISTEN_PRECISE_CALL_STATE | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE | PhoneStateListener.LISTEN_DATA_ACTIVITY | PhoneStateListener.LISTEN_CELL_LOCATION | PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR | PhoneStateListener.LISTEN_CELL_INFO | PhoneStateListener.LISTEN_SERVICE_STATE | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS | PhoneStateListener.LISTEN_PHYSICAL_CHANNEL_CONFIGURATION); registerPhoneStateListener(); mConnectivityManager.registerNetworkCallback( mDefaultNetworkRequest, mNetworkCallback, mHandler); Loading Loading @@ -586,6 +613,8 @@ public class RadioInfo extends Activity { mPreferredNetworkTypeResult = b.getInt("mPreferredNetworkTypeResult", mPreferredNetworkLabels.length - 1); mSelectedPhoneIndex = b.getInt("mSelectedPhoneIndex", 0); mCellInfoRefreshRateIndex = b.getInt("mCellInfoRefreshRateIndex", 0); } Loading @@ -596,6 +625,7 @@ public class RadioInfo extends Activity { outState.putString("mHttpClientTestResult", mHttpClientTestResult); outState.putInt("mPreferredNetworkTypeResult", mPreferredNetworkTypeResult); outState.putInt("mSelectedPhoneIndex", mSelectedPhoneIndex); outState.putInt("mCellInfoRefreshRateIndex", mCellInfoRefreshRateIndex); } Loading Loading @@ -643,6 +673,34 @@ public class RadioInfo extends Activity { return true; } // returns array of string labels for each phone index. The array index is equal to the phone // index. private static String[] getPhoneIndexLabels(TelephonyManager tm) { int phones = tm.getPhoneCount(); String[] labels = new String[phones]; for (int i = 0; i < phones; i++) { labels[i] = "Phone " + i; } return labels; } // register mPhoneStateListener for relevant fields using the current TelephonyManager private void registerPhoneStateListener() { mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE //b/27803938 - RadioInfo currently cannot read PRECISE_CALL_STATE // | PhoneStateListener.LISTEN_PRECISE_CALL_STATE | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE | PhoneStateListener.LISTEN_DATA_ACTIVITY | PhoneStateListener.LISTEN_CELL_LOCATION | PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR | PhoneStateListener.LISTEN_CELL_INFO | PhoneStateListener.LISTEN_SERVICE_STATE | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS | PhoneStateListener.LISTEN_PHYSICAL_CHANNEL_CONFIGURATION); } private void updateDnsCheckState() { //FIXME: Replace with a TelephonyManager call dnsCheckState.setText(phone.isDnsCheckDisabled() ? Loading Loading @@ -864,6 +922,11 @@ public class RadioInfo extends Activity { mCellInfo.setText(buildCellInfoString(arrayCi)); } private final void updateSubscriptionIds() { mSubscriptionId.setText(Integer.toString(phone.getSubId())); mDds.setText(Integer.toString(SubscriptionManager.getDefaultDataSubscriptionId())); } private final void updateMessageWaiting() { mMwi.setText(String.valueOf(mMwiValue)); Loading Loading @@ -1487,6 +1550,35 @@ public class RadioInfo extends Activity { } }; AdapterView.OnItemSelectedListener mSelectPhoneIndexHandler = new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView parent, View v, int pos, long id) { if (pos >= 0 && pos <= mPhoneIndexLabels.length - 1) { // the array position is equal to the phone index int phoneIndex = pos; Phone[] phones = PhoneFactory.getPhones(); if (phones == null || phones.length <= phoneIndex) { log("phoneIndex " + phoneIndex + " is invalid"); return; } log("switching to phone " + phoneIndex); // getSubId says it takes a slotIndex, but it actually takes a phone index int[] subIds = SubscriptionManager.getSubId(phoneIndex); if (subIds == null || subIds.length < 1) { log("no subscription found for phoneIndex " + phoneIndex); return; } mSelectedPhoneIndex = phoneIndex; updatePhoneIndex(phoneIndex, subIds[0]); } } public void onNothingSelected(AdapterView parent) { } }; AdapterView.OnItemSelectedListener mCellInfoRefreshRateHandler = new AdapterView.OnItemSelectedListener() { Loading