ConnectionServiceAdapterServant.java revision 5d0410fa7c2dead7906780551ba4aa0305021cef
15d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad/* 25d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * Copyright (C) 2014 The Android Open Source Project 35d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * 45d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * Licensed under the Apache License, Version 2.0 (the "License"); 55d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * you may not use this file except in compliance with the License. 65d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * You may obtain a copy of the License at 75d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * 85d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * http://www.apache.org/licenses/LICENSE-2.0 95d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * 105d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * Unless required by applicable law or agreed to in writing, software 115d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * distributed under the License is distributed on an "AS IS" BASIS, 125d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * See the License for the specific language governing permissions and 145d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad R* limitations under the License. 155d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad */ 165d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 175d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadpackage android.telecomm; 185d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 195d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport com.android.internal.os.SomeArgs; 205d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport com.android.internal.telecomm.IConnectionServiceAdapter; 215d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport com.android.internal.telecomm.IVideoCallProvider; 225d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport com.android.internal.telecomm.RemoteServiceCallback; 235d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 245d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport android.app.PendingIntent; 255d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport android.net.Uri; 265d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport android.os.Handler; 275d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport android.os.Message; 285d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport android.os.RemoteException; 295d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 305d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad/** 315d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * A component that provides an RPC servant implementation of {@link IConnectionServiceAdapter}, 325d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * posting incoming messages on the main thread on a client-supplied delegate object. 335d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * 345d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * TODO: Generate this and similar classes using a compiler starting from AIDL interfaces. 355d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * 365d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * @hide 375d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad */ 385d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadfinal class ConnectionServiceAdapterServant { 395d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_HANDLE_CREATE_CONNECTION_SUCCESSFUL = 1; 405d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_HANDLE_CREATE_CONNECTION_FAILED = 2; 415d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_HANDLE_CREATE_CONNECTION_CANCELLED = 3; 425d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_ACTIVE = 4; 435d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_RINGING = 5; 445d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_DIALING = 6; 455d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_DISCONNECTED = 7; 465d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_ON_HOLD = 8; 475d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_REQUESTING_RINGBACK = 9; 485d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_CALL_CAPABILITIES = 10; 495d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_IS_CONFERENCED = 11; 505d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_ADD_CONFERENCE_CALL = 12; 515d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_REMOVE_CALL = 13; 525d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_ON_POST_DIAL_WAIT = 14; 535d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_QUERY_REMOTE_CALL_SERVICES = 15; 545d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_VIDEO_STATE = 16; 555d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_VIDEO_CALL_PROVIDER = 17; 565d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_AUDIO_MODE_IS_VOIP = 18; 575d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_STATUS_HINTS = 19; 585d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_HANDLE = 20; 595d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_SET_CALLER_DISPLAY_NAME = 21; 605d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private static final int MSG_START_ACTIVITY_FROM_IN_CALL = 22; 615d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 625d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private final IConnectionServiceAdapter mDelegate; 635d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 645d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private final Handler mHandler = new Handler() { 655d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 665d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void handleMessage(Message msg) { 675d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 685d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad internalHandleMessage(msg); 695d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } catch (RemoteException e) { 705d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 715d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 725d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 735d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad // Internal method defined to centralize handling of RemoteException 745d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private void internalHandleMessage(Message msg) throws RemoteException { 755d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad switch (msg.what) { 765d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_HANDLE_CREATE_CONNECTION_SUCCESSFUL: { 775d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 785d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 795d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.handleCreateConnectionSuccessful( 805d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad (ConnectionRequest) args.arg1, 815d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad (ParcelableConnection) args.arg2); 825d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 835d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 845d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 855d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 865d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 875d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_HANDLE_CREATE_CONNECTION_FAILED: { 885d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 895d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 905d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.handleCreateConnectionFailed( 915d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad (ConnectionRequest) args.arg1, 925d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.argi1, 935d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad (String) args.arg2); 945d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 955d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 965d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 975d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 985d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 995d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_HANDLE_CREATE_CONNECTION_CANCELLED: { 1005d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.handleCreateConnectionCancelled((ConnectionRequest) msg.obj); 1015d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1025d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1035d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_ACTIVE: 1045d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setActive((String) msg.obj); 1055d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1065d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_RINGING: 1075d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setRinging((String) msg.obj); 1085d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1095d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_DIALING: 1105d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setDialing((String) msg.obj); 1115d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1125d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_DISCONNECTED: { 1135d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1145d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 1155d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setDisconnected( 1165d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad (String) args.arg1, args.argi1, (String) args.arg2); 1175d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1185d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1195d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1205d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1215d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1225d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_ON_HOLD: 1235d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setOnHold((String) msg.obj); 1245d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1255d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_REQUESTING_RINGBACK: 1265d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setRequestingRingback((String) msg.obj, msg.arg1 == 1); 1275d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1285d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_CALL_CAPABILITIES: 1295d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setCallCapabilities((String) msg.obj, msg.arg1); 1305d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1315d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_IS_CONFERENCED: { 1325d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1335d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 1345d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setIsConferenced((String) args.arg1, (String) args.arg2); 1355d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1365d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1375d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1385d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1395d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1405d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_ADD_CONFERENCE_CALL: 1415d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.addConferenceCall((String) msg.obj); 1425d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1435d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_REMOVE_CALL: 1445d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.removeCall((String) msg.obj); 1455d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1465d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_ON_POST_DIAL_WAIT: { 1475d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1485d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 1495d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.onPostDialWait((String) args.arg1, (String) args.arg2); 1505d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1515d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1525d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1535d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1545d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1555d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_QUERY_REMOTE_CALL_SERVICES: 1565d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.queryRemoteConnectionServices((RemoteServiceCallback) msg.obj); 1575d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1585d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_VIDEO_STATE: 1595d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setVideoState((String) msg.obj, msg.arg1); 1605d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1615d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_VIDEO_CALL_PROVIDER: { 1625d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1635d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 1645d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setVideoCallProvider((String) args.arg1, 1655d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad (IVideoCallProvider) args.arg2); 1665d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1675d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1685d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1695d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1705d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1715d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_AUDIO_MODE_IS_VOIP: 1725d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setAudioModeIsVoip((String) msg.obj, msg.arg1 == 1); 1735d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1745d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_STATUS_HINTS: { 1755d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1765d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 1775d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setStatusHints((String) args.arg1, (StatusHints) args.arg2); 1785d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1795d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1805d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1815d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1825d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1835d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_HANDLE: { 1845d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1855d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 1865d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setHandle((String) args.arg1, (Uri) args.arg2, args.argi1); 1875d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1885d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1895d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1905d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1915d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1925d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_CALLER_DISPLAY_NAME: { 1935d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1945d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 1955d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setCallerDisplayName( 1965d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad (String) args.arg1, (String) args.arg2, args.argi1); 1975d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1985d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1995d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2005d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 2015d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2025d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_START_ACTIVITY_FROM_IN_CALL: { 2035d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 2045d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 2055d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.startActivityFromInCall( 2065d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad (String) args.arg1, (PendingIntent) args.arg2); 2075d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 2085d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 2095d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2105d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 2115d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2125d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2135d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2145d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad }; 2155d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2165d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private final IConnectionServiceAdapter mStub = new IConnectionServiceAdapter.Stub() { 2175d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2185d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void handleCreateConnectionSuccessful( 2195d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad ConnectionRequest request, ParcelableConnection connection) { 2205d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 2215d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = request; 2225d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = connection; 2235d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_HANDLE_CREATE_CONNECTION_SUCCESSFUL, args).sendToTarget(); 2245d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2255d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2265d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2275d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void handleCreateConnectionFailed( 2285d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad ConnectionRequest request, int errorCode, String errorMessage) { 2295d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 2305d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = request; 2315d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.argi1 = errorCode; 2325d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = errorMessage; 2335d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_HANDLE_CREATE_CONNECTION_FAILED, args).sendToTarget(); 2345d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2355d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2365d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2375d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void handleCreateConnectionCancelled(ConnectionRequest request) { 2385d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_HANDLE_CREATE_CONNECTION_CANCELLED, request).sendToTarget(); 2395d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2405d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2415d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2425d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setActive(String connectionId) { 2435d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_ACTIVE, connectionId).sendToTarget(); 2445d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2455d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2465d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2475d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setRinging(String connectionId) { 2485d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_RINGING, connectionId).sendToTarget(); 2495d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2505d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2515d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2525d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setDialing(String connectionId) { 2535d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_DIALING, connectionId).sendToTarget(); 2545d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2555d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2565d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2575d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setDisconnected( 2585d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad String connectionId, int disconnectCause, String disconnectMessage) { 2595d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 2605d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 2615d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = disconnectMessage; 2625d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.argi1 = disconnectCause; 2635d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_DISCONNECTED, args).sendToTarget(); 2645d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2655d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2665d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2675d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setOnHold(String connectionId) { 2685d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_ON_HOLD, connectionId).sendToTarget(); 2695d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2705d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2715d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2725d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setRequestingRingback(String connectionId, boolean ringback) { 2735d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_REQUESTING_RINGBACK, ringback ? 1 : 0, 0, connectionId) 2745d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad .sendToTarget(); 2755d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2765d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2775d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2785d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setCallCapabilities(String connectionId, int callCapabilities) { 2795d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_CALL_CAPABILITIES, callCapabilities, 0, connectionId) 2805d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad .sendToTarget(); 2815d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2825d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2835d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2845d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setIsConferenced(String callId, String conferenceCallId) { 2855d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 2865d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = callId; 2875d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = conferenceCallId; 2885d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_IS_CONFERENCED, args).sendToTarget(); 2895d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2905d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2915d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2925d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void addConferenceCall(String callId) { 2935d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_ADD_CONFERENCE_CALL, callId).sendToTarget(); 2945d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2955d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2965d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2975d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void removeCall(String connectionId) { 2985d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_REMOVE_CALL, connectionId).sendToTarget(); 2995d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3005d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3015d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3025d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void onPostDialWait(String connectionId, String remainingDigits) { 3035d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 3045d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 3055d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = remainingDigits; 3065d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_ON_POST_DIAL_WAIT, args).sendToTarget(); 3075d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3085d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3095d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3105d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void queryRemoteConnectionServices(RemoteServiceCallback callback) { 3115d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_QUERY_REMOTE_CALL_SERVICES, callback).sendToTarget(); 3125d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3135d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3145d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3155d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setVideoState(String connectionId, int videoState) { 3165d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_VIDEO_STATE, videoState, 0, connectionId).sendToTarget(); 3175d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3185d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3195d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3205d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setVideoCallProvider( 3215d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad String connectionId, IVideoCallProvider videoCallProvider) { 3225d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 3235d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 3245d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = videoCallProvider; 3255d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_VIDEO_CALL_PROVIDER, args).sendToTarget(); 3265d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3275d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3285d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3295d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public final void setAudioModeIsVoip(String connectionId, boolean isVoip) { 3305d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_AUDIO_MODE_IS_VOIP, isVoip ? 1 : 0, 0, 3315d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad connectionId).sendToTarget(); 3325d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3335d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3345d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3355d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public final void setStatusHints(String connectionId, StatusHints statusHints) { 3365d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 3375d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 3385d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = statusHints; 3395d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_STATUS_HINTS, args).sendToTarget(); 3405d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3415d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3425d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3435d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public final void setHandle(String connectionId, Uri handle, int presentation) { 3445d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 3455d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 3465d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = handle; 3475d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.argi1 = presentation; 3485d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_HANDLE, args).sendToTarget(); 3495d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3505d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3515d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3525d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public final void setCallerDisplayName( 3535d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad String connectionId, String callerDisplayName, int presentation) { 3545d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 3555d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 3565d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = callerDisplayName; 3575d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.argi1 = presentation; 3585d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_CALLER_DISPLAY_NAME, args).sendToTarget(); 3595d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3605d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3615d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3625d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public final void startActivityFromInCall(String connectionId, PendingIntent intent) { 3635d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 3645d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 3655d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = intent; 3665d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_START_ACTIVITY_FROM_IN_CALL, args).sendToTarget(); 3675d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3685d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad }; 3695d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3705d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public ConnectionServiceAdapterServant(IConnectionServiceAdapter delegate) { 3715d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate = delegate; 3725d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3735d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3745d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public IConnectionServiceAdapter getStub() { 3755d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad return mStub; 3765d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3775d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad} 378