diff options
Diffstat (limited to 'telecomm/java/android/telecom/ConnectionService.java')
-rwxr-xr-x | telecomm/java/android/telecom/ConnectionService.java | 89 |
1 files changed, 85 insertions, 4 deletions
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java index b1ccb533e83d..580513c12453 100755 --- a/telecomm/java/android/telecom/ConnectionService.java +++ b/telecomm/java/android/telecom/ConnectionService.java @@ -137,6 +137,8 @@ public abstract class ConnectionService extends Service { private static final String SESSION_HOLD = "CS.h"; private static final String SESSION_UNHOLD = "CS.u"; private static final String SESSION_CALL_AUDIO_SC = "CS.cASC"; + private static final String SESSION_USING_ALTERNATIVE_UI = "CS.uAU"; + private static final String SESSION_TRACKED_BY_NON_UI_SERVICE = "CS.tBNUS"; private static final String SESSION_PLAY_DTMF = "CS.pDT"; private static final String SESSION_STOP_DTMF = "CS.sDT"; private static final String SESSION_CONFERENCE = "CS.c"; @@ -200,6 +202,9 @@ public abstract class ConnectionService extends Service { private static final int MSG_ADD_PARTICIPANT = 39; private static final int MSG_EXPLICIT_CALL_TRANSFER = 40; private static final int MSG_EXPLICIT_CALL_TRANSFER_CONSULTATIVE = 41; + private static final int MSG_ON_CALL_FILTERING_COMPLETED = 42; + private static final int MSG_ON_USING_ALTERNATIVE_UI = 43; + private static final int MSG_ON_TRACKED_BY_NON_UI_SERVICE = 44; private static Connection sNullConnection; @@ -584,6 +589,36 @@ public abstract class ConnectionService extends Service { } @Override + public void onUsingAlternativeUi(String callId, boolean usingAlternativeUiShowing, + Session.Info sessionInfo) { + Log.startSession(sessionInfo, SESSION_USING_ALTERNATIVE_UI); + try { + SomeArgs args = SomeArgs.obtain(); + args.arg1 = callId; + args.arg2 = usingAlternativeUiShowing; + args.arg3 = Log.createSubsession(); + mHandler.obtainMessage(MSG_ON_USING_ALTERNATIVE_UI, args).sendToTarget(); + } finally { + Log.endSession(); + } + } + + @Override + public void onTrackedByNonUiService(String callId, boolean isTracked, + Session.Info sessionInfo) { + Log.startSession(sessionInfo, SESSION_TRACKED_BY_NON_UI_SERVICE); + try { + SomeArgs args = SomeArgs.obtain(); + args.arg1 = callId; + args.arg2 = isTracked; + args.arg3 = Log.createSubsession(); + mHandler.obtainMessage(MSG_ON_TRACKED_BY_NON_UI_SERVICE, args).sendToTarget(); + } finally { + Log.endSession(); + } + } + + @Override public void playDtmfTone(String callId, char digit, Session.Info sessionInfo) { Log.startSession(sessionInfo, SESSION_PLAY_DTMF); try { @@ -1226,6 +1261,34 @@ public abstract class ConnectionService extends Service { } break; } + case MSG_ON_USING_ALTERNATIVE_UI: { + SomeArgs args = (SomeArgs) msg.obj; + Log.continueSession((Session) args.arg3, + SESSION_HANDLER + SESSION_USING_ALTERNATIVE_UI); + try { + String callId = (String) args.arg1; + boolean isUsingAlternativeUi = (boolean) args.arg2; + onUsingAlternativeUi(callId, isUsingAlternativeUi); + } finally { + args.recycle(); + Log.endSession(); + } + break; + } + case MSG_ON_TRACKED_BY_NON_UI_SERVICE: { + SomeArgs args = (SomeArgs) msg.obj; + Log.continueSession((Session) args.arg3, + SESSION_HANDLER + SESSION_TRACKED_BY_NON_UI_SERVICE); + try { + String callId = (String) args.arg1; + boolean isTracked = (boolean) args.arg2; + onTrackedByNonUiService(callId, isTracked); + } finally { + args.recycle(); + Log.endSession(); + } + break; + } case MSG_PLAY_DTMF_TONE: { SomeArgs args = (SomeArgs) msg.obj; try { @@ -1928,10 +1991,12 @@ public abstract class ConnectionService extends Service { request.getExtras().getBoolean(TelecomManager.EXTRA_IS_HANDOVER, false); boolean isHandover = request.getExtras() != null && request.getExtras().getBoolean( TelecomManager.EXTRA_IS_HANDOVER_CONNECTION, false); - Log.d(this, "createConnection, callManagerAccount: %s, callId: %s, request: %s, " + - "isIncoming: %b, isUnknown: %b, isLegacyHandover: %b, isHandover: %b", - callManagerAccount, callId, request, isIncoming, isUnknown, isLegacyHandover, - isHandover); + boolean addSelfManaged = request.getExtras() != null && request.getExtras().getBoolean( + PhoneAccount.EXTRA_ADD_SELF_MANAGED_CALLS_TO_INCALLSERVICE, true); + Log.i(this, "createConnection, callManagerAccount: %s, callId: %s, request: %s, " + + "isIncoming: %b, isUnknown: %b, isLegacyHandover: %b, isHandover: %b, " + + " addSelfManaged: %b", callManagerAccount, callId, request, isIncoming, + isUnknown, isLegacyHandover, isHandover, addSelfManaged); Connection connection = null; if (isHandover) { @@ -2206,6 +2271,22 @@ public abstract class ConnectionService extends Service { } } + private void onUsingAlternativeUi(String callId, boolean isUsingAlternativeUi) { + Log.i(this, "onUsingAlternativeUi %s %s", callId, isUsingAlternativeUi); + if (mConnectionById.containsKey(callId)) { + findConnectionForAction(callId, "onUsingAlternativeUi") + .onUsingAlternativeUi(isUsingAlternativeUi); + } + } + + private void onTrackedByNonUiService(String callId, boolean isTracked) { + Log.i(this, "onTrackedByNonUiService %s %s", callId, isTracked); + if (mConnectionById.containsKey(callId)) { + findConnectionForAction(callId, "onTrackedByNonUiService") + .onTrackedByNonUiService(isTracked); + } + } + private void playDtmfTone(String callId, char digit) { Log.i(this, "playDtmfTone %s %c", callId, digit); if (mConnectionById.containsKey(callId)) { |