Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 270b8ff4 authored by Brad Ebinger's avatar Brad Ebinger
Browse files

Modify ConnectionServiceAdapter to include Session

Starts external sessions from the ConnectionServices so that external
Sessions can be started in Telecom from Telephony.

Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: Ic024d123acdd52b7592636db410a459e03548d0c
parent d7b70ca7
Loading
Loading
Loading
Loading
+69 −55
Original line number Diff line number Diff line
@@ -67,8 +67,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {

        @Override
        public void handleCreateConnectionComplete(String callId, ConnectionRequest request,
                ParcelableConnection connection) {
            Log.startSession("CSW.hCCC");
                ParcelableConnection connection, Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.hCCC");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -83,8 +83,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setActive(String callId) {
            Log.startSession("CSW.sA");
        public void setActive(String callId, Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sA");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -103,8 +103,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setRinging(String callId) {
            Log.startSession("CSW.sR");
        public void setRinging(String callId, Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sR");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -123,8 +123,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setVideoProvider(String callId, IVideoProvider videoProvider) {
            Log.startSession("CSW.sVP");
        public void setVideoProvider(String callId, IVideoProvider videoProvider,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sVP");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -141,8 +142,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setDialing(String callId) {
            Log.startSession("CSW.sD");
        public void setDialing(String callId, Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sD");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -161,8 +162,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setDisconnected(String callId, DisconnectCause disconnectCause) {
            Log.startSession("CSW.sD");
        public void setDisconnected(String callId, DisconnectCause disconnectCause,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sD");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -182,8 +184,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setOnHold(String callId) {
            Log.startSession("CSW.sOH");
        public void setOnHold(String callId, Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sOH");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -202,8 +204,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setRingbackRequested(String callId, boolean ringback) {
            Log.startSession("CSW.SRR");
        public void setRingbackRequested(String callId, boolean ringback,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.SRR");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -222,8 +225,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void removeCall(String callId) {
            Log.startSession("CSW.rC");
        public void removeCall(String callId, Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.rC");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -245,8 +248,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setConnectionCapabilities(String callId, int connectionCapabilities) {
            Log.startSession("CSW.sCC");
        public void setConnectionCapabilities(String callId, int connectionCapabilities,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sCC");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -266,7 +270,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setConnectionProperties(String callId, int connectionProperties) {
        public void setConnectionProperties(String callId, int connectionProperties,
                Session.Info sessionInfo) {
            Log.startSession("CSW.sCP");
            long token = Binder.clearCallingIdentity();
            try {
@@ -284,8 +289,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setIsConferenced(String callId, String conferenceCallId) {
            Log.startSession("CSW.sIC");
        public void setIsConferenced(String callId, String conferenceCallId,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sIC");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -310,8 +316,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setConferenceMergeFailed(String callId) {
            Log.startSession("CSW.sCMF");
        public void setConferenceMergeFailed(String callId, Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sCMF");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -341,8 +347,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void addConferenceCall(String callId, ParcelableConference parcelableConference) {
            Log.startSession("CSW.aCC");
        public void addConferenceCall(String callId, ParcelableConference parcelableConference,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.aCC");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -396,8 +403,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void onPostDialWait(String callId, String remaining) throws RemoteException {
            Log.startSession("CSW.oPDW");
        public void onPostDialWait(String callId, String remaining,
                Session.Info sessionInfo) throws RemoteException {
            Log.startSession(sessionInfo, "CSW.oPDW");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -416,8 +424,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void onPostDialChar(String callId, char nextChar) throws RemoteException {
            Log.startSession("CSW.oPDC");
        public void onPostDialChar(String callId, char nextChar,
                Session.Info sessionInfo) throws RemoteException {
            Log.startSession(sessionInfo, "CSW.oPDC");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -436,9 +445,10 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void queryRemoteConnectionServices(RemoteServiceCallback callback) {
        public void queryRemoteConnectionServices(RemoteServiceCallback callback,
                Session.Info sessionInfo) {
            final UserHandle callingUserHandle = Binder.getCallingUserHandle();
            Log.startSession("CSW.qRCS");
            Log.startSession(sessionInfo, "CSW.qRCS");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -453,8 +463,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setVideoState(String callId, int videoState) {
            Log.startSession("CSW.sVS");
        public void setVideoState(String callId, int videoState, Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sVS");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -471,8 +481,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setIsVoipAudioMode(String callId, boolean isVoip) {
            Log.startSession("CSW.sIVAM");
        public void setIsVoipAudioMode(String callId, boolean isVoip, Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sIVAM");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -489,8 +499,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setStatusHints(String callId, StatusHints statusHints) {
            Log.startSession("CSW.sSH");
        public void setStatusHints(String callId, StatusHints statusHints,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sSH");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -507,8 +518,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void putExtras(String callId, Bundle extras) {
            Log.startSession("CSW.pE");
        public void putExtras(String callId, Bundle extras, Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.pE");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -525,8 +536,8 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void removeExtras(String callId, List<String> keys) {
            Log.startSession("CSW.rE");
        public void removeExtras(String callId, List<String> keys, Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.rE");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -543,8 +554,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setAddress(String callId, Uri address, int presentation) {
            Log.startSession("CSW.sA");
        public void setAddress(String callId, Uri address, int presentation,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sA");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -561,9 +573,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setCallerDisplayName(
                String callId, String callerDisplayName, int presentation) {
            Log.startSession("CSW.sCDN");
        public void setCallerDisplayName(String callId, String callerDisplayName, int presentation,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sCDN");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -581,9 +593,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void setConferenceableConnections(
                String callId, List<String> conferenceableCallIds) {
            Log.startSession("CSW.sCC");
        public void setConferenceableConnections(String callId, List<String> conferenceableCallIds,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.sCC");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -609,8 +621,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void addExistingConnection(String callId, ParcelableConnection connection) {
            Log.startSession("CSW.aEC");
        public void addExistingConnection(String callId, ParcelableConnection connection,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.aEC");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
@@ -627,8 +640,9 @@ public class ConnectionServiceWrapper extends ServiceBinder {
        }

        @Override
        public void onConnectionEvent(String callId, String event, Bundle extras) {
            Log.startSession("CSW.oCE");
        public void onConnectionEvent(String callId, String event, Bundle extras,
                Session.Info sessionInfo) {
            Log.startSession(sessionInfo, "CSW.oCE");
            long token = Binder.clearCallingIdentity();
            try {
                synchronized (mLock) {
+26 −23
Original line number Diff line number Diff line
@@ -365,28 +365,28 @@ public class ConnectionServiceFixture implements TestFixture<IConnectionService>
            a.handleCreateConnectionComplete(
                    id,
                    mConnectionById.get(id).request,
                    parcelable(mConnectionById.get(id)));
                    parcelable(mConnectionById.get(id)), null /*Session.Info*/);
        }
    }

    public void sendSetActive(String id) throws Exception {
        mConnectionById.get(id).state = Connection.STATE_ACTIVE;
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setActive(id);
            a.setActive(id, null /*Session.Info*/);
        }
    }

    public void sendSetRinging(String id) throws Exception {
        mConnectionById.get(id).state = Connection.STATE_RINGING;
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setRinging(id);
            a.setRinging(id, null /*Session.Info*/);
        }
    }

    public void sendSetDialing(String id) throws Exception {
        mConnectionById.get(id).state = Connection.STATE_DIALING;
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setDialing(id);
            a.setDialing(id, null /*Session.Info*/);
        }
    }

@@ -394,56 +394,57 @@ public class ConnectionServiceFixture implements TestFixture<IConnectionService>
        mConnectionById.get(id).state = Connection.STATE_DISCONNECTED;
        mConnectionById.get(id).disconnectCause = new DisconnectCause(disconnectCause);
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setDisconnected(id, mConnectionById.get(id).disconnectCause);
            a.setDisconnected(id, mConnectionById.get(id).disconnectCause, null /*Session.Info*/);
        }
    }

    public void sendSetOnHold(String id) throws Exception {
        mConnectionById.get(id).state = Connection.STATE_HOLDING;
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setOnHold(id);
            a.setOnHold(id, null /*Session.Info*/);
        }
    }

    public void sendSetRingbackRequested(String id) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setRingbackRequested(id, mConnectionById.get(id).ringing);
            a.setRingbackRequested(id, mConnectionById.get(id).ringing, null /*Session.Info*/);
        }
    }

    public void sendSetConnectionCapabilities(String id) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setConnectionCapabilities(id, mConnectionById.get(id).capabilities);
            a.setConnectionCapabilities(id, mConnectionById.get(id).capabilities,
                    null /*Session.Info*/);
        }
    }

    public void sendSetIsConferenced(String id) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setIsConferenced(id, mConnectionById.get(id).conferenceId);
            a.setIsConferenced(id, mConnectionById.get(id).conferenceId, null /*Session.Info*/);
        }
    }

    public void sendAddConferenceCall(String id) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.addConferenceCall(id, parcelable(mConferenceById.get(id)));
            a.addConferenceCall(id, parcelable(mConferenceById.get(id)), null /*Session.Info*/);
        }
    }

    public void sendRemoveCall(String id) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.removeCall(id);
            a.removeCall(id, null /*Session.Info*/);
        }
    }

    public void sendOnPostDialWait(String id, String remaining) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.onPostDialWait(id, remaining);
            a.onPostDialWait(id, remaining, null /*Session.Info*/);
        }
    }

    public void sendOnPostDialChar(String id, char nextChar) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.onPostDialChar(id, nextChar);
            a.onPostDialChar(id, nextChar, null /*Session.Info*/);
        }
    }

@@ -470,31 +471,32 @@ public class ConnectionServiceFixture implements TestFixture<IConnectionService>
                public IBinder asBinder() {
                    return this;
                }
            });
            }, null /*Session.Info*/);
        }
    }

    public void sendSetVideoProvider(String id) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setVideoProvider(id, mConnectionById.get(id).videoProvider);
            a.setVideoProvider(id, mConnectionById.get(id).videoProvider, null /*Session.Info*/);
        }
    }

    public void sendSetVideoState(String id) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setVideoState(id, mConnectionById.get(id).videoState);
            a.setVideoState(id, mConnectionById.get(id).videoState, null /*Session.Info*/);
        }
    }

    public void sendSetIsVoipAudioMode(String id) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setIsVoipAudioMode(id, mConnectionById.get(id).isVoipAudioMode);
            a.setIsVoipAudioMode(id, mConnectionById.get(id).isVoipAudioMode,
                    null /*Session.Info*/);
        }
    }

    public void sendSetStatusHints(String id) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setStatusHints(id, mConnectionById.get(id).statusHints);
            a.setStatusHints(id, mConnectionById.get(id).statusHints, null /*Session.Info*/);
        }
    }

@@ -503,7 +505,7 @@ public class ConnectionServiceFixture implements TestFixture<IConnectionService>
            a.setAddress(
                    id,
                    mConnectionById.get(id).request.getAddress(),
                    mConnectionById.get(id).addressPresentation);
                    mConnectionById.get(id).addressPresentation, null /*Session.Info*/);
        }
    }

@@ -512,25 +514,26 @@ public class ConnectionServiceFixture implements TestFixture<IConnectionService>
            a.setCallerDisplayName(
                    id,
                    mConnectionById.get(id).callerDisplayName,
                    mConnectionById.get(id).callerDisplayNamePresentation);
                    mConnectionById.get(id).callerDisplayNamePresentation, null /*Session.Info*/);
        }
    }

    public void sendSetConferenceableConnections(String id) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.setConferenceableConnections(id, mConnectionById.get(id).conferenceableConnectionIds);
            a.setConferenceableConnections(id, mConnectionById.get(id).conferenceableConnectionIds,
                    null /*Session.Info*/);
        }
    }

    public void sendAddExistingConnection(String id) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.addExistingConnection(id, parcelable(mConnectionById.get(id)));
            a.addExistingConnection(id, parcelable(mConnectionById.get(id)), null /*Session.Info*/);
        }
    }

    public void sendConnectionEvent(String id, String event, Bundle extras) throws Exception {
        for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
            a.onConnectionEvent(id, event, extras);
            a.onConnectionEvent(id, event, extras, null /*Session.Info*/);
        }
    }