diff --git a/src/com/android/telecomm/TelecommServiceImpl.java b/src/com/android/telecomm/TelecommServiceImpl.java
index 7af1534..ee22536 100644
--- a/src/com/android/telecomm/TelecommServiceImpl.java
+++ b/src/com/android/telecomm/TelecommServiceImpl.java
@@ -29,7 +29,6 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.ServiceManager;
-import android.phone.PhoneManager;
 import android.telecomm.CallState;
 import android.telecomm.PhoneAccount;
 import android.telecomm.PhoneAccountHandle;
@@ -250,10 +249,10 @@
     }
 
     /**
-     * @see TelecommManager#isInAPhoneCall
+     * @see TelecommManager#isInCall
      */
     @Override
-    public boolean isInAPhoneCall() {
+    public boolean isInCall() {
         enforceReadPermission();
         // Do not use sendRequest() with this method since it could cause a deadlock with
         // audio service, which we call into from the main thread: AudioManager.setMode().
@@ -288,16 +287,16 @@
     }
 
     /**
-     * @see PhoneManager#showCallScreen
+     * @see TelecommManager#showInCallScreen
      */
     @Override
-    public void showCallScreen(boolean showDialpad) {
+    public void showInCallScreen(boolean showDialpad) {
         enforceReadPermissionOrDefaultDialer();
         sendRequestAsync(MSG_SHOW_CALL_SCREEN, showDialpad ? 1 : 0);
     }
 
     /**
-     * @see PhoneManager#cancelMissedCallsNotification
+     * @see TelecommManager#cancelMissedCallsNotification
      */
     @Override
     public void cancelMissedCallsNotification() {
@@ -306,7 +305,7 @@
     }
 
     /**
-     * @see PhoneManager#handlePinMmi
+     * @see TelecommManager#handleMmi
      */
     @Override
     public boolean handlePinMmi(String dialString) {
@@ -441,10 +440,6 @@
         mAppOpsManager.checkPackage(Binder.getCallingUid(), packageName);
     }
 
-    private void showCallScreenInternal(boolean showDialpad) {
-        CallsManager.getInstance().getInCallController().bringToForeground(showDialpad);
-    }
-
     private boolean isDefaultDialerCalling() {
         ComponentName defaultDialerComponent = getDefaultPhoneApp();
         if (defaultDialerComponent != null) {
