Merge "Prevent NewOutgoingCallBroadcast from being sent for self-managed calls."
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 7485841..81d6251 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -1229,6 +1229,9 @@
             if (targetPhoneAccountHandle != null) {
                 if (!accounts.contains(targetPhoneAccountHandle)) {
                     targetPhoneAccountHandle = null;
+                } else {
+                    // The target phone account is valid and was found.
+                    return Arrays.asList(targetPhoneAccountHandle);
                 }
             }
 
diff --git a/tests/src/com/android/server/telecom/tests/CallsManagerTest.java b/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
index 5e7eb50..02d8222 100644
--- a/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
@@ -315,6 +315,25 @@
         assertTrue(accounts.contains(SIM_1_HANDLE));
     }
 
+    /**
+     * Tests that we will use the provided target phone account if it exists.
+     * @throws Exception
+     */
+    @MediumTest
+    public void testUseSpecifiedAccount() throws Exception {
+        when(mPhoneAccountRegistrar.getOutgoingPhoneAccountForScheme(any(), any())).thenReturn(
+                null);
+        when(mPhoneAccountRegistrar.getCallCapablePhoneAccounts(any(), anyBoolean(),
+                any(), anyInt())).thenReturn(
+                new ArrayList<>(Arrays.asList(SIM_1_HANDLE, SIM_2_HANDLE)));
+
+        List<PhoneAccountHandle> accounts = mCallsManager.findOutgoingCallPhoneAccount(
+                SIM_2_HANDLE, TEST_ADDRESS, false /* isVideo */, null /* userHandle */);
+
+        assertEquals(1, accounts.size());
+        assertTrue(accounts.contains(SIM_2_HANDLE));
+    }
+
     private void setupMsimAccounts() {
         TelephonyManager mockTelephonyManager = mComponentContextFixture.getTelephonyManager();
         when(mockTelephonyManager.getMultiSimConfiguration()).thenReturn(