diff options
Diffstat (limited to 'telecomm/java/android/telecom/ConnectionService.java')
-rw-r--r-- | telecomm/java/android/telecom/ConnectionService.java | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java index 13497d7..019839f 100644 --- a/telecomm/java/android/telecom/ConnectionService.java +++ b/telecomm/java/android/telecom/ConnectionService.java @@ -625,6 +625,13 @@ public abstract class ConnectionService extends Service { mAdapter.setExtras(id, extras); } } + + @Override + public void onPhoneAccountChanged(Connection c, PhoneAccountHandle pHandle) { + String id = mIdByConnection.get(c); + Log.i(this, "Adapter onPhoneAccountChanged %s, %s", c, pHandle); + mAdapter.setPhoneAccountHandle(id, pHandle); + } }; /** {@inheritDoc} */ @@ -680,7 +687,7 @@ public abstract class ConnectionService extends Service { callId, request, new ParcelableConnection( - request.getAccountHandle(), + getAccountHandle(request, connection), connection.getState(), connection.getConnectionCapabilities(), connection.getAddress(), @@ -702,6 +709,18 @@ public abstract class ConnectionService extends Service { } } + /** @hide */ + public PhoneAccountHandle getAccountHandle( + final ConnectionRequest request, Connection connection) { + PhoneAccountHandle pHandle = connection.getPhoneAccountHandle(); + if (pHandle != null) { + Log.i(this, "getAccountHandle, return account handle from local, %s", pHandle); + return pHandle; + } else { + return request.getAccountHandle(); + } + } + private void abort(String callId) { Log.d(this, "abort %s", callId); findConnectionForAction(callId, "abort").onAbort(); |