Loading api/test-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -2738,6 +2738,10 @@ package android.telecom { method public void exitBackgroundAudioProcessing(boolean); } public static class Call.Details { method public String getTelecomCallId(); } public final class CallAudioState implements android.os.Parcelable { ctor public CallAudioState(boolean, int, int, @Nullable android.bluetooth.BluetoothDevice, @NonNull java.util.Collection<android.bluetooth.BluetoothDevice>); } Loading telecomm/java/android/telecom/Call.java +4 −0 Original line number Diff line number Diff line Loading @@ -728,6 +728,7 @@ public final class Call { } /** {@hide} */ @TestApi public String getTelecomCallId() { return mTelecomCallId; } Loading Loading @@ -2137,6 +2138,9 @@ public final class Call { } int state = parcelableCall.getState(); if (mTargetSdkVersion < Phone.SDK_VERSION_R && state == Call.STATE_SIMULATED_RINGING) { state = Call.STATE_RINGING; } boolean stateChanged = mState != state; if (stateChanged) { mState = state; Loading telecomm/java/android/telecom/CallScreeningService.java +2 −0 Original line number Diff line number Diff line Loading @@ -374,6 +374,8 @@ public abstract class CallScreeningService extends Service { new ComponentName(getPackageName(), getClass().getName())); } else if (response.getSilenceCall()) { mCallScreeningAdapter.silenceCall(callDetails.getTelecomCallId()); } else if (response.getShouldScreenCallFurther()) { mCallScreeningAdapter.screenCallFurther(callDetails.getTelecomCallId()); } else { mCallScreeningAdapter.allowCall(callDetails.getTelecomCallId()); } Loading telecomm/java/android/telecom/Phone.java +33 −8 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.annotation.UnsupportedAppUsage; import android.bluetooth.BluetoothDevice; import android.os.Build; import android.os.Bundle; import android.os.RemoteException; import android.util.ArrayMap; import java.util.Collections; Loading Loading @@ -111,6 +110,10 @@ public final class Phone { public void onSilenceRinger(Phone phone) { } } // TODO: replace all usages of this with the actual R constant from Build.VERSION_CODES /** @hide */ public static final int SDK_VERSION_R = 30; // A Map allows us to track each Call by its Telecom-specified call ID private final Map<String, Call> mCallByTelecomCallId = new ArrayMap<>(); Loading Loading @@ -143,6 +146,12 @@ public final class Phone { } final void internalAddCall(ParcelableCall parcelableCall) { if (mTargetSdkVersion < SDK_VERSION_R && parcelableCall.getState() == Call.STATE_AUDIO_PROCESSING) { Log.i(this, "Skipping adding audio processing call for sdk compatibility"); return; } Call call = new Call(this, parcelableCall.getId(), mInCallAdapter, parcelableCall.getState(), mCallingPackage, mTargetSdkVersion); mCallByTelecomCallId.put(parcelableCall.getId(), call); Loading @@ -164,10 +173,26 @@ public final class Phone { } final void internalUpdateCall(ParcelableCall parcelableCall) { if (mTargetSdkVersion < SDK_VERSION_R && parcelableCall.getState() == Call.STATE_AUDIO_PROCESSING) { Log.i(this, "removing audio processing call during update for sdk compatibility"); Call call = mCallByTelecomCallId.get(parcelableCall.getId()); if (call != null) { internalRemoveCall(call); } return; } Call call = mCallByTelecomCallId.get(parcelableCall.getId()); if (call != null) { checkCallTree(parcelableCall); call.internalUpdate(parcelableCall, mCallByTelecomCallId); } else { // This call may have come out of audio processing. Try adding it if our target sdk // version is low enough. if (mTargetSdkVersion < SDK_VERSION_R) { internalAddCall(parcelableCall); } } } Loading Loading
api/test-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -2738,6 +2738,10 @@ package android.telecom { method public void exitBackgroundAudioProcessing(boolean); } public static class Call.Details { method public String getTelecomCallId(); } public final class CallAudioState implements android.os.Parcelable { ctor public CallAudioState(boolean, int, int, @Nullable android.bluetooth.BluetoothDevice, @NonNull java.util.Collection<android.bluetooth.BluetoothDevice>); } Loading
telecomm/java/android/telecom/Call.java +4 −0 Original line number Diff line number Diff line Loading @@ -728,6 +728,7 @@ public final class Call { } /** {@hide} */ @TestApi public String getTelecomCallId() { return mTelecomCallId; } Loading Loading @@ -2137,6 +2138,9 @@ public final class Call { } int state = parcelableCall.getState(); if (mTargetSdkVersion < Phone.SDK_VERSION_R && state == Call.STATE_SIMULATED_RINGING) { state = Call.STATE_RINGING; } boolean stateChanged = mState != state; if (stateChanged) { mState = state; Loading
telecomm/java/android/telecom/CallScreeningService.java +2 −0 Original line number Diff line number Diff line Loading @@ -374,6 +374,8 @@ public abstract class CallScreeningService extends Service { new ComponentName(getPackageName(), getClass().getName())); } else if (response.getSilenceCall()) { mCallScreeningAdapter.silenceCall(callDetails.getTelecomCallId()); } else if (response.getShouldScreenCallFurther()) { mCallScreeningAdapter.screenCallFurther(callDetails.getTelecomCallId()); } else { mCallScreeningAdapter.allowCall(callDetails.getTelecomCallId()); } Loading
telecomm/java/android/telecom/Phone.java +33 −8 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.annotation.UnsupportedAppUsage; import android.bluetooth.BluetoothDevice; import android.os.Build; import android.os.Bundle; import android.os.RemoteException; import android.util.ArrayMap; import java.util.Collections; Loading Loading @@ -111,6 +110,10 @@ public final class Phone { public void onSilenceRinger(Phone phone) { } } // TODO: replace all usages of this with the actual R constant from Build.VERSION_CODES /** @hide */ public static final int SDK_VERSION_R = 30; // A Map allows us to track each Call by its Telecom-specified call ID private final Map<String, Call> mCallByTelecomCallId = new ArrayMap<>(); Loading Loading @@ -143,6 +146,12 @@ public final class Phone { } final void internalAddCall(ParcelableCall parcelableCall) { if (mTargetSdkVersion < SDK_VERSION_R && parcelableCall.getState() == Call.STATE_AUDIO_PROCESSING) { Log.i(this, "Skipping adding audio processing call for sdk compatibility"); return; } Call call = new Call(this, parcelableCall.getId(), mInCallAdapter, parcelableCall.getState(), mCallingPackage, mTargetSdkVersion); mCallByTelecomCallId.put(parcelableCall.getId(), call); Loading @@ -164,10 +173,26 @@ public final class Phone { } final void internalUpdateCall(ParcelableCall parcelableCall) { if (mTargetSdkVersion < SDK_VERSION_R && parcelableCall.getState() == Call.STATE_AUDIO_PROCESSING) { Log.i(this, "removing audio processing call during update for sdk compatibility"); Call call = mCallByTelecomCallId.get(parcelableCall.getId()); if (call != null) { internalRemoveCall(call); } return; } Call call = mCallByTelecomCallId.get(parcelableCall.getId()); if (call != null) { checkCallTree(parcelableCall); call.internalUpdate(parcelableCall, mCallByTelecomCallId); } else { // This call may have come out of audio processing. Try adding it if our target sdk // version is low enough. if (mTargetSdkVersion < SDK_VERSION_R) { internalAddCall(parcelableCall); } } } Loading