Merge "Fix case where empty numbers are shown as Voicemail." into udc-dev
diff --git a/res/layout/band_mode.xml b/res/layout/band_mode.xml
deleted file mode 100644
index b43dd1d..0000000
--- a/res/layout/band_mode.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 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.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:padding="4dip"
-              android:gravity="center_horizontal"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content">
-
-    <ListView android:id="@+id/band"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent"
-              android:textSize="7sp">
-    </ListView>
-
-</LinearLayout>
diff --git a/res/layout/radio_info.xml b/res/layout/radio_info.xml
index c414fe1..2efa1d4 100644
--- a/res/layout/radio_info.xml
+++ b/res/layout/radio_info.xml
@@ -92,6 +92,12 @@
             <TextView android:id="@+id/data_network" style="@style/info_value" />
         </LinearLayout>
 
+        <!-- Data Raw Registration State -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_data_raw_registration_state_label" style="@style/info_label" />
+            <TextView android:id="@+id/data_raw_registration_state" style="@style/info_value" />
+        </LinearLayout>
+
         <!-- Override Network Type -->
         <LinearLayout style="@style/RadioInfo_entry_layout">
             <TextView android:text="@string/radio_info_override_network_type_label" style="@style/info_label" />
@@ -110,6 +116,18 @@
             <TextView android:id="@+id/voice_network" style="@style/info_value" />
         </LinearLayout>
 
+        <!-- Voice Raw Registration State -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_voice_raw_registration_state_label" style="@style/info_label" />
+            <TextView android:id="@+id/voice_raw_registration_state" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- PS IWLAN Raw Registration State -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_wlan_data_raw_registration_state_label" style="@style/info_label" />
+            <TextView android:id="@+id/wlan_data_raw_registration_state" style="@style/info_value" />
+        </LinearLayout>
+
         <!-- Signal Strength -->
         <LinearLayout style="@style/RadioInfo_entry_layout">
             <TextView android:text="@string/radio_info_signal_strength_label" style="@style/info_label" />
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 7d900e4..2341b3a 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -285,7 +285,7 @@
     <string name="roaming_enable" msgid="6853685214521494819">"Poveži sa uslugom za podatke u romingu"</string>
     <string name="roaming_disable" msgid="8856224638624592681">"Poveži sa uslugom za podatke u romingu"</string>
     <string name="roaming_reenable_message" msgid="1951802463885727915">"Prenos podataka u romingu je isključen. Dodirnite da biste ga uključili."</string>
-    <string name="roaming_enabled_message" msgid="9022249120750897">"Važe naknade za roming. Dodirnite da biste izmenili."</string>
+    <string name="roaming_enabled_message" msgid="9022249120750897">"Mogu da važe naknade za roming. Dodirnite da biste izmenili."</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"Izgubili ste vezu za prenos mobilnih podataka"</string>
     <string name="roaming_on_notification_title" msgid="7451473196411559173">"Prenos podataka u romingu je uključen"</string>
     <string name="roaming_warning" msgid="7855681468067171971">"Mogu da nastanu značajni troškovi."</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 9bb7b23..df18d5f 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -672,7 +672,7 @@
     <string name="sim_description_emergency_calls" msgid="5146872803938897296">"Nur Notrufe"</string>
     <string name="sim_description_default" msgid="7474671114363724971">"SIM-Karte, Schacht: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Bedienungshilfen"</string>
-    <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WLAN-Anruf von"</string>
+    <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WiFi-Anruf von"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"WLAN-Anruf"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Beim Entschlüsseln der Nachricht ist ein Fehler aufgetreten."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Eine SIM-Karte hat deinen Dienst aktiviert und die Roamingfunktionen deines Smartphones aktualisiert."</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 8189edf..11da8d6 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -924,5 +924,5 @@
     <string name="send_from_work_profile_title" msgid="9201528838448432473">"Impossibile inviare messaggi da questo profilo"</string>
     <string name="send_from_work_profile_description" msgid="5002701841936861636">"Le norme di lavoro ti consentono di inviare messaggi solo dal profilo di lavoro"</string>
     <string name="send_from_work_profile_cancel" msgid="177746511030381711">"Annulla"</string>
-    <string name="send_from_work_profile_action_str" msgid="6892775562934243337">"Passa a profilo di lavoro"</string>
+    <string name="send_from_work_profile_action_str" msgid="6892775562934243337">"Passa al profilo di lavoro"</string>
 </resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 1e35145..e906af6 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -881,7 +881,7 @@
     <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
     <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ਇਸ \'ਤੇ ਕਾਲ ਰੀਡਾਇਰੈਕਟ ਕਰੋ:"</string>
     <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ਬੂਟ ਤੋਂ ਬਾਅਦ PPP ਰੀਸੈੱਟ ਦੀ ਗਿਣਤੀ:"</string>
-    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ਵਰਤਮਾਨ ਨੈੱਟਵਰਕ:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ਮੌਜੂਦਾ ਨੈੱਟਵਰਕ:"</string>
     <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ਡਾਟਾ ਪ੍ਰਾਪਤ ਹੋਇਆ:"</string>
     <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ਵੌਇਸ ਸੇਵਾ:"</string>
     <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ਸਿਗਨਲ ਦੀ ਤੀਬਰਤਾ:"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index f65c8b7..ff2d090 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -96,7 +96,7 @@
     <string name="sum_loading_settings" msgid="434063780286688775">"A carregar as definições..."</string>
     <string name="sum_hide_caller_id" msgid="131100328602371933">"Ocultar o número em chamadas efectuadas"</string>
     <string name="sum_show_caller_id" msgid="3571854755324664591">"Número apresentado em chamadas efectuadas"</string>
-    <string name="sum_default_caller_id" msgid="1767070797135682959">"Utilizar as predefinições do operador para apresentar o meu número nas chamadas efetuadas"</string>
+    <string name="sum_default_caller_id" msgid="1767070797135682959">"Usar as predefinições do operador para apresentar o meu número nas chamadas efetuadas"</string>
     <string name="labelCW" msgid="8449327023861428622">"Chamada em espera"</string>
     <string name="sum_cw_enabled" msgid="3977308526187139996">"Notificar-me de chamadas em espera durante uma chamada"</string>
     <string name="sum_cw_disabled" msgid="3658094589461768637">"Notificar-me de chamadas em espera durante uma chamada"</string>
@@ -273,8 +273,8 @@
     <string name="network_operator_category" msgid="4992217193732304680">"Rede"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modo 4G LTE avançado"</string>
     <!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (7240155150166394308) -->
-    <string name="enhanced_4g_lte_mode_summary" msgid="7725708511804143638">"Utilizar os serviços LTE para melhorar a voz e outras comunicações (recomendado)"</string>
-    <string name="enhanced_4g_lte_mode_summary_o2" msgid="2521108446409016542">"Utilizar os serviços 4G para melhorar a voz e outras comunicações (recomendado)"</string>
+    <string name="enhanced_4g_lte_mode_summary" msgid="7725708511804143638">"Usar os serviços LTE para melhorar a voz e outras comunicações (recomendado)"</string>
+    <string name="enhanced_4g_lte_mode_summary_o2" msgid="2521108446409016542">"Usar os serviços 4G para melhorar a voz e outras comunicações (recomendado)"</string>
     <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2943982616649705147) -->
     <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (5262249464504131443) -->
     <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (6356974241850241718) -->
@@ -574,7 +574,7 @@
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulância"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Fogo"</string>
     <string name="description_concat_format" msgid="2014471565101724088">"%1$s, %2$s"</string>
-    <string name="dialerKeyboardHintText" msgid="1115266533703764049">"Utilizar o teclado para marcar"</string>
+    <string name="dialerKeyboardHintText" msgid="1115266533703764049">"Usar o teclado para marcar"</string>
     <string name="onscreenHoldText" msgid="4025348842151665191">"Suspender"</string>
     <string name="onscreenEndCallText" msgid="6138725377654842757">"Terminar"</string>
     <string name="onscreenShowDialpadText" msgid="658465753816164079">"Teclado de marcação"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index e8376b6..ab739eb 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -285,7 +285,7 @@
     <string name="roaming_enable" msgid="6853685214521494819">"Повежи са услугом за податке у ромингу"</string>
     <string name="roaming_disable" msgid="8856224638624592681">"Повежи са услугом за податке у ромингу"</string>
     <string name="roaming_reenable_message" msgid="1951802463885727915">"Пренос података у ромингу је искључен. Додирните да бисте га укључили."</string>
-    <string name="roaming_enabled_message" msgid="9022249120750897">"Важе накнаде за роминг. Додирните да бисте изменили."</string>
+    <string name="roaming_enabled_message" msgid="9022249120750897">"Могу да важе накнаде за роминг. Додирните да бисте изменили."</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"Изгубили сте везу за пренос мобилних података"</string>
     <string name="roaming_on_notification_title" msgid="7451473196411559173">"Пренос података у ромингу је укључен"</string>
     <string name="roaming_warning" msgid="7855681468067171971">"Могу да настану значајни трошкови."</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index a3c6e2c..a914be4 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -827,7 +827,7 @@
     <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Inaktivera dataanslutning"</string>
     <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-administrerad"</string>
     <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videosamtal tillhandahålls"</string>
-    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"wifi-samtal tillhandahålls"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi-samtal tillhandahålls"</string>
     <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence tillhandahålls"</string>
     <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data via CBRS"</string>
     <string name="dsds_switch_string" msgid="7564769822086764796">"Aktivera DSDS"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e21f761..680eb22 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2129,14 +2129,18 @@
     <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="radio_info_phone_number_label">Phone Number:</string>
     <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
-    <string name="radio_info_band_mode_label">Select Radio Band</string>
-    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="radio_info_voice_network_type_label">Voice 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_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="radio_info_override_network_type_label">Override 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_voice_raw_registration_state_label">Voice Raw Registration State:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_data_raw_registration_state_label">Data Raw Registration State:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_wlan_data_raw_registration_state_label">WLAN Data Raw Registration State:</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>
diff --git a/src/com/android/phone/settings/BandMode.java b/src/com/android/phone/settings/BandMode.java
deleted file mode 100644
index 853075a..0000000
--- a/src/com/android/phone/settings/BandMode.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package com.android.phone.settings;
-
-import android.app.Activity;
-import android.content.DialogInterface;
-import android.os.AsyncResult;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.util.Log;
-import android.view.View;
-import android.view.Window;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-import androidx.appcompat.app.AlertDialog;
-
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneFactory;
-import com.android.phone.R;
-
-/**
- * Radio Band Mode Selection Class
- *
- * It will query baseband about all available band modes and display them
- * in screen. It will display all six band modes if the query failed.
- *
- * After user select one band, it will send the selection to baseband.
- *
- * It will alter user the result of select operation and exit, no matter success
- * or not.
- *
- */
-public class BandMode extends Activity {
-    private static final String LOG_TAG = "phone";
-    private static final boolean DBG = false;
-
-    private static final int EVENT_BAND_SCAN_COMPLETED = 100;
-    private static final int EVENT_BAND_SELECTION_DONE = 200;
-
-    //Directly maps to RIL_RadioBandMode from ril.h
-    private static final String[] BAND_NAMES = new String[] {
-            "Automatic",
-            "Europe",
-            "United States",
-            "Japan",
-            "Australia",
-            "Australia 2",
-            "Cellular 800",
-            "PCS",
-            "Class 3 (JTACS)",
-            "Class 4 (Korea-PCS)",
-            "Class 5",
-            "Class 6 (IMT2000)",
-            "Class 7 (700Mhz-Upper)",
-            "Class 8 (1800Mhz-Upper)",
-            "Class 9 (900Mhz)",
-            "Class 10 (800Mhz-Secondary)",
-            "Class 11 (Europe PAMR 400Mhz)",
-            "Class 15 (US-AWS)",
-            "Class 16 (US-2500Mhz)"
-    };
-
-    private ListView mBandList;
-    private ArrayAdapter mBandListAdapter;
-    private BandListItem mTargetBand = null;
-    private DialogInterface mProgressPanel;
-
-    private Phone mPhone = null;
-
-    @Override
-    protected void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-
-        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
-        setContentView(R.layout.band_mode);
-
-        mPhone = PhoneFactory.getDefaultPhone();
-
-        mBandList = (ListView) findViewById(R.id.band);
-        mBandListAdapter = new ArrayAdapter<BandListItem>(this,
-                android.R.layout.simple_list_item_1);
-        mBandList.setAdapter(mBandListAdapter);
-        mBandList.setOnItemClickListener(mBandSelectionHandler);
-
-        loadBandList();
-    }
-
-    private AdapterView.OnItemClickListener mBandSelectionHandler =
-            new AdapterView.OnItemClickListener() {
-                public void onItemClick(AdapterView parent, View v,
-                        int position, long id) {
-
-                    getWindow().setFeatureInt(
-                            Window.FEATURE_INDETERMINATE_PROGRESS,
-                            Window.PROGRESS_VISIBILITY_ON);
-
-                    mTargetBand = (BandListItem) parent.getAdapter().getItem(position);
-
-                    if (DBG) log("Select band : " + mTargetBand.toString());
-
-                    Message msg =
-                            mHandler.obtainMessage(EVENT_BAND_SELECTION_DONE);
-                    mPhone.setBandMode(mTargetBand.getBand(), msg);
-                }
-            };
-
-    private static class BandListItem {
-        private int mBandMode = Phone.BM_UNSPECIFIED;
-
-        BandListItem(int bm) {
-            mBandMode = bm;
-        }
-
-        public int getBand() {
-            return mBandMode;
-        }
-
-        public String toString() {
-            if (mBandMode >= BAND_NAMES.length) return "Band mode " + mBandMode;
-            return BAND_NAMES[mBandMode];
-        }
-    }
-
-    private void loadBandList() {
-        String str = getString(R.string.band_mode_loading);
-
-        if (DBG) log(str);
-
-
-        //ProgressDialog.show(this, null, str, true, true, null);
-        mProgressPanel = new AlertDialog.Builder(this)
-            .setMessage(str)
-            .show();
-
-        Message msg = mHandler.obtainMessage(EVENT_BAND_SCAN_COMPLETED);
-        mPhone.queryAvailableBandMode(msg);
-
-    }
-
-    private void bandListLoaded(AsyncResult result) {
-        if (DBG) log("network list loaded");
-
-        if (mProgressPanel != null) mProgressPanel.dismiss();
-
-        clearList();
-
-        boolean addBandSuccess = false;
-        BandListItem item;
-
-        if (result.result != null) {
-            int [] bands = (int []) result.result;
-
-            if (bands.length == 0) {
-                Log.wtf(LOG_TAG, "No Supported Band Modes");
-                return;
-            }
-
-            int size = bands[0];
-
-            if (size > 0) {
-                mBandListAdapter.add(
-                        new BandListItem(Phone.BM_UNSPECIFIED)); //Always include AUTOMATIC
-                for (int i = 1; i <= size; i++) {
-                    if (bands[i] == Phone.BM_UNSPECIFIED) {
-                        continue;
-                    }
-                    item = new BandListItem(bands[i]);
-                    mBandListAdapter.add(item);
-                    if (DBG) log("Add " + item.toString());
-                }
-                addBandSuccess = true;
-            }
-        }
-
-        if (!addBandSuccess) {
-            if (DBG) log("Error in query, add default list");
-            for (int i = 0; i < Phone.BM_NUM_BAND_MODES; i++) {
-                item = new BandListItem(i);
-                mBandListAdapter.add(item);
-                if (DBG) log("Add default " + item.toString());
-            }
-        }
-        mBandList.requestFocus();
-    }
-
-    private void displayBandSelectionResult(Throwable ex) {
-        String status = getString(R.string.band_mode_set)
-                + " [" + mTargetBand.toString() + "] ";
-
-        if (ex != null) {
-            status = status + getString(R.string.band_mode_failed);
-        } else {
-            status = status + getString(R.string.band_mode_succeeded);
-        }
-
-        mProgressPanel = new AlertDialog.Builder(this)
-            .setMessage(status)
-            .setPositiveButton(android.R.string.ok, null).show();
-    }
-
-    private void clearList() {
-        while (mBandListAdapter.getCount() > 0) {
-            mBandListAdapter.remove(
-                    mBandListAdapter.getItem(0));
-        }
-    }
-
-    private void log(String msg) {
-        Log.d(LOG_TAG, "[BandsList] " + msg);
-    }
-
-    private Handler mHandler = new Handler() {
-        public void handleMessage(Message msg) {
-            AsyncResult ar;
-            switch (msg.what) {
-                case EVENT_BAND_SCAN_COMPLETED:
-                    ar = (AsyncResult) msg.obj;
-
-                    bandListLoaded(ar);
-                    break;
-
-                case EVENT_BAND_SELECTION_DONE:
-                    ar = (AsyncResult) msg.obj;
-
-                    getWindow().setFeatureInt(
-                            Window.FEATURE_INDETERMINATE_PROGRESS,
-                            Window.PROGRESS_VISIBILITY_OFF);
-
-                    if (!isFinishing()) {
-                        displayBandSelectionResult(ar.exception);
-                    }
-                    break;
-            }
-        }
-    };
-
-
-}
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index 574440a..124badf 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -204,12 +204,10 @@
         Log.d(TAG, s);
     }
 
-    private static final int EVENT_CFI_CHANGED = 302;
     private static final int EVENT_QUERY_SMSC_DONE = 1005;
     private static final int EVENT_UPDATE_SMSC_DONE = 1006;
     private static final int EVENT_PHYSICAL_CHANNEL_CONFIG_CHANGED = 1007;
 
-    private static final int MENU_ITEM_SELECT_BAND         = 0;
     private static final int MENU_ITEM_VIEW_ADN            = 1;
     private static final int MENU_ITEM_VIEW_FDN            = 2;
     private static final int MENU_ITEM_VIEW_SDN            = 3;
@@ -236,6 +234,9 @@
     private TextView mGprsState;
     private TextView mVoiceNetwork;
     private TextView mDataNetwork;
+    private TextView mVoiceRawReg;
+    private TextView mDataRawReg;
+    private TextView mWlanDataRawReg;
     private TextView mOverrideNetwork;
     private TextView mDBm;
     private TextView mMwi;
@@ -259,7 +260,6 @@
     private EditText mSmsc;
     private Switch mRadioPowerOnSwitch;
     private Switch mSimulateOutOfServiceSwitch;
-    private Button mCellInfoRefreshRateButton;
     private Button mDnsCheckToggleButton;
     private Button mPingTestButton;
     private Button mUpdateSmscButton;
@@ -377,6 +377,7 @@
             updateServiceState(serviceState);
             updateRadioPowerState();
             updateNetworkType();
+            updateRawRegistrationState(serviceState);
             updateImsProvisionedState();
             updateNrStats(serviceState);
         }
@@ -514,6 +515,9 @@
         mGprsState = (TextView) findViewById(R.id.gprs);
         mVoiceNetwork = (TextView) findViewById(R.id.voice_network);
         mDataNetwork = (TextView) findViewById(R.id.data_network);
+        mVoiceRawReg = (TextView) findViewById(R.id.voice_raw_registration_state);
+        mDataRawReg = (TextView) findViewById(R.id.data_raw_registration_state);
+        mWlanDataRawReg = (TextView) findViewById(R.id.wlan_data_raw_registration_state);
         mOverrideNetwork = (TextView) findViewById(R.id.override_network);
         mDBm = (TextView) findViewById(R.id.dbm);
         mMwi = (TextView) findViewById(R.id.mwi);
@@ -788,9 +792,7 @@
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
-        menu.add(0, MENU_ITEM_SELECT_BAND, 0, R.string.radio_info_band_mode_label)
-                .setOnMenuItemClickListener(mSelectBandCallback)
-                .setAlphabeticShortcut('b');
+        // Removed "select Radio band". If need it back, use setSystemSelectionChannels()
         menu.add(1, MENU_ITEM_VIEW_ADN, 0,
                 R.string.radioInfo_menu_viewADN).setOnMenuItemClickListener(mViewADNCallback);
         menu.add(1, MENU_ITEM_VIEW_FDN, 0,
@@ -855,8 +857,11 @@
         mOperatorName.setText("");
         mGprsState.setText("");
         mDataNetwork.setText("");
+        mDataRawReg.setText("");
         mOverrideNetwork.setText("");
         mVoiceNetwork.setText("");
+        mVoiceRawReg.setText("");
+        mWlanDataRawReg.setText("");
         mSent.setText("");
         mReceived.setText("");
         mCallState.setText("");
@@ -1204,6 +1209,32 @@
         }
     }
 
+    private String getRawRegistrationStateText(ServiceState ss, int domain, int transportType) {
+        if (ss != null) {
+            NetworkRegistrationInfo nri = ss.getNetworkRegistrationInfo(domain, transportType);
+            if (nri != null) {
+                return NetworkRegistrationInfo.registrationStateToString(
+                        nri.getNetworkRegistrationState())
+                        + (nri.isEmergencyEnabled() ? "_EM" : "");
+            }
+        }
+        return "";
+    }
+
+    private void updateRawRegistrationState(ServiceState serviceState) {
+        ServiceState ss = serviceState;
+        if (ss == null && mPhone != null) {
+            ss = mPhone.getServiceState();
+        }
+
+        mVoiceRawReg.setText(getRawRegistrationStateText(ss, NetworkRegistrationInfo.DOMAIN_CS,
+                    AccessNetworkConstants.TRANSPORT_TYPE_WWAN));
+        mDataRawReg.setText(getRawRegistrationStateText(ss, NetworkRegistrationInfo.DOMAIN_PS,
+                    AccessNetworkConstants.TRANSPORT_TYPE_WWAN));
+        mWlanDataRawReg.setText(getRawRegistrationStateText(ss, NetworkRegistrationInfo.DOMAIN_PS,
+                    AccessNetworkConstants.TRANSPORT_TYPE_WLAN));
+    }
+
     private void updateNrStats(ServiceState serviceState) {
         if ((mTelephonyManager.getSupportedRadioAccessFamily()
                 & TelephonyManager.NETWORK_TYPE_BITMASK_NR) == 0) {
@@ -1488,16 +1519,6 @@
         }
     };
 
-    private MenuItem.OnMenuItemClickListener mSelectBandCallback =
-            new MenuItem.OnMenuItemClickListener() {
-        public boolean onMenuItemClick(MenuItem item) {
-            Intent intent = new Intent();
-            intent.setClass(RadioInfo.this, BandMode.class);
-            startActivity(intent);
-            return true;
-        }
-    };
-
     private MenuItem.OnMenuItemClickListener mToggleData =
             new MenuItem.OnMenuItemClickListener() {
         public boolean onMenuItemClick(MenuItem item) {