Loading flags/telecom_incallservice_flags.aconfig +8 −0 Original line number Diff line number Diff line Loading @@ -24,3 +24,11 @@ flag { description: "Binding/Unbinding to BluetoothInCallServices in proper time to improve call audio" bug: "306395598" } # OWNER=pmadapurmath TARGET=24Q4 flag { name: "on_call_endpoint_changed_ics_on_connected" namespace: "telecom" description: "Ensure onCallEndpointChanged is sent to ICS when it connects." bug: "348297436" } src/com/android/server/telecom/InCallController.java +4 −0 Original line number Diff line number Diff line Loading @@ -2587,6 +2587,10 @@ public class InCallController extends CallsManagerListenerBase implements try { inCallService.onCallAudioStateChanged(mCallsManager.getAudioState()); inCallService.onCanAddCallChanged(mCallsManager.canAddCall()); if (mFeatureFlags.onCallEndpointChangedIcsOnConnected()) { inCallService.onCallEndpointChanged(mCallsManager.getCallEndpointController() .getCurrentCallEndpoint()); } } catch (RemoteException ignored) { } // Don't complete the binding future for non-ui incalls Loading tests/src/com/android/server/telecom/tests/InCallControllerTests.java +7 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ import android.os.UserHandle; import android.os.UserManager; import android.permission.PermissionCheckerManager; import android.telecom.CallAudioState; import android.telecom.CallEndpoint; import android.telecom.InCallService; import android.telecom.ParcelableCall; import android.telecom.PhoneAccountHandle; Loading @@ -95,6 +96,7 @@ import com.android.internal.telecom.IInCallService; import com.android.server.telecom.Analytics; import com.android.server.telecom.AnomalyReporterAdapter; import com.android.server.telecom.Call; import com.android.server.telecom.CallEndpointController; import com.android.server.telecom.CallsManager; import com.android.server.telecom.CarModeTracker; import com.android.server.telecom.ClockProxy; Loading Loading @@ -157,6 +159,7 @@ public class InCallControllerTests extends TelecomTestCase { @Mock UserManager mMockUserManager; @Mock Context mMockCreateContextAsUser; @Mock UserManager mMockCurrentUserManager; @Mock CallEndpointController mMockCallEndpointController; @Rule public TestRule compatChangeRule = new PlatformCompatChangeRule(); Loading Loading @@ -307,6 +310,10 @@ public class InCallControllerTests extends TelecomTestCase { .thenReturn(PackageManager.PERMISSION_DENIED); when(mMockCallsManager.getAudioState()).thenReturn(new CallAudioState(false, 0, 0)); when(mFeatureFlags.onCallEndpointChangedIcsOnConnected()).thenReturn(true); when(mMockCallsManager.getCallEndpointController()).thenReturn(mMockCallEndpointController); when(mMockCallEndpointController.getCurrentCallEndpoint()) .thenReturn(new CallEndpoint("Earpiece", 1)); when(mMockContext.getSystemService(eq(Context.USER_SERVICE))).thenReturn(mMockUserManager); when(mMockContext.getSystemService(eq(UserManager.class))) Loading Loading
flags/telecom_incallservice_flags.aconfig +8 −0 Original line number Diff line number Diff line Loading @@ -24,3 +24,11 @@ flag { description: "Binding/Unbinding to BluetoothInCallServices in proper time to improve call audio" bug: "306395598" } # OWNER=pmadapurmath TARGET=24Q4 flag { name: "on_call_endpoint_changed_ics_on_connected" namespace: "telecom" description: "Ensure onCallEndpointChanged is sent to ICS when it connects." bug: "348297436" }
src/com/android/server/telecom/InCallController.java +4 −0 Original line number Diff line number Diff line Loading @@ -2587,6 +2587,10 @@ public class InCallController extends CallsManagerListenerBase implements try { inCallService.onCallAudioStateChanged(mCallsManager.getAudioState()); inCallService.onCanAddCallChanged(mCallsManager.canAddCall()); if (mFeatureFlags.onCallEndpointChangedIcsOnConnected()) { inCallService.onCallEndpointChanged(mCallsManager.getCallEndpointController() .getCurrentCallEndpoint()); } } catch (RemoteException ignored) { } // Don't complete the binding future for non-ui incalls Loading
tests/src/com/android/server/telecom/tests/InCallControllerTests.java +7 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ import android.os.UserHandle; import android.os.UserManager; import android.permission.PermissionCheckerManager; import android.telecom.CallAudioState; import android.telecom.CallEndpoint; import android.telecom.InCallService; import android.telecom.ParcelableCall; import android.telecom.PhoneAccountHandle; Loading @@ -95,6 +96,7 @@ import com.android.internal.telecom.IInCallService; import com.android.server.telecom.Analytics; import com.android.server.telecom.AnomalyReporterAdapter; import com.android.server.telecom.Call; import com.android.server.telecom.CallEndpointController; import com.android.server.telecom.CallsManager; import com.android.server.telecom.CarModeTracker; import com.android.server.telecom.ClockProxy; Loading Loading @@ -157,6 +159,7 @@ public class InCallControllerTests extends TelecomTestCase { @Mock UserManager mMockUserManager; @Mock Context mMockCreateContextAsUser; @Mock UserManager mMockCurrentUserManager; @Mock CallEndpointController mMockCallEndpointController; @Rule public TestRule compatChangeRule = new PlatformCompatChangeRule(); Loading Loading @@ -307,6 +310,10 @@ public class InCallControllerTests extends TelecomTestCase { .thenReturn(PackageManager.PERMISSION_DENIED); when(mMockCallsManager.getAudioState()).thenReturn(new CallAudioState(false, 0, 0)); when(mFeatureFlags.onCallEndpointChangedIcsOnConnected()).thenReturn(true); when(mMockCallsManager.getCallEndpointController()).thenReturn(mMockCallEndpointController); when(mMockCallEndpointController.getCurrentCallEndpoint()) .thenReturn(new CallEndpoint("Earpiece", 1)); when(mMockContext.getSystemService(eq(Context.USER_SERVICE))).thenReturn(mMockUserManager); when(mMockContext.getSystemService(eq(UserManager.class))) Loading