Merge "Add deadzone to end call button." into klp-dev
diff --git a/InCallUI/res/drawable-hdpi/list_pressed_holo_dark.9.png b/InCallUI/res/drawable-hdpi/list_pressed_holo_dark.9.png
index 3c52029..596accb 100644
--- a/InCallUI/res/drawable-hdpi/list_pressed_holo_dark.9.png
+++ b/InCallUI/res/drawable-hdpi/list_pressed_holo_dark.9.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/list_pressed_holo_dark.9.png b/InCallUI/res/drawable-mdpi/list_pressed_holo_dark.9.png
index c231328..fd0e8d7 100644
--- a/InCallUI/res/drawable-mdpi/list_pressed_holo_dark.9.png
+++ b/InCallUI/res/drawable-mdpi/list_pressed_holo_dark.9.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/list_pressed_holo_dark.9.png b/InCallUI/res/drawable-xhdpi/list_pressed_holo_dark.9.png
index 4f85510..29037a0 100644
--- a/InCallUI/res/drawable-xhdpi/list_pressed_holo_dark.9.png
+++ b/InCallUI/res/drawable-xhdpi/list_pressed_holo_dark.9.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/list_pressed_holo_dark.9.png b/InCallUI/res/drawable-xxhdpi/list_pressed_holo_dark.9.png
index e751a60..d4952ea 100644
--- a/InCallUI/res/drawable-xxhdpi/list_pressed_holo_dark.9.png
+++ b/InCallUI/res/drawable-xxhdpi/list_pressed_holo_dark.9.png
Binary files differ
diff --git a/InCallUI/src/com/android/incallui/ConferenceManagerPresenter.java b/InCallUI/src/com/android/incallui/ConferenceManagerPresenter.java
index 041614d..d0f62d7 100644
--- a/InCallUI/src/com/android/incallui/ConferenceManagerPresenter.java
+++ b/InCallUI/src/com/android/incallui/ConferenceManagerPresenter.java
@@ -21,6 +21,7 @@
 import com.android.incallui.ContactInfoCache.ContactCacheEntry;
 import com.android.incallui.InCallPresenter.InCallState;
 import com.android.incallui.InCallPresenter.InCallStateListener;
+import com.android.services.telephony.common.Call;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableSortedSet;
@@ -57,11 +58,13 @@
     public void onStateChange(InCallState state, CallList callList) {
         if (getUi().isFragmentVisible()) {
             Log.v(this, "onStateChange" + state);
-            if (state == InCallState.INCALL && callList.getActiveOrBackgroundCall() != null &&
-                    callList.getActiveOrBackgroundCall().isConferenceCall()) {
-                Log.v(this, "Number of existing calls is " +
-                        String.valueOf(callList.getActiveCall().getChildCallIds().size()));
-                update(callList);
+            if (state == InCallState.INCALL) {
+                final Call call = callList.getActiveOrBackgroundCall();
+                if (call != null && call.isConferenceCall()) {
+                    Log.v(this, "Number of existing calls is " +
+                            String.valueOf(call.getChildCallIds().size()));
+                    update(callList);
+                }
             } else {
                 getUi().setVisible(false);
             }
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java
index 08766d2..32d1f55 100644
--- a/InCallUI/src/com/android/incallui/InCallActivity.java
+++ b/InCallUI/src/com/android/incallui/InCallActivity.java
@@ -370,6 +370,14 @@
         toast.show();
     }
 
+    /**
+     * Simulates a user click to hide the dialpad. This will update the UI to show the call card,
+     * update the checked state of the dialpad button, and update the proximity sensor state.
+     */
+    public void hideDialpadForDisconnect() {
+        mCallButtonFragment.displayDialpad(false);
+    }
+
     public void displayDialpad(boolean showDialpad) {
         if (showDialpad) {
             mDialpadFragment.setVisible(true);
diff --git a/InCallUI/src/com/android/incallui/InCallPresenter.java b/InCallUI/src/com/android/incallui/InCallPresenter.java
index 499dea0..541661c 100644
--- a/InCallUI/src/com/android/incallui/InCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/InCallPresenter.java
@@ -246,6 +246,7 @@
      */
     @Override
     public void onDisconnect(Call call) {
+        mInCallActivity.hideDialpadForDisconnect();
         maybeShowErrorDialogOnDisconnect(call);
 
         // We need to do the run the same code as onCallListChange.