Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 23f249a0 authored by Tyler Gunn's avatar Tyler Gunn Committed by Android (Google) Code Review
Browse files

Merge "Address Call Streaming API review comments."

parents 9f7a1740 acd4dad5
Loading
Loading
Loading
Loading
+0 −28
Original line number Diff line number Diff line
@@ -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<android.telecom.StatusHints> 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<android.telecom.StreamingCall> 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();
+30 −0
Original line number Diff line number Diff line
@@ -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<android.telecom.StreamingCall> 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<android.telecom.TelecomAnalytics.SessionTiming>, java.util.List<android.telecom.ParcelableCallAnalytics>);
    method public int describeContents();
+7 −0
Original line number Diff line number Diff line
@@ -2824,6 +2824,13 @@
    <permission android:name="android.permission.BIND_INCALL_SERVICE"
        android:protectionLevel="signature|privileged" />

    <!-- Must be required by a {@link android.telecom.CallStreamingService},
         to ensure that only the system can bind to it.
         <p>Protection level: signature
         @SystemApi @hide-->
    <permission android:name="android.permission.BIND_CALL_STREAMING_SERVICE"
        android:protectionLevel="signature" />

    <!-- Allows to query ongoing call details and manage ongoing calls
     <p>Protection level: signature|appop -->
    <permission android:name="android.permission.MANAGE_ONGOING_CALLS"
+2 −2
Original line number Diff line number Diff line
@@ -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,
+24 −3
Original line number Diff line number Diff line
@@ -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.
@@ -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
Loading