Merge "Expose new Telecom APIs for use by Telephony"

am: fd191d895e

Change-Id: I9e3d18f58694afb182ddcd388c93e70886115c95
This commit is contained in:
Hall Liu
2019-12-02 13:57:01 -08:00
committed by android-build-merger
4 changed files with 53 additions and 13 deletions

View File

@@ -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();

View File

@@ -2833,6 +2833,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);
}
@@ -2846,6 +2863,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();

View File

@@ -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;
}

View File

@@ -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(