Loading telecomm/java/android/telecom/CallDiagnosticService.java +23 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import android.os.Handler; import android.os.HandlerExecutor; import android.os.IBinder; import android.os.RemoteException; import android.telephony.CallQuality; import android.util.ArrayMap; import com.android.internal.telecom.ICallDiagnosticService; Loading Loading @@ -111,6 +113,12 @@ public abstract class CallDiagnosticService extends Service { @NonNull DisconnectCause disconnectCause) throws RemoteException { handleCallDisconnected(callId, disconnectCause); } @Override public void callQualityChanged(String callId, CallQuality callQuality) throws RemoteException { handleCallQualityChanged(callId, callQuality); } } /** Loading Loading @@ -374,6 +382,21 @@ public abstract class CallDiagnosticService extends Service { getExecutor().execute(() -> onBluetoothCallQualityReportReceived(qualityReport)); } /** * Handles a change reported by Telecom to the call quality for a call. * @param callId the call ID the change applies to. * @param callQuality The new call quality. */ private void handleCallQualityChanged(@NonNull String callId, @NonNull CallQuality callQuality) { Log.i(this, "handleCallQualityChanged; call=%s, cq=%s", callId, callQuality); CallDiagnostics callDiagnostics; callDiagnostics = mDiagnosticCallByTelecomCallId.get(callId); if (callDiagnostics != null) { callDiagnostics.onCallQualityReceived(callQuality); } } /** * Handles a request from a {@link CallDiagnostics} to send a device to device message (received * via {@link CallDiagnostics#sendDeviceToDeviceMessage(int, int)}. Loading telecomm/java/android/telecom/Connection.java +18 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import android.os.ParcelFileDescriptor; import android.os.Parcelable; import android.os.RemoteException; import android.os.SystemClock; import android.telephony.CallQuality; import android.telephony.ims.ImsStreamMediaProfile; import android.util.ArraySet; import android.view.Surface; Loading Loading @@ -978,6 +979,23 @@ public abstract class Connection extends Conferenceable { public static final String EXTRA_DEVICE_TO_DEVICE_MESSAGE_VALUE = "android.telecom.extra.DEVICE_TO_DEVICE_MESSAGE_VALUE"; /** * Connection event used to communicate a {@link android.telephony.CallQuality} report from * telephony to Telecom for relaying to * {@link DiagnosticCall#onCallQualityReceived(CallQuality)}. * @hide */ public static final String EVENT_CALL_QUALITY_REPORT = "android.telecom.event.CALL_QUALITY_REPORT"; /** * Extra sent with {@link #EVENT_CALL_QUALITY_REPORT} containing the * {@link android.telephony.CallQuality} data. * @hide */ public static final String EXTRA_CALL_QUALITY_REPORT = "android.telecom.extra.CALL_QUALITY_REPORT"; // Flag controlling whether PII is emitted into the logs private static final boolean PII_DEBUG = Log.isLoggable(android.util.Log.DEBUG); Loading telecomm/java/com/android/internal/telecom/ICallDiagnosticService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.telecom.BluetoothCallQualityReport; import android.telecom.CallAudioState; import android.telecom.DisconnectCause; import android.telecom.ParcelableCall; import android.telephony.CallQuality; import com.android.internal.telecom.ICallDiagnosticServiceAdapter; /** Loading @@ -34,6 +35,7 @@ oneway interface ICallDiagnosticService { void updateCallAudioState(in CallAudioState callAudioState); void removeDiagnosticCall(in String callId); void receiveDeviceToDeviceMessage(in String callId, int message, int value); void callQualityChanged(in String callId, in CallQuality callQuality); void receiveBluetoothCallQualityReport(in BluetoothCallQualityReport qualityReport); void notifyCallDisconnected(in String callId, in DisconnectCause disconnectCause); } Loading
telecomm/java/android/telecom/CallDiagnosticService.java +23 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ import android.os.Handler; import android.os.HandlerExecutor; import android.os.IBinder; import android.os.RemoteException; import android.telephony.CallQuality; import android.util.ArrayMap; import com.android.internal.telecom.ICallDiagnosticService; Loading Loading @@ -111,6 +113,12 @@ public abstract class CallDiagnosticService extends Service { @NonNull DisconnectCause disconnectCause) throws RemoteException { handleCallDisconnected(callId, disconnectCause); } @Override public void callQualityChanged(String callId, CallQuality callQuality) throws RemoteException { handleCallQualityChanged(callId, callQuality); } } /** Loading Loading @@ -374,6 +382,21 @@ public abstract class CallDiagnosticService extends Service { getExecutor().execute(() -> onBluetoothCallQualityReportReceived(qualityReport)); } /** * Handles a change reported by Telecom to the call quality for a call. * @param callId the call ID the change applies to. * @param callQuality The new call quality. */ private void handleCallQualityChanged(@NonNull String callId, @NonNull CallQuality callQuality) { Log.i(this, "handleCallQualityChanged; call=%s, cq=%s", callId, callQuality); CallDiagnostics callDiagnostics; callDiagnostics = mDiagnosticCallByTelecomCallId.get(callId); if (callDiagnostics != null) { callDiagnostics.onCallQualityReceived(callQuality); } } /** * Handles a request from a {@link CallDiagnostics} to send a device to device message (received * via {@link CallDiagnostics#sendDeviceToDeviceMessage(int, int)}. Loading
telecomm/java/android/telecom/Connection.java +18 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import android.os.ParcelFileDescriptor; import android.os.Parcelable; import android.os.RemoteException; import android.os.SystemClock; import android.telephony.CallQuality; import android.telephony.ims.ImsStreamMediaProfile; import android.util.ArraySet; import android.view.Surface; Loading Loading @@ -978,6 +979,23 @@ public abstract class Connection extends Conferenceable { public static final String EXTRA_DEVICE_TO_DEVICE_MESSAGE_VALUE = "android.telecom.extra.DEVICE_TO_DEVICE_MESSAGE_VALUE"; /** * Connection event used to communicate a {@link android.telephony.CallQuality} report from * telephony to Telecom for relaying to * {@link DiagnosticCall#onCallQualityReceived(CallQuality)}. * @hide */ public static final String EVENT_CALL_QUALITY_REPORT = "android.telecom.event.CALL_QUALITY_REPORT"; /** * Extra sent with {@link #EVENT_CALL_QUALITY_REPORT} containing the * {@link android.telephony.CallQuality} data. * @hide */ public static final String EXTRA_CALL_QUALITY_REPORT = "android.telecom.extra.CALL_QUALITY_REPORT"; // Flag controlling whether PII is emitted into the logs private static final boolean PII_DEBUG = Log.isLoggable(android.util.Log.DEBUG); Loading
telecomm/java/com/android/internal/telecom/ICallDiagnosticService.aidl +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.telecom.BluetoothCallQualityReport; import android.telecom.CallAudioState; import android.telecom.DisconnectCause; import android.telecom.ParcelableCall; import android.telephony.CallQuality; import com.android.internal.telecom.ICallDiagnosticServiceAdapter; /** Loading @@ -34,6 +35,7 @@ oneway interface ICallDiagnosticService { void updateCallAudioState(in CallAudioState callAudioState); void removeDiagnosticCall(in String callId); void receiveDeviceToDeviceMessage(in String callId, int message, int value); void callQualityChanged(in String callId, in CallQuality callQuality); void receiveBluetoothCallQualityReport(in BluetoothCallQualityReport qualityReport); void notifyCallDisconnected(in String callId, in DisconnectCause disconnectCause); }