diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java index 25e67c8ee17bb..a570176e04a41 100644 --- a/telecomm/java/android/telecom/Connection.java +++ b/telecomm/java/android/telecom/Connection.java @@ -842,6 +842,7 @@ public abstract class Connection extends Conferenceable { public void onRemoteRttRequest(Connection c) {} /** @hide */ public void onPhoneAccountChanged(Connection c, PhoneAccountHandle pHandle) {} + public void onConnectionTimeReset(Connection c) {} } /** @@ -2363,6 +2364,16 @@ public abstract class Connection extends Conferenceable { fireOnConferenceableConnectionsChanged(); } + /** + * @hide + * Resets the cdma connection time. + */ + public final void resetConnectionTime() { + for (Listener l : mListeners) { + l.onConnectionTimeReset(this); + } + } + /** * Returns the connections or conferences with which this connection can be conferenced. */ diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java index 4045eea4db024..73c841a64159f 100644 --- a/telecomm/java/android/telecom/ConnectionService.java +++ b/telecomm/java/android/telecom/ConnectionService.java @@ -1474,6 +1474,13 @@ public abstract class ConnectionService extends Service { mAdapter.onPhoneAccountChanged(id, pHandle); } } + + public void onConnectionTimeReset(Connection c) { + String id = mIdByConnection.get(c); + if (id != null) { + mAdapter.resetConnectionTime(id); + } + } }; /** {@inheritDoc} */ diff --git a/telecomm/java/android/telecom/ConnectionServiceAdapter.java b/telecomm/java/android/telecom/ConnectionServiceAdapter.java index 0d319bbc1d2ae..520e7eda6f69f 100644 --- a/telecomm/java/android/telecom/ConnectionServiceAdapter.java +++ b/telecomm/java/android/telecom/ConnectionServiceAdapter.java @@ -254,6 +254,18 @@ final class ConnectionServiceAdapter implements DeathRecipient { } } + /** + * Resets the cdma connection time. + */ + void resetConnectionTime(String callId) { + for (IConnectionServiceAdapter adapter : mAdapters) { + try { + adapter.resetConnectionTime(callId, Log.getExternalSession()); + } catch (RemoteException e) { + } + } + } + /** * Indicates that the call no longer exists. Can be used with either a call or a conference * call. diff --git a/telecomm/java/android/telecom/ConnectionServiceAdapterServant.java b/telecomm/java/android/telecom/ConnectionServiceAdapterServant.java index 3e1bf7790304b..78d65e643abc1 100644 --- a/telecomm/java/android/telecom/ConnectionServiceAdapterServant.java +++ b/telecomm/java/android/telecom/ConnectionServiceAdapterServant.java @@ -610,6 +610,11 @@ final class ConnectionServiceAdapterServant { public void onConnectionServiceFocusReleased(Session.Info sessionInfo) { mHandler.obtainMessage(MSG_CONNECTION_SERVICE_FOCUS_RELEASED).sendToTarget(); } + + @Override + public void resetConnectionTime(String callId, Session.Info sessionInfo) { + // Do nothing + } }; public ConnectionServiceAdapterServant(IConnectionServiceAdapter delegate) { diff --git a/telecomm/java/android/telecom/RemoteConnectionService.java b/telecomm/java/android/telecom/RemoteConnectionService.java index bb4b483de3268..9821dcbce85e2 100644 --- a/telecomm/java/android/telecom/RemoteConnectionService.java +++ b/telecomm/java/android/telecom/RemoteConnectionService.java @@ -466,6 +466,11 @@ final class RemoteConnectionService { Log.w(this, "onRemoteRttRequest called on a remote conference"); } } + + @Override + public void resetConnectionTime(String callId, Session.Info sessionInfo) { + // Do nothing + } }; private final ConnectionServiceAdapterServant mServant = diff --git a/telecomm/java/com/android/internal/telecom/IConnectionServiceAdapter.aidl b/telecomm/java/com/android/internal/telecom/IConnectionServiceAdapter.aidl index be474bd467ca9..0157a58633633 100644 --- a/telecomm/java/com/android/internal/telecom/IConnectionServiceAdapter.aidl +++ b/telecomm/java/com/android/internal/telecom/IConnectionServiceAdapter.aidl @@ -121,4 +121,6 @@ oneway interface IConnectionServiceAdapter { in Session.Info sessionInfo); void onConnectionServiceFocusReleased(in Session.Info sessionInfo); + + void resetConnectionTime(String callIdi, in Session.Info sessionInfo); }