Radio Capability Support.

New design of capability switch for L.
Add new RIL requests:
     RIL_REQUEST_GET_RADIO_CAPABILITY
     RIL_REQUEST_SET_RADIO_CAPABILITY
     RIL_UNSOL_RADIO_CAPABILITY

These commands allow the framework to communicate what the Radio
Capabilities for each logical modem has or should be using.

It can support 2/3/4G switch and has flexible architecture to support
future technology.

Change-Id: Iedf7f608d2ba3c06a883500f2d85abb98e69d9c1
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index e609eaf..f9a0989 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -44,6 +44,7 @@
 import android.telephony.CellInfo;
 import android.telephony.IccOpenLogicalChannelResponse;
 import android.telephony.NeighboringCellInfo;
+import android.telephony.RadioAccessFamily;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.SubInfoRecord;
@@ -60,6 +61,8 @@
 import com.android.internal.telephony.IccCard;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.PhoneProxy;
+import com.android.internal.telephony.ProxyController;
 import com.android.internal.telephony.CallManager;
 import com.android.internal.telephony.CommandException;
 import com.android.internal.telephony.PhoneConstants;
@@ -2050,4 +2053,18 @@
 
         return returnValue;
     }
+
+    @Override
+    public void setRadioCapability(RadioAccessFamily[] rafs) {
+        try {
+            ProxyController.getInstance().setRadioCapability(rafs);
+        } catch (RuntimeException e) {
+            Log.w(LOG_TAG, "setRadioCapability: Runtime Exception");
+        }
+    }
+
+    @Override
+    public int getRadioAccessFamily(int phoneId) {
+        return ProxyController.getInstance().getRadioAccessFamily(phoneId);
+    }
 }