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

Commit fd191d89 authored by Hall Liu's avatar Hall Liu Committed by Gerrit Code Review
Browse files

Merge "Expose new Telecom APIs for use by Telephony"

parents b17f9ee3 b230624a
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -7373,6 +7373,10 @@ package android.telecom {
    field public static final int PROPERTY_REMOTELY_HOSTED = 2048; // 0x800
  }
  public final class ConnectionRequest implements android.os.Parcelable {
    method @Nullable public String getTelecomCallId();
  }
  public abstract class ConnectionService extends android.app.Service {
    method public final void addExistingConnection(@NonNull android.telecom.PhoneAccountHandle, @NonNull android.telecom.Connection, @NonNull android.telecom.Conference);
  }
@@ -7579,6 +7583,7 @@ package android.telecom {
    method public java.util.List<android.telecom.PhoneAccountHandle> getAllPhoneAccountHandles();
    method public java.util.List<android.telecom.PhoneAccount> getAllPhoneAccounts();
    method public int getAllPhoneAccountsCount();
    method @NonNull @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts(boolean);
    method public int getCallState();
    method public android.telecom.PhoneAccountHandle getConnectionManager();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getCurrentTtyMode();
+18 −0
Original line number Diff line number Diff line
@@ -2832,6 +2832,23 @@ package android.telecom {
    field public static final int PROPERTY_REMOTELY_HOSTED = 2048; // 0x800
  }

  public final class ConnectionRequest implements android.os.Parcelable {
    method @Nullable public String getTelecomCallId();
  }

  public static final class ConnectionRequest.Builder {
    ctor public ConnectionRequest.Builder();
    method @NonNull public android.telecom.ConnectionRequest build();
    method @NonNull public android.telecom.ConnectionRequest.Builder setAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
    method @NonNull public android.telecom.ConnectionRequest.Builder setAddress(@NonNull android.net.Uri);
    method @NonNull public android.telecom.ConnectionRequest.Builder setExtras(@NonNull android.os.Bundle);
    method @NonNull public android.telecom.ConnectionRequest.Builder setRttPipeFromInCall(@NonNull android.os.ParcelFileDescriptor);
    method @NonNull public android.telecom.ConnectionRequest.Builder setRttPipeToInCall(@NonNull android.os.ParcelFileDescriptor);
    method @NonNull public android.telecom.ConnectionRequest.Builder setShouldShowIncomingCallUi(boolean);
    method @NonNull public android.telecom.ConnectionRequest.Builder setTelecomCallId(@NonNull String);
    method @NonNull public android.telecom.ConnectionRequest.Builder setVideoState(int);
  }

  public static class PhoneAccount.Builder {
    method @NonNull public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String);
  }
@@ -2845,6 +2862,7 @@ package android.telecom {
  }

  public class TelecomManager {
    method @NonNull @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts(boolean);
    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCurrentTtyMode();
    method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDefaultDialerPackage(int);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall();
+22 −10
Original line number Diff line number Diff line
@@ -16,6 +16,10 @@

package android.telecom;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcel;
@@ -32,6 +36,7 @@ public final class ConnectionRequest implements Parcelable {
     * Builder class for {@link ConnectionRequest}
     * @hide
     */
    @TestApi // For convenience in CTS tests
    public static final class Builder {
        private PhoneAccountHandle mAccountHandle;
        private Uri mAddress;
@@ -48,7 +53,7 @@ public final class ConnectionRequest implements Parcelable {
         * Sets the phone account handle for the resulting {@link ConnectionRequest}
         * @param accountHandle The accountHandle which should be used to place the call.
         */
        public Builder setAccountHandle(PhoneAccountHandle accountHandle) {
        public @NonNull Builder setAccountHandle(@NonNull PhoneAccountHandle accountHandle) {
            this.mAccountHandle = accountHandle;
            return this;
        }
@@ -58,7 +63,7 @@ public final class ConnectionRequest implements Parcelable {
         * @param address The address(e.g., phone number) to which the {@link Connection} is to
         *                connect.
         */
        public Builder setAddress(Uri address) {
        public @NonNull Builder setAddress(@NonNull Uri address) {
            this.mAddress = address;
            return this;
        }
@@ -67,7 +72,7 @@ public final class ConnectionRequest implements Parcelable {
         * Sets the extras bundle for the resulting {@link ConnectionRequest}
         * @param extras Application-specific extra data.
         */
        public Builder setExtras(Bundle extras) {
        public @NonNull Builder setExtras(@NonNull Bundle extras) {
            this.mExtras = extras;
            return this;
        }
@@ -76,7 +81,7 @@ public final class ConnectionRequest implements Parcelable {
         * Sets the video state for the resulting {@link ConnectionRequest}
         * @param videoState Determines the video state for the connection.
         */
        public Builder setVideoState(int videoState) {
        public @NonNull Builder setVideoState(int videoState) {
            this.mVideoState = videoState;
            return this;
        }
@@ -85,7 +90,7 @@ public final class ConnectionRequest implements Parcelable {
         * Sets the Telecom call ID for the resulting {@link ConnectionRequest}
         * @param telecomCallId The telecom call ID.
         */
        public Builder setTelecomCallId(String telecomCallId) {
        public @NonNull Builder setTelecomCallId(@NonNull String telecomCallId) {
            this.mTelecomCallId = telecomCallId;
            return this;
        }
@@ -97,7 +102,7 @@ public final class ConnectionRequest implements Parcelable {
         *                                 its own incoming call UI for an incoming call.  When
         *                                 {@code false}, Telecom shows the incoming call UI.
         */
        public Builder setShouldShowIncomingCallUi(boolean shouldShowIncomingCallUi) {
        public @NonNull Builder setShouldShowIncomingCallUi(boolean shouldShowIncomingCallUi) {
            this.mShouldShowIncomingCallUi = shouldShowIncomingCallUi;
            return this;
        }
@@ -107,7 +112,8 @@ public final class ConnectionRequest implements Parcelable {
         * resulting {@link ConnectionRequest}
         * @param rttPipeFromInCall The data pipe to read from.
         */
        public Builder setRttPipeFromInCall(ParcelFileDescriptor rttPipeFromInCall) {
        public @NonNull Builder setRttPipeFromInCall(
                @NonNull ParcelFileDescriptor rttPipeFromInCall) {
            this.mRttPipeFromInCall = rttPipeFromInCall;
            return this;
        }
@@ -117,12 +123,16 @@ public final class ConnectionRequest implements Parcelable {
         * resulting {@link ConnectionRequest}
         * @param rttPipeToInCall The data pipe to write to.
         */
        public Builder setRttPipeToInCall(ParcelFileDescriptor rttPipeToInCall) {
        public @NonNull Builder setRttPipeToInCall(@NonNull ParcelFileDescriptor rttPipeToInCall) {
            this.mRttPipeToInCall = rttPipeToInCall;
            return this;
        }

        public ConnectionRequest build() {
        /**
         * Build the {@link ConnectionRequest}
         * @return Result of the builder
         */
        public @NonNull ConnectionRequest build() {
            return new ConnectionRequest(
                    mAccountHandle,
                    mAddress,
@@ -261,7 +271,9 @@ public final class ConnectionRequest implements Parcelable {
     * @return The Telecom ID.
     * @hide
     */
    public String getTelecomCallId() {
    @SystemApi
    @TestApi
    public @Nullable String getTelecomCallId() {
        return mTelecomCallId;
    }

+8 −3
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ import static android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE;

import android.Manifest;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SuppressAutoDoc;
@@ -1028,12 +1029,16 @@ public class TelecomManager {
     * by the user.
     *
     * @param includeDisabledAccounts When {@code true}, disabled phone accounts will be included,
     *                                when {@code false}, only
     *                                when {@code false}, only enabled phone accounts will be
     *                                included.
     * @return A list of {@code PhoneAccountHandle} objects.
     * @hide
     */
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 119305590)
    public List<PhoneAccountHandle> getCallCapablePhoneAccounts(boolean includeDisabledAccounts) {
    @SystemApi
    @TestApi
    @RequiresPermission(READ_PRIVILEGED_PHONE_STATE)
    public @NonNull List<PhoneAccountHandle> getCallCapablePhoneAccounts(
            boolean includeDisabledAccounts) {
        try {
            if (isServiceConnected()) {
                return getTelecomService().getCallCapablePhoneAccounts(