summaryrefslogtreecommitdiff
path: root/telecomm/java
diff options
context:
space:
mode:
author Grace Jia <xiaotonj@google.com> 2023-01-17 18:14:36 -0800
committer Tyler Gunn <tgunn@google.com> 2023-02-06 21:10:01 +0000
commitacd4dad5970699150be99e7edfb6edaf0545b210 (patch)
tree67c6374518dfdff4c2fd0d3cd9952f101cd7e8ab /telecomm/java
parentda8c7655e478a04a6578fbfa0559e7583d13a7cb (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.java4
-rw-r--r--telecomm/java/android/telecom/CallStreamingService.java27
-rw-r--r--telecomm/java/android/telecom/StreamingCall.java17
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;
}