diff --git a/core/api/current.txt b/core/api/current.txt index 79f5e69cf516e..a5f65fe88fb97 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -42001,18 +42001,6 @@ package android.telecom { method public android.telecom.CallScreeningService.CallResponse.Builder setSkipNotification(boolean); } - public abstract class CallStreamingService extends android.app.Service { - ctor public CallStreamingService(); - method @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent); - method public void onCallStreamingStarted(@NonNull android.telecom.StreamingCall); - method public void onCallStreamingStateChanged(int); - method public void onCallStreamingStopped(); - field public static final String SERVICE_INTERFACE = "android.telecom.CallStreamingService"; - field public static final int STREAMING_FAILED_ALREADY_STREAMING = 1; // 0x1 - field public static final int STREAMING_FAILED_NO_SENDER = 2; // 0x2 - field public static final int STREAMING_FAILED_SENDER_BINDING_ERROR = 3; // 0x3 - } - public abstract class Conference extends android.telecom.Conferenceable { ctor public Conference(android.telecom.PhoneAccountHandle); method public final boolean addConnection(android.telecom.Connection); @@ -42685,22 +42673,6 @@ package android.telecom { field @NonNull public static final android.os.Parcelable.Creator CREATOR; } - public final class StreamingCall implements android.os.Parcelable { - ctor public StreamingCall(@NonNull android.content.ComponentName, @NonNull String, @NonNull android.net.Uri, @NonNull android.os.Bundle); - method public int describeContents(); - method @NonNull public android.net.Uri getAddress(); - method @NonNull public android.content.ComponentName getComponentName(); - method @NonNull public String getDisplayName(); - method @NonNull public android.os.Bundle getExtras(); - method public int getState(); - method public void requestStreamingState(int); - method public void writeToParcel(@NonNull android.os.Parcel, int); - field @NonNull public static final android.os.Parcelable.Creator CREATOR; - field public static final int STATE_DISCONNECTED = 3; // 0x3 - field public static final int STATE_HOLDING = 2; // 0x2 - field public static final int STATE_STREAMING = 1; // 0x1 - } - public class TelecomManager { method public void acceptHandover(android.net.Uri, int, android.telecom.PhoneAccountHandle); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ANSWER_PHONE_CALLS, android.Manifest.permission.MODIFY_PHONE_STATE}) public void acceptRingingCall(); diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 6b1dd90eea193..8165afb1484ac 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -46,6 +46,7 @@ package android { field public static final String BIND_ATTENTION_SERVICE = "android.permission.BIND_ATTENTION_SERVICE"; field public static final String BIND_AUGMENTED_AUTOFILL_SERVICE = "android.permission.BIND_AUGMENTED_AUTOFILL_SERVICE"; field public static final String BIND_CALL_DIAGNOSTIC_SERVICE = "android.permission.BIND_CALL_DIAGNOSTIC_SERVICE"; + field public static final String BIND_CALL_STREAMING_SERVICE = "android.permission.BIND_CALL_STREAMING_SERVICE"; field public static final String BIND_CELL_BROADCAST_SERVICE = "android.permission.BIND_CELL_BROADCAST_SERVICE"; field @Deprecated public static final String BIND_CONNECTION_SERVICE = "android.permission.BIND_CONNECTION_SERVICE"; field public static final String BIND_CONTENT_CAPTURE_SERVICE = "android.permission.BIND_CONTENT_CAPTURE_SERVICE"; @@ -13307,6 +13308,19 @@ package android.telecom { method @NonNull @RequiresPermission(android.Manifest.permission.CAPTURE_AUDIO_OUTPUT) public android.telecom.CallScreeningService.CallResponse.Builder setShouldScreenCallViaAudioProcessing(boolean); } + public abstract class CallStreamingService extends android.app.Service { + ctor public CallStreamingService(); + method @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent); + method public void onCallStreamingStarted(@NonNull android.telecom.StreamingCall); + method public void onCallStreamingStateChanged(int); + method public void onCallStreamingStopped(); + field public static final String SERVICE_INTERFACE = "android.telecom.CallStreamingService"; + field public static final int STREAMING_FAILED_ALREADY_STREAMING = 1; // 0x1 + field public static final int STREAMING_FAILED_NO_SENDER = 2; // 0x2 + field public static final int STREAMING_FAILED_SENDER_BINDING_ERROR = 3; // 0x3 + field public static final int STREAMING_FAILED_UNKNOWN = 0; // 0x0 + } + public abstract class Conference extends android.telecom.Conferenceable { method @Deprecated public final android.telecom.AudioState getAudioState(); method @Deprecated public final long getConnectTimeMillis(); @@ -13530,6 +13544,22 @@ package android.telecom { method @Deprecated public android.content.ComponentName getPackageName(); } + public final class StreamingCall implements android.os.Parcelable { + ctor public StreamingCall(@NonNull android.content.ComponentName, @NonNull CharSequence, @NonNull android.net.Uri, @NonNull android.os.Bundle); + method public int describeContents(); + method @NonNull public android.net.Uri getAddress(); + method @NonNull public android.content.ComponentName getComponentName(); + method @NonNull public CharSequence getDisplayName(); + method @NonNull public android.os.Bundle getExtras(); + method public int getState(); + method public void requestStreamingState(int); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + field public static final int STATE_DISCONNECTED = 3; // 0x3 + field public static final int STATE_HOLDING = 2; // 0x2 + field public static final int STATE_STREAMING = 1; // 0x1 + } + public final class TelecomAnalytics implements android.os.Parcelable { ctor public TelecomAnalytics(java.util.List, java.util.List); method public int describeContents(); diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index bb3fc016ae374..5bb1559c3af8f 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -2824,6 +2824,13 @@ + + + + * Below is an example manifest registration for a {@code CallStreamingService}. + *
+ * {@code
+ * 
+ *     ...
+ *     
+ *         
+ *     
+ * 
+ * }
+ * 
+ * @hide */ +@SystemApi public abstract class CallStreamingService extends Service { /** * The {@link android.content.Intent} that must be declared as handled by the service. @@ -119,6 +132,13 @@ public abstract class CallStreamingService extends Service { } } + /** + * Call streaming request reject reason used with + * {@link CallEventCallback#onCallStreamingFailed(int)} to indicate that telecom is rejecting a + * call streaming request due to unknown reason. + */ + public static final int STREAMING_FAILED_UNKNOWN = 0; + /** * Call streaming request reject reason used with * {@link CallEventCallback#onCallStreamingFailed(int)} to indicate that telecom is rejecting a @@ -149,6 +169,7 @@ public abstract class CallStreamingService extends Service { */ @IntDef(prefix = {"STREAMING_FAILED"}, value = { + STREAMING_FAILED_UNKNOWN, STREAMING_FAILED_ALREADY_STREAMING, STREAMING_FAILED_NO_SENDER, STREAMING_FAILED_SENDER_BINDING_ERROR diff --git a/telecomm/java/android/telecom/StreamingCall.java b/telecomm/java/android/telecom/StreamingCall.java index 4b27dd6f1e599..d4f43225139b5 100644 --- a/telecomm/java/android/telecom/StreamingCall.java +++ b/telecomm/java/android/telecom/StreamingCall.java @@ -18,6 +18,7 @@ package android.telecom; import android.annotation.IntDef; import android.annotation.NonNull; +import android.annotation.SystemApi; import android.content.ComponentName; import android.net.Uri; import android.os.Bundle; @@ -30,7 +31,10 @@ import java.lang.annotation.RetentionPolicy; /** * Represents a voip call requested to stream to another device that the general streaming sender * app should present to the receiver. + * + * @hide */ +@SystemApi public final class StreamingCall implements Parcelable { /** * The state of a {@code StreamingCall} when newly created. General streaming sender should @@ -50,9 +54,12 @@ public final class StreamingCall implements Parcelable { */ public static final int STATE_DISCONNECTED = 3; + /** + * @hide + */ private StreamingCall(@NonNull Parcel in) { mComponentName = in.readParcelable(ComponentName.class.getClassLoader()); - mDisplayName = in.readString16NoHelper(); + mDisplayName = in.readCharSequence(); mAddress = in.readParcelable(Uri.class.getClassLoader()); mExtras = in.readBundle(); mState = in.readInt(); @@ -79,7 +86,7 @@ public final class StreamingCall implements Parcelable { @Override public void writeToParcel(@androidx.annotation.NonNull Parcel dest, int flags) { dest.writeParcelable(mComponentName, flags); - dest.writeString16NoHelper(mDisplayName); + dest.writeCharSequence(mDisplayName); dest.writeParcelable(mAddress, flags); dest.writeBundle(mExtras); dest.writeInt(mState); @@ -98,14 +105,14 @@ public final class StreamingCall implements Parcelable { public @interface StreamingCallState {} private final ComponentName mComponentName; - private final String mDisplayName; + private final CharSequence mDisplayName; private final Uri mAddress; private final Bundle mExtras; @StreamingCallState private int mState; private StreamingCallAdapter mAdapter = null; - public StreamingCall(@NonNull ComponentName componentName, @NonNull String displayName, + public StreamingCall(@NonNull ComponentName componentName, @NonNull CharSequence displayName, @NonNull Uri address, @NonNull Bundle extras) { mComponentName = componentName; mDisplayName = displayName; @@ -137,7 +144,7 @@ public final class StreamingCall implements Parcelable { * {@code StreamingCall} to the receiver side. */ @NonNull - public String getDisplayName() { + public CharSequence getDisplayName() { return mDisplayName; }