Merge "Add capability for a connection hand rejection text response." into cw-e-dev
This commit is contained in:
@ -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
|
||||
//******************************************************************************************
|
||||
|
||||
/**
|
||||
|
@ -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.
|
||||
*/
|
||||
|
@ -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)) {
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user