Hides dialpad on incoming call.

Bug: 10842639
Change-Id: Ia014bdc85128a4838b3dfcf7e67bb93c8a7725d9
diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
index 4de129d..74aff53 100644
--- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
@@ -19,6 +19,7 @@
 import com.android.incallui.AudioModeProvider.AudioModeListener;
 import com.android.incallui.InCallPresenter.InCallState;
 import com.android.incallui.InCallPresenter.InCallStateListener;
+import com.android.incallui.InCallPresenter.IncomingCallListener;
 import com.android.services.telephony.common.AudioMode;
 import com.android.services.telephony.common.Call;
 import com.android.services.telephony.common.Call.Capabilities;
@@ -29,7 +30,7 @@
  * Logic for call buttons.
  */
 public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButtonUi>
-        implements InCallStateListener, AudioModeListener {
+        implements InCallStateListener, AudioModeListener, IncomingCallListener {
 
     private Call mCall;
     private ProximitySensor mProximitySensor;
@@ -50,6 +51,7 @@
 
         // register for call state changes last
         InCallPresenter.getInstance().addListener(this);
+        InCallPresenter.getInstance().addIncomingCallListener(this);
     }
 
     @Override
@@ -58,6 +60,7 @@
 
         InCallPresenter.getInstance().removeListener(this);
         AudioModeProvider.getInstance().removeListener(this);
+        InCallPresenter.getInstance().removeIncomingCallListener(this);
 
         mProximitySensor = null;
     }
@@ -77,16 +80,23 @@
                     && mCall != null && PhoneNumberUtils.isVoiceMailNumber(mCall.getNumber())) {
                 getUi().displayDialpad(true);
             }
+        } else if (state == InCallState.INCOMING) {
+            getUi().displayDialpad(false);
+            mCall = null;
         } else {
             mCall = null;
         }
-
         updateUi(state, mCall);
 
         mPreviousState = state;
     }
 
     @Override
+    public void onIncomingCall(InCallState state, Call call) {
+        onStateChange(state, CallList.getInstance());
+    }
+
+    @Override
     public void onAudioMode(int mode) {
         if (getUi() != null) {
             getUi().setAudio(mode);