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; 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; 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)) { if (can(capabilities, CAPABILITY_CONFERENCE_HAS_NO_CHILDREN)) {
builder.append(" CAPABILITY_SINGLE_PARTY_CONFERENCE"); 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("]"); builder.append("]");
return builder.toString(); return builder.toString();
} }
@ -1762,6 +1773,13 @@ public abstract class Connection extends Conferenceable {
*/ */
public void onReject() {} 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. * 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_ANSWER_VIDEO = 17;
private static final int MSG_MERGE_CONFERENCE = 18; private static final int MSG_MERGE_CONFERENCE = 18;
private static final int MSG_SWAP_CONFERENCE = 19; private static final int MSG_SWAP_CONFERENCE = 19;
private static final int MSG_REJECT_WITH_MESSAGE = 20;
private static Connection sNullConnection; private static Connection sNullConnection;
@ -165,6 +166,14 @@ public abstract class ConnectionService extends Service {
mHandler.obtainMessage(MSG_REJECT, callId).sendToTarget(); 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 @Override
public void disconnect(String callId) { public void disconnect(String callId) {
mHandler.obtainMessage(MSG_DISCONNECT, callId).sendToTarget(); mHandler.obtainMessage(MSG_DISCONNECT, callId).sendToTarget();
@ -296,6 +305,15 @@ public abstract class ConnectionService extends Service {
case MSG_REJECT: case MSG_REJECT:
reject((String) msg.obj); reject((String) msg.obj);
break; 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: case MSG_DISCONNECT:
disconnect((String) msg.obj); disconnect((String) msg.obj);
break; break;
@ -681,6 +699,11 @@ public abstract class ConnectionService extends Service {
findConnectionForAction(callId, "reject").onReject(); 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) { private void disconnect(String callId) {
Log.d(this, "disconnect %s", callId); Log.d(this, "disconnect %s", callId);
if (mConnectionById.containsKey(callId)) { if (mConnectionById.containsKey(callId)) {

View File

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