Merge "Add "retrying" text for CDMA redial calls." into klp-dev
diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java
index 21dad0c..e6c5bce 100644
--- a/InCallUI/src/com/android/incallui/CallCardFragment.java
+++ b/InCallUI/src/com/android/incallui/CallCardFragment.java
@@ -244,7 +244,7 @@
 
         // There are cases where we totally skip the animation, in which case remove the transition
         // animation here and restore it afterwards.
-        final boolean skipAnimation = (state == Call.State.DIALING
+        final boolean skipAnimation = (Call.State.isDialing(state)
                 || state == Call.State.DISCONNECTED || state == Call.State.DISCONNECTING);
         LayoutTransition transition = null;
         if (skipAnimation) {
@@ -370,10 +370,10 @@
 
         } else if (Call.State.ONHOLD == state) {
             callStateLabel = context.getString(R.string.card_title_on_hold);
-
         } else if (Call.State.DIALING == state) {
             callStateLabel = context.getString(R.string.card_title_dialing);
-
+        } else if (Call.State.REDIALING == state) {
+            callStateLabel = context.getString(R.string.card_title_redialing);
         } else if (Call.State.INCOMING == state || Call.State.CALL_WAITING == state) {
             callStateLabel = context.getString(R.string.card_title_incoming_call);
 
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index af7ee1b..4ff4d65 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -421,7 +421,7 @@
         if (mPrimary == null) {
             return false;
         }
-        return (mPrimary.getState() == Call.State.DIALING &&
+        return (Call.State.isDialing(mPrimary.getState()) &&
                 !TextUtils.isEmpty(mPrimary.getGatewayNumber()) &&
                 !TextUtils.isEmpty(mPrimary.getGatewayPackage()));
     }
diff --git a/InCallUI/src/com/android/incallui/CallList.java b/InCallUI/src/com/android/incallui/CallList.java
index 21f86f7..53288de 100644
--- a/InCallUI/src/com/android/incallui/CallList.java
+++ b/InCallUI/src/com/android/incallui/CallList.java
@@ -187,7 +187,11 @@
     }
 
     public Call getOutgoingCall() {
-        return getFirstCallWithState(Call.State.DIALING);
+        Call call = getFirstCallWithState(Call.State.DIALING);
+        if (call == null) {
+            call = getFirstCallWithState(Call.State.REDIALING);
+        }
+        return call;
     }
 
     public Call getActiveCall() {
@@ -231,7 +235,7 @@
         // TODO: should we switch to a simple list and pull the first one?
         Call result = getIncomingCall();
         if (result == null) {
-            result = getFirstCallWithState(Call.State.DIALING);
+            result = getOutgoingCall();
         }
         if (result == null) {
             result = getFirstCallWithState(Call.State.ACTIVE);
diff --git a/InCallUI/src/com/android/incallui/InCallPresenter.java b/InCallUI/src/com/android/incallui/InCallPresenter.java
index 4f687a8..47fe911 100644
--- a/InCallUI/src/com/android/incallui/InCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/InCallPresenter.java
@@ -488,7 +488,7 @@
             Log.i(this, "Start Full Screen in call UI");
             mStatusBarNotifier.updateNotificationAndLaunchIncomingCallUi(newState, mCallList);
         } else if (newState == InCallState.NO_CALLS) {
-            Log.i(this, "Hide in call UI");
+            Log.e(this, "Hide in call UI", new Exception());
 
             // The new state is the no calls state.  Tear everything down.
             if (mInCallActivity != null) {
diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
index b2593f9..89d0744 100644
--- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java
+++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
@@ -205,7 +205,7 @@
         // back. However, it can happen much later. Before we continue, we need to make sure that
         // the call being passed in is still the one we want to show in the notification.
         final Call call = getCallToShow(CallList.getInstance());
-        if (call.getCallId() != originalCall.getCallId()) {
+        if (call == null || call.getCallId() != originalCall.getCallId()) {
             return;
         }
 
@@ -251,8 +251,8 @@
 
         // Add hang up option for any active calls (active | onhold), outgoing calls (dialing).
         if (state == Call.State.ACTIVE ||
-                state == Call.State.DIALING ||
-                state == Call.State.ONHOLD) {
+                state == Call.State.ONHOLD ||
+                Call.State.isDialing(state)) {
             addHangupAction(builder);
         }
 
@@ -370,7 +370,7 @@
         } else if (call.getState() == Call.State.ONHOLD) {
             resId = R.string.notification_on_hold;
 
-        } else if (call.getState() == Call.State.DIALING) {
+        } else if (Call.State.isDialing(call.getState())) {
             resId = R.string.notification_dialing;
         }