Merge "Forward CallActivity invocations to the primary user." into lmp-dev
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 4174e42..f36b090 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -34,7 +34,7 @@
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Editar respostas rápidas"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
     <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Resposta rápida"</string>
-    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Redefinir aplicativo padrão"</string>
+    <string name="respond_via_sms_menu_reset_default_activity" msgid="1461742052902053466">"Redefinir app padrão"</string>
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Mensagem enviada para <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
     <string name="outgoing_call_not_allowed" msgid="1434784869685645427">"Este usuário não tem permissão para fazer chamadas não emergenciais pelo smartphone"</string>
     <string name="outgoing_call_error_no_phone_number_supplied" msgid="4987143284589568716">"Chamada não enviada: nenhum número válido foi inserido."</string>
diff --git a/src/com/android/server/telecom/Call.java b/src/com/android/server/telecom/Call.java
index 7d4223a..9588d47 100644
--- a/src/com/android/server/telecom/Call.java
+++ b/src/com/android/server/telecom/Call.java
@@ -826,7 +826,7 @@
      */
     Uri getContactUri() {
         if (mCallerInfo == null || !mCallerInfo.contactExists) {
-            return null;
+            return getHandle();
         }
         return Contacts.getLookupUri(mCallerInfo.contactIdOrZero, mCallerInfo.lookupKey);
     }
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 6135279..dc84db3 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -384,7 +384,7 @@
             return null;
         }
 
-        if (phoneAccountHandle == null && !isEmergencyCall) {
+        if (phoneAccountHandle == null && accounts.size() > 1 && !isEmergencyCall) {
             // This is the state where the user is expected to select an account
             call.setState(CallState.PRE_DIAL_WAIT);
             extras.putParcelableList(android.telecom.Call.AVAILABLE_PHONE_ACCOUNTS, accounts);
@@ -779,6 +779,14 @@
             return false;
         }
 
+        // Use canManageConference as a mechanism to check if the call is CDMA.
+        // Disable "Add Call" for CDMA calls which are conference calls.
+        boolean canManageConference = PhoneCapabilities.MANAGE_CONFERENCE
+                == (call.getCallCapabilities() & PhoneCapabilities.MANAGE_CONFERENCE);
+        if (call.isConference() && !canManageConference) {
+            return false;
+        }
+
         // Loop through all the other calls and there exists a top level (has no parent) call
         // that is not the specified call, return false.
         for (Call otherCall : mCalls) {
diff --git a/src/com/android/server/telecom/InCallToneMonitor.java b/src/com/android/server/telecom/InCallToneMonitor.java
index d25c42a..b71a102 100644
--- a/src/com/android/server/telecom/InCallToneMonitor.java
+++ b/src/com/android/server/telecom/InCallToneMonitor.java
@@ -45,7 +45,7 @@
         if (newState == CallState.DISCONNECTED) {
             int toneToPlay = InCallTonePlayer.TONE_INVALID;
 
-            Log.v(this, "Disconnect cause: %d.", call.getDisconnectCause());
+            Log.v(this, "Disconnect cause: %s.", call.getDisconnectCause());
 
             switch(call.getDisconnectCause().getTone()) {
                 case ToneGenerator.TONE_SUP_BUSY: