merge in pi-release history after reset to master
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java
index c73db6a..32d21e9 100644
--- a/src/java/com/android/ims/ImsManager.java
+++ b/src/java/com/android/ims/ImsManager.java
@@ -39,11 +39,8 @@
 import com.android.ims.internal.IImsConfig;
 import com.android.ims.internal.IImsEcbm;
 import com.android.ims.internal.IImsMultiEndpoint;
-import com.android.ims.internal.IImsRegistration;
 import com.android.ims.internal.IImsRegistrationCallback;
 import com.android.ims.internal.IImsRegistrationListener;
-import com.android.ims.internal.IImsServiceController;
-import com.android.ims.internal.IImsSmsListener;
 import com.android.ims.internal.IImsUt;
 import com.android.ims.internal.ImsCallSession;
 import com.android.internal.annotations.VisibleForTesting;
@@ -1428,10 +1425,8 @@
                     checkAndThrowExceptionIfServiceUnavailable();
                     // TODO: Remove once new MmTelFeature is merged in
                     mImsServiceProxy.addRegistrationListener(mImsRegistrationListenerProxy);
-                    IImsRegistration regBinder = mImsServiceProxy.getRegistration();
-                    if (regBinder != null) {
-                        regBinder.addRegistrationCallback(mRegistrationCallback);
-                    }
+                    mImsServiceProxy.getRegistration().addRegistrationCallback(
+                            mRegistrationCallback);
                     log("Registration Callback/Listener registered.");
                     // Only record if there isn't a RemoteException.
                     mHasRegisteredForProxy = true;
@@ -1874,7 +1869,7 @@
         if (!mConfigDynamicBind) {
             // Deprecated method of binding
             Rlog.i(TAG, "Creating ImsService using ServiceManager");
-            mImsServiceProxy = ImsServiceProxyCompat.create(mContext, mPhoneId, mDeathRecipient);
+            mImsServiceProxy = ImsServiceProxyCompat.create(mPhoneId, mDeathRecipient);
         } else {
             Rlog.i(TAG, "Creating ImsService using ImsResolver");
             mImsServiceProxy = ImsServiceProxy.create(mContext, mPhoneId);
@@ -2306,50 +2301,6 @@
         return mEcbm;
     }
 
-    public void sendSms(int token, int messageRef, String format, String smsc, boolean isRetry,
-            byte[] pdu) throws ImsException {
-        try {
-            mImsServiceProxy.sendSms(token, messageRef, format, smsc, isRetry, pdu);
-        } catch (RemoteException e) {
-            throw new ImsException("sendSms()", e, ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN);
-        }
-    }
-
-    public void acknowledgeSms(int token, int messageRef, int result) throws ImsException {
-        try {
-            mImsServiceProxy.acknowledgeSms(token, messageRef, result);
-        } catch (RemoteException e) {
-            throw new ImsException("acknowledgeSms()", e,
-                    ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN);
-        }
-    }
-
-    public void acknowledgeSmsReport(int token, int messageRef, int result) throws  ImsException{
-        try {
-            mImsServiceProxy.acknowledgeSmsReport(token, messageRef, result);
-        } catch (RemoteException e) {
-            throw new ImsException("acknowledgeSmsReport()", e,
-                    ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN);
-        }
-    }
-
-    public String getSmsFormat() throws ImsException{
-        try {
-            return mImsServiceProxy.getSmsFormat();
-        } catch (RemoteException e) {
-            throw new ImsException("getSmsFormat()", e,
-                    ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN);
-        }
-    }
-
-    public void setSmsListener(IImsSmsListener listener) throws ImsException {
-        try {
-            mImsServiceProxy.setSmsListener(listener);
-        } catch (RemoteException e) {
-            throw new ImsException("setSmsListener()", e,
-                    ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN);
-        }
-    }
     /**
      * Gets the Multi-Endpoint interface to subscribe to multi-enpoint notifications..
      *
diff --git a/src/java/com/android/ims/ImsServiceProxy.java b/src/java/com/android/ims/ImsServiceProxy.java
index 153c5f5..543e31e 100644
--- a/src/java/com/android/ims/ImsServiceProxy.java
+++ b/src/java/com/android/ims/ImsServiceProxy.java
@@ -25,8 +25,6 @@
 import android.telephony.Rlog;
 import android.telephony.TelephonyManager;
 import android.telephony.ims.feature.ImsFeature;
-import android.telephony.SmsMessage;
-import android.telephony.ims.internal.SmsImplBase;
 import android.util.Log;
 
 import com.android.ims.internal.IImsCallSession;
@@ -38,7 +36,6 @@
 import com.android.ims.internal.IImsRegistration;
 import com.android.ims.internal.IImsRegistrationListener;
 import com.android.ims.internal.IImsServiceFeatureCallback;
-import com.android.ims.internal.IImsSmsListener;
 import com.android.ims.internal.IImsUt;
 
 /**
@@ -147,15 +144,15 @@
         }
     };
 
-    public ImsServiceProxy(Context context, int slotId, IBinder binder, int featureType) {
+    public ImsServiceProxy(int slotId, IBinder binder, int featureType) {
         mSlotId = slotId;
         mBinder = binder;
         mSupportedFeature = featureType;
-        mContext = context;
     }
 
     public ImsServiceProxy(Context context, int slotId, int featureType) {
-        this(context, slotId, null, featureType);
+        this(slotId, null, featureType);
+        mContext = context;
     }
 
     public @Nullable IImsRegistration getRegistration() {
@@ -339,45 +336,6 @@
         mStatusCallback = c;
     }
 
-    public void sendSms(int token, int messageRef, String format, String smsc, boolean isRetry,
-            byte[] pdu) throws RemoteException {
-        synchronized (mLock) {
-            checkServiceIsReady();
-            getServiceInterface(mBinder).sendSms(token, messageRef, format, smsc, isRetry,
-                    pdu);
-        }
-    }
-
-    public void acknowledgeSms(int token, int messageRef,
-            @SmsImplBase.SendStatusResult int result) throws RemoteException {
-        synchronized (mLock) {
-            checkServiceIsReady();
-            getServiceInterface(mBinder).acknowledgeSms(token, messageRef, result);
-        }
-    }
-
-    public void acknowledgeSmsReport(int token, int messageRef,
-            @SmsImplBase.StatusReportResult int result) throws RemoteException {
-        synchronized (mLock) {
-            checkServiceIsReady();
-            getServiceInterface(mBinder).acknowledgeSmsReport(token, messageRef, result);
-        }
-    }
-
-    public String getSmsFormat() throws RemoteException {
-        synchronized (mLock) {
-            checkServiceIsReady();
-            return getServiceInterface(mBinder).getSmsFormat();
-        }
-    }
-
-    public void setSmsListener(IImsSmsListener listener) throws RemoteException {
-        synchronized (mLock) {
-            checkServiceIsReady();
-            getServiceInterface(mBinder).setSmsListener(listener);
-        }
-    }
-
     /**
      * @return Returns true if the ImsService is ready to take commands, false otherwise. If this
      * method returns false, it doesn't mean that the Binder connection is not available (use
diff --git a/src/java/com/android/ims/ImsServiceProxyCompat.java b/src/java/com/android/ims/ImsServiceProxyCompat.java
index a6d1865..44f72e6 100644
--- a/src/java/com/android/ims/ImsServiceProxyCompat.java
+++ b/src/java/com/android/ims/ImsServiceProxyCompat.java
@@ -54,8 +54,7 @@
      */
     private static final String IMS_SERVICE = "ims";
 
-    public static ImsServiceProxyCompat create(Context context, int slotId,
-            IBinder.DeathRecipient recipient) {
+    public static ImsServiceProxyCompat create(int slotId, IBinder.DeathRecipient recipient) {
         IBinder binder = ServiceManager.checkService(IMS_SERVICE);
 
         if (binder != null) {
@@ -67,11 +66,11 @@
 
         // If the proxy is created with a null binder, subsequent calls that depend on a live
         // binder will fail, causing this structure to be torn down and created again.
-        return new ImsServiceProxyCompat(context, slotId, binder);
+        return new ImsServiceProxyCompat(slotId, binder);
     }
 
-    public ImsServiceProxyCompat(Context context, int slotId, IBinder binder) {
-        super(context, slotId, binder, SERVICE_ID);
+    public ImsServiceProxyCompat(int slotId, IBinder binder) {
+        super(slotId, binder, SERVICE_ID);
     }
 
     @Override