Merge "Add debug functions." into gingerbread
diff --git a/telephony/java/com/android/internal/telephony/CallManager.java b/telephony/java/com/android/internal/telephony/CallManager.java
index 23cb42a..7c3508f 100644
--- a/telephony/java/com/android/internal/telephony/CallManager.java
+++ b/telephony/java/com/android/internal/telephony/CallManager.java
@@ -54,9 +54,9 @@
  */
 public final class CallManager {
 
-    private static final String LOG_TAG ="Phone";
+    private static final String LOG_TAG ="CallManager";
     private static final boolean DBG = true;
-    private static final boolean VDBG = false;
+    private static final boolean VDBG = true;
 
     private static final int EVENT_DISCONNECT = 100;
     private static final int EVENT_PRECISE_CALL_STATE_CHANGED = 101;
@@ -291,6 +291,12 @@
         Phone basePhone = getPhoneBase(phone);
 
         if (basePhone != null && !mPhones.contains(basePhone)) {
+
+            if (VDBG) {
+                Log.d(LOG_TAG, "registerPhone(" +
+                        phone.getPhoneName() + " " + phone + ")");
+            }
+
             if (mPhones.isEmpty()) {
                 mDefaultPhone = basePhone;
             }
@@ -312,6 +318,12 @@
         Phone basePhone = getPhoneBase(phone);
 
         if (basePhone != null && mPhones.contains(basePhone)) {
+
+            if (VDBG) {
+                Log.d(LOG_TAG, "unregisterPhone(" +
+                        phone.getPhoneName() + " " + phone + ")");
+            }
+
             mPhones.remove(basePhone);
             mRingingCalls.remove(basePhone.getRingingCall());
             mBackgroundCalls.remove(basePhone.getBackgroundCall());
@@ -466,7 +478,8 @@
         Phone ringingPhone = ringingCall.getPhone();
 
         if (VDBG) {
-            Log.d(LOG_TAG, "CallManager.acceptCall " + this);
+            Log.d(LOG_TAG, "acceptCall(" +ringingCall + " from " + ringingCall.getPhone() + ")");
+            Log.d(LOG_TAG, this.toString());
         }
 
         if ( hasActiveFgCall() ) {
@@ -488,6 +501,11 @@
         }
 
         ringingPhone.acceptCall();
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "End acceptCall(" +ringingCall + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
     }
 
     /**
@@ -500,9 +518,19 @@
      * @exception CallStateException when no call is ringing or waiting
      */
     public void rejectCall(Call ringingCall) throws CallStateException {
+        if (VDBG) {
+            Log.d(LOG_TAG, "rejectCall(" +ringingCall + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
         Phone ringingPhone = ringingCall.getPhone();
 
         ringingPhone.rejectCall();
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "End rejectCall(" +ringingCall + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
     }
 
     /**
@@ -527,6 +555,11 @@
         Phone activePhone = null;
         Phone heldPhone = null;
 
+        if (VDBG) {
+            Log.d(LOG_TAG, "switchHoldingAndActive(" +heldCall + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
         if (hasActiveFgCall()) {
             activePhone = getActiveFgCall().getPhone();
         }
@@ -542,6 +575,11 @@
         if (heldPhone != null && heldPhone != activePhone) {
             heldPhone.switchHoldingAndActive();
         }
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "End switchHoldingAndActive(" +heldCall + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
     }
 
     /**
@@ -556,6 +594,11 @@
         Phone foregroundPhone = null;
         Phone backgroundPhone = null;
 
+        if (VDBG) {
+            Log.d(LOG_TAG, "hangupForegroundResumeBackground(" +heldCall + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
         if (hasActiveFgCall()) {
             foregroundPhone = getFgPhone();
             if (heldCall != null) {
@@ -569,6 +612,11 @@
                 }
             }
         }
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "End hangupForegroundResumeBackground(" +heldCall + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
     }
 
     /**
@@ -601,6 +649,13 @@
      * In these cases, this operation may not be performed.
      */
     public void conference(Call heldCall) throws CallStateException {
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "conference(" +heldCall + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
+
         Phone fgPhone = getFgPhone();
         if (fgPhone instanceof SipPhone) {
             ((SipPhone) fgPhone).conference(heldCall);
@@ -609,6 +664,12 @@
         } else {
             throw(new CallStateException("Can't conference foreground and selected background call"));
         }
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "End conference(" +heldCall + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
     }
 
     /**
@@ -623,10 +684,13 @@
      */
     public Connection dial(Phone phone, String dialString) throws CallStateException {
         Phone basePhone = getPhoneBase(phone);
+        Connection result;
+
         if (VDBG) {
-            Log.d(LOG_TAG, "CallManager.dial( phone=" + basePhone + ", dialString="+ dialString + ")");
+            Log.d(LOG_TAG, " dial(" + basePhone + ", "+ dialString + ")");
             Log.d(LOG_TAG, this.toString());
         }
+
         if ( hasActiveFgCall() ) {
             Phone activePhone = getActiveFgCall().getPhone();
             boolean hasBgCall = !(activePhone.getBackgroundCall().isIdle());
@@ -645,7 +709,15 @@
                 }
             }
         }
-        return basePhone.dial(dialString);
+
+        result = basePhone.dial(dialString);
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "End dial(" + basePhone + ", "+ dialString + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
+        return result;
     }
 
     /**
@@ -704,9 +776,20 @@
      * In these cases, this operation may not be performed.
      */
     public void explicitCallTransfer(Call heldCall) throws CallStateException {
+        if (VDBG) {
+            Log.d(LOG_TAG, " explicitCallTransfer(" + heldCall + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
         if (canTransfer(heldCall)) {
             heldCall.getPhone().explicitCallTransfer();
         }
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "End explicitCallTransfer(" + heldCall + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
     }
 
     /**
@@ -719,6 +802,7 @@
      * @return null if phone doesn't have or support mmi code
      */
     public List<? extends MmiCode> getPendingMmiCodes(Phone phone) {
+        Log.e(LOG_TAG, "getPendingMmiCodes not implemented");
         return null;
     }
 
@@ -731,6 +815,7 @@
      * @return false if phone doesn't support ussd service
      */
     public boolean sendUssdResponse(Phone phone, String ussdMessge) {
+        Log.e(LOG_TAG, "sendUssdResponse not implemented");
         return false;
     }
 
@@ -744,9 +829,19 @@
      */
 
     public void setMute(boolean muted) {
+        if (VDBG) {
+            Log.d(LOG_TAG, " setMute(" + muted + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
         if (hasActiveFgCall()) {
             getActiveFgCall().getPhone().setMute(muted);
         }
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "End setMute(" + muted + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
     }
 
     /**
@@ -774,11 +869,23 @@
      *         dtmf tone
      */
     public boolean sendDtmf(char c) {
+        boolean result = false;
+
+        if (VDBG) {
+            Log.d(LOG_TAG, " sendDtmf(" + c + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
         if (hasActiveFgCall()) {
             getActiveFgCall().getPhone().sendDtmf(c);
-            return true;
+            result = true;
         }
-        return false;
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "End sendDtmf(" + c + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+        return result;
     }
 
     /**
@@ -791,11 +898,24 @@
      *         dtmf tone
      */
     public boolean startDtmf(char c) {
+        boolean result = false;
+
+        if (VDBG) {
+            Log.d(LOG_TAG, " startDtmf(" + c + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
         if (hasActiveFgCall()) {
             getActiveFgCall().getPhone().sendDtmf(c);
-            return true;
+            result = true;
         }
-        return false;
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "End startDtmf(" + c + ")");
+            Log.d(LOG_TAG, this.toString());
+        }
+
+        return result;
     }
 
     /**
@@ -803,7 +923,17 @@
      * tone or no active call.
      */
     public void stopDtmf() {
+        if (VDBG) {
+            Log.d(LOG_TAG, " stopDtmf()" );
+            Log.d(LOG_TAG, this.toString());
+        }
+
         if (hasActiveFgCall()) getFgPhone().stopDtmf();
+
+        if (VDBG) {
+            Log.d(LOG_TAG, "End stopDtmf()");
+            Log.d(LOG_TAG, this.toString());
+        }
     }
 
     /**
@@ -1469,70 +1599,91 @@
 
         @Override
         public void handleMessage(Message msg) {
+
             switch (msg.what) {
                 case EVENT_DISCONNECT:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_DISCONNECT)");
                     mDisconnectRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_PRECISE_CALL_STATE_CHANGED:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_PRECISE_CALL_STATE_CHANGED)");
                     mPreciseCallStateRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_NEW_RINGING_CONNECTION:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_NEW_RINGING_CONNECTION)");
                     mNewRingingConnectionRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_UNKNOWN_CONNECTION:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_UNKNOWN_CONNECTION)");
                     mUnknownConnectionRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_INCOMING_RING:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_INCOMING_RING)");
                     // The event may come from RIL who's not aware of an ongoing fg call
                     if (!hasActiveFgCall()) {
                         mIncomingRingRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     }
                     break;
                 case EVENT_RINGBACK_TONE:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_RINGBACK_TONE)");
                     mRingbackToneRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_IN_CALL_VOICE_PRIVACY_ON:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_IN_CALL_VOICE_PRIVACY_ON)");
                     mInCallVoicePrivacyOnRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_IN_CALL_VOICE_PRIVACY_OFF:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_IN_CALL_VOICE_PRIVACY_OFF)");
                     mInCallVoicePrivacyOffRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_CALL_WAITING:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_CALL_WAITING)");
                     mCallWaitingRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_DISPLAY_INFO:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_DISPLAY_INFO)");
                     mDisplayInfoRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_SIGNAL_INFO:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_SIGNAL_INFO)");
                     mSignalInfoRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_CDMA_OTA_STATUS_CHANGE:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_CDMA_OTA_STATUS_CHANGE)");
                     mCdmaOtaStatusChangeRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_RESEND_INCALL_MUTE:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_RESEND_INCALL_MUTE)");
                     mResendIncallMuteRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_MMI_INITIATE:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_MMI_INITIATE)");
                     mMmiInitiateRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_MMI_COMPLETE:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_MMI_COMPLETE)");
                     mMmiCompleteRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_ECM_TIMER_RESET:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_ECM_TIMER_RESET)");
                     mEcmTimerResetRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_SUBSCRIPTION_INFO_READY:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_SUBSCRIPTION_INFO_READY)");
                     mSubscriptionInfoReadyRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_SUPP_SERVICE_FAILED:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_SUPP_SERVICE_FAILED)");
                     mSuppServiceFailedRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_SERVICE_STATE_CHANGED:
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_SERVICE_STATE_CHANGED)");
                     mServiceStateChangedRegistrants.notifyRegistrants((AsyncResult) msg.obj);
                     break;
                 case EVENT_POST_DIAL_CHARACTER:
                     // we need send the character that is being processed in msg.arg1
                     // so can't use notifyRegistrants()
+                    if (VDBG) Log.d(LOG_TAG, " handleMessage (EVENT_POST_DIAL_CHARACTER)");
                     for(int i=0; i < mPostDialCharacterRegistrants.size(); i++) {
                         Message notifyMsg;
                         notifyMsg = ((Registrant)mPostDialCharacterRegistrants.get(i)).messageForRegistrant();
@@ -1551,36 +1702,29 @@
         StringBuilder b = new StringBuilder();
 
         b.append("########### Dump CallManager ############");
-        b.append("\nCM state = " + getState());
+        b.append("\nCallManager state = " + getState());
         call = getActiveFgCall();
-        b.append("\n   - FG call: " + getActiveFgCallState());
+        b.append("\n   - Foreground: " + getActiveFgCallState());
         b.append(" from " + call.getPhone());
         b.append("\n     Conn: ").append(getFgCallConnections());
         call = getFirstActiveBgCall();
-        b.append("\n   - BG call: " + call.getState());
+        b.append("\n   - Background: " + call.getState());
         b.append(" from " + call.getPhone());
         b.append("\n     Conn: ").append(getBgCallConnections());
         call = getFirstActiveRingingCall();
-        b.append("\n   - RINGING call: " +call.getState());
+        b.append("\n   - Ringing: " +call.getState());
         b.append(" from " + call.getPhone());
 
-        b.append("\n");
         for (Phone phone : getAllPhones()) {
             if (phone != null) {
                 b.append("\n Phone: " + phone + ", name = " + phone.getPhoneName()
                         + ", state = " + phone.getState());
                 call = phone.getForegroundCall();
-                b.append("\n   - FG call: ").append(call);
-                b.append("  State: ").append(call.getState());
-                b.append("\n     Conn: ").append(call.getConnections());
+                b.append("\n   - Foreground: ").append(call);
                 call = phone.getBackgroundCall();
-                b.append("\n   - BG call: ").append(call);
-                b.append("  State: ").append(call.getState());
-                b.append("\n     Conn: ").append(call.getConnections());
+                b.append(" Background: ").append(call);
                 call = phone.getRingingCall();
-                b.append("\n   - RINGING call: ").append(call);
-                b.append( "  State: ").append(call.getState());
-                b.append("\n     Conn: ").append(call.getConnections());
+                b.append(" Ringing: ").append(call);
             }
         }
         b.append("\n########## End Dump CallManager ##########");