diff options
author | Hall Liu <hallliu@google.com> | 2019-12-02 13:57:01 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-12-02 13:57:01 -0800 |
commit | 5defb332c9ecaec0622012be416b71767ee45ca0 (patch) | |
tree | 475206fdd0059cd59c62bbfaf326062df9f15419 | |
parent | 5b7c9a19d1ee9e8fe31874f6e336dc9249069375 (diff) | |
parent | fd191d895ecd4836c4490866e02c9f6a2f4d58bf (diff) | |
download | base-5defb332c9ecaec0622012be416b71767ee45ca0.tar.gz |
Merge "Expose new Telecom APIs for use by Telephony"
am: fd191d895e
Change-Id: I9e3d18f58694afb182ddcd388c93e70886115c95
-rw-r--r-- | api/system-current.txt | 5 | ||||
-rw-r--r-- | api/test-current.txt | 18 | ||||
-rw-r--r-- | telecomm/java/android/telecom/ConnectionRequest.java | 32 | ||||
-rw-r--r-- | telecomm/java/android/telecom/TelecomManager.java | 11 |
4 files changed, 53 insertions, 13 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 756b4f1d0351..994bdd0cad52 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -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(); diff --git a/api/test-current.txt b/api/test-current.txt index b6639cfc87b4..eb4fcdb79cc0 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -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(); diff --git a/telecomm/java/android/telecom/ConnectionRequest.java b/telecomm/java/android/telecom/ConnectionRequest.java index b42853046031..221f8f129744 100644 --- a/telecomm/java/android/telecom/ConnectionRequest.java +++ b/telecomm/java/android/telecom/ConnectionRequest.java @@ -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; } diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index cda3387b8fac..20862c525b55 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -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( |