DO NOT MERGE. Port "respond via SMS message" feature to new Telecomm. (1/4)
Bug: 15275904 Bug: 15196474 Change-Id: If9aeae519047b221aa2c178d8d2903c4e2054a6d
This commit is contained in:
@@ -107,6 +107,13 @@ public abstract class Connection {
|
||||
protected Connection() {}
|
||||
|
||||
/**
|
||||
* The handle (e.g., phone number) to which this Connection is currently communicating.
|
||||
*
|
||||
* IMPORTANT: If an incoming connection has a phone number (or other handle) that the user
|
||||
* is not supposed to be able to see (e.g. it is PRESENTATION_RESTRICTED), then a compliant
|
||||
* ConnectionService implementation MUST NOT reveal this phone number and MUST return
|
||||
* {@code null} from this method.
|
||||
*
|
||||
* @return The handle (e.g., phone number) to which this Connection
|
||||
* is currently communicating.
|
||||
*/
|
||||
|
||||
@@ -386,6 +386,11 @@ public abstract class ConnectionService extends CallService {
|
||||
/**
|
||||
* Create a Connection to match an incoming connection notification.
|
||||
*
|
||||
* IMPORTANT: If the incoming connection has a phone number (or other handle) that the user
|
||||
* is not supposed to be able to see (e.g. it is PRESENTATION_RESTRICTED), then a compliant
|
||||
* ConnectionService implementation MUST NOT reveal this phone number as part of the Intent
|
||||
* it sends to notify Telecomm of an incoming connection.
|
||||
*
|
||||
* @param request Data encapsulating details of the desired Connection.
|
||||
* @param callback A callback for providing the result.
|
||||
*/
|
||||
|
||||
@@ -59,10 +59,12 @@ public final class InCallAdapter {
|
||||
* is ported over.
|
||||
*
|
||||
* @param callId The identifier of the call to reject.
|
||||
* @param rejectWithMessage Whether to reject with a text message.
|
||||
* @param textMessage An optional text message with which to respond.
|
||||
*/
|
||||
public void rejectCall(String callId) {
|
||||
public void rejectCall(String callId, boolean rejectWithMessage, String textMessage) {
|
||||
try {
|
||||
mAdapter.rejectCall(callId);
|
||||
mAdapter.rejectCall(callId, rejectWithMessage, textMessage);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ public final class InCallCall implements Parcelable {
|
||||
private final CallState mState;
|
||||
private final int mDisconnectCauseCode;
|
||||
private final String mDisconnectCauseMsg;
|
||||
private final List<String> mCannedSmsResponses;
|
||||
private final int mCapabilities;
|
||||
private final long mConnectTimeMillis;
|
||||
private final Uri mHandle;
|
||||
@@ -49,14 +50,16 @@ public final class InCallCall implements Parcelable {
|
||||
CallState state,
|
||||
int disconnectCauseCode,
|
||||
String disconnectCauseMsg,
|
||||
List<String> cannedSmsResponses,
|
||||
int capabilities,
|
||||
long connectTimeMillis,
|
||||
Uri handle,
|
||||
GatewayInfo gatewayInfo,
|
||||
CallServiceDescriptor descriptor,
|
||||
CallServiceDescriptor handoffDescriptor) {
|
||||
this(id, state, disconnectCauseCode, disconnectCauseMsg, capabilities, connectTimeMillis,
|
||||
handle, gatewayInfo, descriptor, handoffDescriptor, null, Collections.EMPTY_LIST);
|
||||
this(id, state, disconnectCauseCode, disconnectCauseMsg, cannedSmsResponses,
|
||||
capabilities, connectTimeMillis, handle, gatewayInfo, descriptor, handoffDescriptor,
|
||||
null, Collections.EMPTY_LIST);
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@@ -65,6 +68,7 @@ public final class InCallCall implements Parcelable {
|
||||
CallState state,
|
||||
int disconnectCauseCode,
|
||||
String disconnectCauseMsg,
|
||||
List<String> cannedSmsResponses,
|
||||
int capabilities,
|
||||
long connectTimeMillis,
|
||||
Uri handle,
|
||||
@@ -77,6 +81,7 @@ public final class InCallCall implements Parcelable {
|
||||
mState = state;
|
||||
mDisconnectCauseCode = disconnectCauseCode;
|
||||
mDisconnectCauseMsg = disconnectCauseMsg;
|
||||
mCannedSmsResponses = cannedSmsResponses;
|
||||
mCapabilities = capabilities;
|
||||
mConnectTimeMillis = connectTimeMillis;
|
||||
mHandle = handle;
|
||||
@@ -113,6 +118,13 @@ public final class InCallCall implements Parcelable {
|
||||
return mDisconnectCauseMsg;
|
||||
}
|
||||
|
||||
/**
|
||||
* The set of possible text message responses when this call is incoming.
|
||||
*/
|
||||
public List<String> getCannedSmsResponses() {
|
||||
return mCannedSmsResponses;
|
||||
}
|
||||
|
||||
// Bit mask of actions a call supports, values are defined in {@link CallCapabilities}.
|
||||
public int getCapabilities() {
|
||||
return mCapabilities;
|
||||
@@ -168,13 +180,15 @@ public final class InCallCall implements Parcelable {
|
||||
new Parcelable.Creator<InCallCall> () {
|
||||
@Override
|
||||
public InCallCall createFromParcel(Parcel source) {
|
||||
ClassLoader classLoader = InCallCall.class.getClassLoader();
|
||||
String id = source.readString();
|
||||
CallState state = CallState.valueOf(source.readString());
|
||||
int disconnectCauseCode = source.readInt();
|
||||
String disconnectCauseMsg = source.readString();
|
||||
List<String> cannedSmsResponses = new ArrayList<>();
|
||||
source.readList(cannedSmsResponses, classLoader);
|
||||
int capabilities = source.readInt();
|
||||
long connectTimeMillis = source.readLong();
|
||||
ClassLoader classLoader = InCallCall.class.getClassLoader();
|
||||
Uri handle = source.readParcelable(classLoader);
|
||||
GatewayInfo gatewayInfo = source.readParcelable(classLoader);
|
||||
CallServiceDescriptor descriptor = source.readParcelable(classLoader);
|
||||
@@ -182,9 +196,9 @@ public final class InCallCall implements Parcelable {
|
||||
String parentCallId = source.readString();
|
||||
List<String> childCallIds = new ArrayList<>();
|
||||
source.readList(childCallIds, classLoader);
|
||||
return new InCallCall(id, state, disconnectCauseCode, disconnectCauseMsg, capabilities,
|
||||
connectTimeMillis, handle, gatewayInfo, descriptor, handoffDescriptor,
|
||||
parentCallId, childCallIds);
|
||||
return new InCallCall(id, state, disconnectCauseCode, disconnectCauseMsg,
|
||||
cannedSmsResponses, capabilities, connectTimeMillis, handle, gatewayInfo,
|
||||
descriptor, handoffDescriptor, parentCallId, childCallIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -206,6 +220,7 @@ public final class InCallCall implements Parcelable {
|
||||
destination.writeString(mState.name());
|
||||
destination.writeInt(mDisconnectCauseCode);
|
||||
destination.writeString(mDisconnectCauseMsg);
|
||||
destination.writeList(mCannedSmsResponses);
|
||||
destination.writeInt(mCapabilities);
|
||||
destination.writeLong(mConnectTimeMillis);
|
||||
destination.writeParcelable(mHandle, 0);
|
||||
|
||||
@@ -28,7 +28,7 @@ import android.telecomm.CallAudioState;
|
||||
oneway interface IInCallAdapter {
|
||||
void answerCall(String callId);
|
||||
|
||||
void rejectCall(String callId);
|
||||
void rejectCall(String callId, boolean rejectWithMessage, String textMessage);
|
||||
|
||||
void disconnectCall(String callId);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user