diff options
| author | 2023-01-17 18:14:36 -0800 | |
|---|---|---|
| committer | 2023-02-06 21:10:01 +0000 | |
| commit | acd4dad5970699150be99e7edfb6edaf0545b210 (patch) | |
| tree | 67c6374518dfdff4c2fd0d3cd9952f101cd7e8ab /telecomm/java | |
| parent | da8c7655e478a04a6578fbfa0559e7583d13a7cb (diff) | |
Address Call Streaming API review comments.
1. Make CallStreamingService and StreamingCall SystemApi and hide
2. Add android.permission.BIND_STREAMING_SERVICE
3. Change StreamingCall#DisplayName to CharSequence
4. Hide StreamingCall constructor
5. Fix CallControl#startCallStreaming doc
Bug: 265304561
Test: build; add cts
API-Coverage-Bug: 268061643
Change-Id: I29771cfbf60553eb8325e40b2cd11c5828a445e4
Diffstat (limited to 'telecomm/java')
| -rw-r--r-- | telecomm/java/android/telecom/CallControl.java | 4 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/CallStreamingService.java | 27 | ||||
| -rw-r--r-- | telecomm/java/android/telecom/StreamingCall.java | 17 |
3 files changed, 38 insertions, 10 deletions
diff --git a/telecomm/java/android/telecom/CallControl.java b/telecomm/java/android/telecom/CallControl.java index f3c91f664dee..2135e276e591 100644 --- a/telecomm/java/android/telecom/CallControl.java +++ b/telecomm/java/android/telecom/CallControl.java @@ -197,10 +197,10 @@ public final class CallControl { * of the requested operation. * * {@link OutcomeReceiver#onResult} will be called if Telecom has successfully - * rejected the incoming call. + * started the call streaming. * * {@link OutcomeReceiver#onError} will be called if Telecom has failed to - * reject the incoming call. A {@link CallException} will be passed that + * start the call streaming. A {@link CallException} will be passed that * details why the operation failed. */ public void startCallStreaming(@CallbackExecutor @NonNull Executor executor, diff --git a/telecomm/java/android/telecom/CallStreamingService.java b/telecomm/java/android/telecom/CallStreamingService.java index 7f1112830222..3f538a7f262d 100644 --- a/telecomm/java/android/telecom/CallStreamingService.java +++ b/telecomm/java/android/telecom/CallStreamingService.java @@ -19,6 +19,7 @@ package android.telecom; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.SdkConstant; +import android.annotation.SystemApi; import android.app.Service; import android.content.Intent; import android.os.Handler; @@ -38,10 +39,22 @@ import java.lang.annotation.RetentionPolicy; /** * This service is implemented by an app that wishes to provide functionality for a general call * streaming sender for voip calls. - * - * TODO: add doc of how to be the general streaming sender - * + * <p> + * Below is an example manifest registration for a {@code CallStreamingService}. + * <pre> + * {@code + * <service android:name=".EgCallStreamingService" + * android:permission="android.permission.BIND_CALL_STREAMING_SERVICE" > + * ... + * <intent-filter> + * <action android:name="android.telecom.CallStreamingService" /> + * </intent-filter> + * </service> + * } + * </pre> + * @hide */ +@SystemApi public abstract class CallStreamingService extends Service { /** * The {@link android.content.Intent} that must be declared as handled by the service. @@ -122,6 +135,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 * call streaming request because there's an ongoing streaming call on this device. */ public static final int STREAMING_FAILED_ALREADY_STREAMING = 1; @@ -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 4b27dd6f1e59..d4f43225139b 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; } |