Merge "Add capability for a connection hand rejection text response." into cw-e-dev

This commit is contained in:
Bryce Lee
2015-08-31 15:19:44 +00:00
committed by Android (Google) Code Review
4 changed files with 51 additions and 2 deletions

View File

@ -206,8 +206,14 @@ public final class Call {
*/
public static final int CAPABILITY_CAN_PAUSE_VIDEO = 0x00100000;
/**
* Call sends responses through connection.
* @hide
*/
public static final int CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION = 0x00400000;
//******************************************************************************************
// Next CAPABILITY value: 0x00004000
// Next CAPABILITY value: 0x00800000
//******************************************************************************************
/**

View File

@ -248,8 +248,15 @@ public abstract class Connection extends Conferenceable {
*/
public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 0x00200000;
/**
* Indicates that the connection itself wants to handle any sort of reply response, rather than
* relying on SMS.
* @hide
*/
public static final int CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION = 0x00400000;
//**********************************************************************************************
// Next CAPABILITY value: 0x00400000
// Next CAPABILITY value: 0x00800000
//**********************************************************************************************
/**
@ -388,6 +395,10 @@ public abstract class Connection extends Conferenceable {
if (can(capabilities, CAPABILITY_CONFERENCE_HAS_NO_CHILDREN)) {
builder.append(" CAPABILITY_SINGLE_PARTY_CONFERENCE");
}
if (can(capabilities, CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION)) {
builder.append(" CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION");
}
builder.append("]");
return builder.toString();
}
@ -1762,6 +1773,13 @@ public abstract class Connection extends Conferenceable {
*/
public void onReject() {}
/**
* Notifies ths Connection of a request reject with a message.
*
* @hide
*/
public void onReject(String replyMessage) {}
/**
* Notifies this Connection whether the user wishes to proceed with the post-dial DTMF codes.
*/

View File

@ -101,6 +101,7 @@ public abstract class ConnectionService extends Service {
private static final int MSG_ANSWER_VIDEO = 17;
private static final int MSG_MERGE_CONFERENCE = 18;
private static final int MSG_SWAP_CONFERENCE = 19;
private static final int MSG_REJECT_WITH_MESSAGE = 20;
private static Connection sNullConnection;
@ -165,6 +166,14 @@ public abstract class ConnectionService extends Service {
mHandler.obtainMessage(MSG_REJECT, callId).sendToTarget();
}
@Override
public void rejectWithMessage(String callId, String message) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = callId;
args.arg2 = message;
mHandler.obtainMessage(MSG_REJECT_WITH_MESSAGE, args).sendToTarget();
}
@Override
public void disconnect(String callId) {
mHandler.obtainMessage(MSG_DISCONNECT, callId).sendToTarget();
@ -296,6 +305,15 @@ public abstract class ConnectionService extends Service {
case MSG_REJECT:
reject((String) msg.obj);
break;
case MSG_REJECT_WITH_MESSAGE: {
SomeArgs args = (SomeArgs) msg.obj;
try {
reject((String) args.arg1, (String) args.arg2);
} finally {
args.recycle();
}
break;
}
case MSG_DISCONNECT:
disconnect((String) msg.obj);
break;
@ -681,6 +699,11 @@ public abstract class ConnectionService extends Service {
findConnectionForAction(callId, "reject").onReject();
}
private void reject(String callId, String rejectWithMessage) {
Log.d(this, "reject %s with message", callId);
findConnectionForAction(callId, "reject").onReject(rejectWithMessage);
}
private void disconnect(String callId) {
Log.d(this, "disconnect %s", callId);
if (mConnectionById.containsKey(callId)) {

View File

@ -50,6 +50,8 @@ oneway interface IConnectionService {
void reject(String callId);
void rejectWithMessage(String callId, String message);
void disconnect(String callId);
void hold(String callId);