Read from correct extras when logging call composer

Read from a call's intent extras instead since that's where the
attachments will be indicated.

Bug: 180448171
Test: manual, atest CallLogManagerTest
Change-Id: If97f48a425457fecc6b50c5e893cc4cad5f78854
diff --git a/src/com/android/server/telecom/CallLogManager.java b/src/com/android/server/telecom/CallLogManager.java
index e848dd4..0ec2362 100755
--- a/src/com/android/server/telecom/CallLogManager.java
+++ b/src/com/android/server/telecom/CallLogManager.java
@@ -342,20 +342,29 @@
                 paramBuilder.setAddForAllUsers(accountHandle.getUserHandle() == null);
             }
         }
-        if (call.getExtras() != null) {
-            if (call.getExtras().containsKey(TelecomManager.EXTRA_PRIORITY)) {
-                paramBuilder.setPriority(call.getExtras().getInt(TelecomManager.EXTRA_PRIORITY));
+        if (call.getIntentExtras() != null) {
+            if (call.getIntentExtras().containsKey(TelecomManager.EXTRA_PRIORITY)) {
+                paramBuilder.setPriority(call.getIntentExtras()
+                        .getInt(TelecomManager.EXTRA_PRIORITY));
             }
-            if (call.getExtras().containsKey(TelecomManager.EXTRA_CALL_SUBJECT)) {
-                paramBuilder.setSubject(call.getExtras()
+            if (call.getIntentExtras().containsKey(TelecomManager.EXTRA_CALL_SUBJECT)) {
+                paramBuilder.setSubject(call.getIntentExtras()
                         .getString(TelecomManager.EXTRA_CALL_SUBJECT));
             }
-            if (call.getExtras().containsKey(TelecomManager.EXTRA_PICTURE_URI)) {
+            if (call.getIntentExtras().containsKey(TelecomManager.EXTRA_PICTURE_URI)) {
+                paramBuilder.setPictureUri(call.getIntentExtras()
+                        .getParcelable(TelecomManager.EXTRA_PICTURE_URI));
+            }
+            // The picture uri can end up either in extras or in intent extras due to how these
+            // two bundles are set. For incoming calls they're in extras, but for outgoing calls
+            // they're in intentExtras.
+            if (call.getExtras() != null
+                    && call.getExtras().containsKey(TelecomManager.EXTRA_PICTURE_URI)) {
                 paramBuilder.setPictureUri(call.getExtras()
                         .getParcelable(TelecomManager.EXTRA_PICTURE_URI));
             }
-            if (call.getExtras().containsKey(TelecomManager.EXTRA_LOCATION)) {
-                Location l = call.getExtras().getParcelable(TelecomManager.EXTRA_LOCATION);
+            if (call.getIntentExtras().containsKey(TelecomManager.EXTRA_LOCATION)) {
+                Location l = call.getIntentExtras().getParcelable(TelecomManager.EXTRA_LOCATION);
                 if (l != null) {
                     paramBuilder.setLatitude(l.getLatitude());
                     paramBuilder.setLongitude(l.getLongitude());
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 53e6084..ff68e7a 100755
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -775,17 +775,17 @@
             int attachmentMask = result.mCallScreeningResponse.getCallComposerAttachmentsToShow();
             if ((attachmentMask
                     & CallScreeningService.CallResponse.CALL_COMPOSER_ATTACHMENT_LOCATION) == 0) {
-                incomingCall.getExtras().remove(TelecomManager.EXTRA_LOCATION);
+                incomingCall.getIntentExtras().remove(TelecomManager.EXTRA_LOCATION);
             }
 
             if ((attachmentMask
                     & CallScreeningService.CallResponse.CALL_COMPOSER_ATTACHMENT_SUBJECT) == 0) {
-                incomingCall.getExtras().remove(TelecomManager.EXTRA_CALL_SUBJECT);
+                incomingCall.getIntentExtras().remove(TelecomManager.EXTRA_CALL_SUBJECT);
             }
 
             if ((attachmentMask
                     & CallScreeningService.CallResponse.CALL_COMPOSER_ATTACHMENT_PRIORITY) == 0) {
-                incomingCall.getExtras().remove(TelecomManager.EXTRA_PRIORITY);
+                incomingCall.getIntentExtras().remove(TelecomManager.EXTRA_PRIORITY);
             }
         }
 
diff --git a/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java b/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java
index 62ff257..b9f5667 100644
--- a/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java
@@ -852,7 +852,7 @@
         extras.putString(TelecomManager.EXTRA_CALL_SUBJECT, subject);
         extras.putParcelable(TelecomManager.EXTRA_LOCATION, location);
         extras.putParcelable(TelecomManager.EXTRA_PICTURE_URI, fakeProviderUri);
-        when(fakeCall.getExtras()).thenReturn(extras);
+        when(fakeCall.getIntentExtras()).thenReturn(extras);
 
         mCallLogManager.onCallStateChanged(fakeCall, CallState.ACTIVE,
                 CallState.DISCONNECTED);