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 17ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnpackage android.telecom; 185d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 195d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport android.net.Uri; 206b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordonimport android.os.Bundle; 215d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport android.os.Handler; 225d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport android.os.Message; 235d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadimport android.os.RemoteException; 245d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 257c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordonimport com.android.internal.os.SomeArgs; 26ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnimport com.android.internal.telecom.IConnectionServiceAdapter; 27ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnimport com.android.internal.telecom.IVideoProvider; 28ef9f6f957d897ea0ed82114185b8fa3fefd4917bTyler Gunnimport com.android.internal.telecom.RemoteServiceCallback; 297c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon 307c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordonimport java.util.List; 317c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon 325d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad/** 335d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * A component that provides an RPC servant implementation of {@link IConnectionServiceAdapter}, 345d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * posting incoming messages on the main thread on a client-supplied delegate object. 355d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * 365d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * TODO: Generate this and similar classes using a compiler starting from AIDL interfaces. 375d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * 385d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad * @hide 395d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad */ 405d0410fa7c2dead7906780551ba4aa0305021cefIhab Awadfinal class ConnectionServiceAdapterServant { 416107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_HANDLE_CREATE_CONNECTION_COMPLETE = 1; 426107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_SET_ACTIVE = 2; 436107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_SET_RINGING = 3; 446107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_SET_DIALING = 4; 456107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_SET_DISCONNECTED = 5; 466107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_SET_ON_HOLD = 6; 47100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee private static final int MSG_SET_RINGBACK_REQUESTED = 7; 485c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad private static final int MSG_SET_CONNECTION_CAPABILITIES = 8; 496107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_SET_IS_CONFERENCED = 9; 506107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_ADD_CONFERENCE_CALL = 10; 516107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_REMOVE_CALL = 11; 526107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_ON_POST_DIAL_WAIT = 12; 536107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_QUERY_REMOTE_CALL_SERVICES = 13; 546107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_SET_VIDEO_STATE = 14; 556107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_SET_VIDEO_CALL_PROVIDER = 15; 56100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee private static final int MSG_SET_IS_VOIP_AUDIO_MODE = 16; 576107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_SET_STATUS_HINTS = 17; 58100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee private static final int MSG_SET_ADDRESS = 18; 596107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad private static final int MSG_SET_CALLER_DISPLAY_NAME = 19; 6023dc241d5e4641ee2acd4b5f7865c66d9f58c9f1Evan Charlton private static final int MSG_SET_CONFERENCEABLE_CONNECTIONS = 20; 614a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn private static final int MSG_ADD_EXISTING_CONNECTION = 21; 6227d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen private static final int MSG_ON_POST_DIAL_CHAR = 22; 6317455a3d39350a39eb995897929977d793358365Anthony Lee private static final int MSG_SET_CONFERENCE_MERGE_FAILED = 23; 64dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn private static final int MSG_PUT_EXTRAS = 24; 65dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn private static final int MSG_REMOVE_EXTRAS = 25; 66dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn private static final int MSG_ON_CONNECTION_EVENT = 26; 67720c664401081ca00e56c7eef12641ae792da530Tyler Gunn private static final int MSG_SET_CONNECTION_PROPERTIES = 27; 685d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 695d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private final IConnectionServiceAdapter mDelegate; 705d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 715d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private final Handler mHandler = new Handler() { 725d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 735d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void handleMessage(Message msg) { 745d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 755d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad internalHandleMessage(msg); 765d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } catch (RemoteException e) { 775d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 785d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 795d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 805d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad // Internal method defined to centralize handling of RemoteException 815d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private void internalHandleMessage(Message msg) throws RemoteException { 825d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad switch (msg.what) { 836107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad case MSG_HANDLE_CREATE_CONNECTION_COMPLETE: { 845d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 855d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 866107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad mDelegate.handleCreateConnectionComplete( 87b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad (String) args.arg1, 88b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad (ConnectionRequest) args.arg2, 89b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad (ParcelableConnection) args.arg3); 905d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 915d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 925d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 935d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 945d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 955d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_ACTIVE: 965d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setActive((String) msg.obj); 975d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 985d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_RINGING: 995d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setRinging((String) msg.obj); 1005d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1015d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_DIALING: 1025d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setDialing((String) msg.obj); 1035d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1045d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_DISCONNECTED: { 1055d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1065d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 1077f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee mDelegate.setDisconnected((String) args.arg1, (DisconnectCause) args.arg2); 1085d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1095d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1105d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1115d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1125d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1135d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_ON_HOLD: 1145d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setOnHold((String) msg.obj); 1155d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 116100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee case MSG_SET_RINGBACK_REQUESTED: 117100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee mDelegate.setRingbackRequested((String) msg.obj, msg.arg1 == 1); 1185d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1195c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad case MSG_SET_CONNECTION_CAPABILITIES: 1205c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad mDelegate.setConnectionCapabilities((String) msg.obj, msg.arg1); 1215d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 122720c664401081ca00e56c7eef12641ae792da530Tyler Gunn case MSG_SET_CONNECTION_PROPERTIES: 123720c664401081ca00e56c7eef12641ae792da530Tyler Gunn mDelegate.setConnectionProperties((String) msg.obj, msg.arg1); 124720c664401081ca00e56c7eef12641ae792da530Tyler Gunn break; 1255d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_IS_CONFERENCED: { 1265d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1275d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 1285d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setIsConferenced((String) args.arg1, (String) args.arg2); 1295d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1305d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1315d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1325d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1335d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 134823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon case MSG_ADD_CONFERENCE_CALL: { 135823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon SomeArgs args = (SomeArgs) msg.obj; 136823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon try { 137823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon mDelegate.addConferenceCall( 138823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon (String) args.arg1, (ParcelableConference) args.arg2); 139823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } finally { 140823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon args.recycle(); 141823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 1425d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 143823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon } 1445d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_REMOVE_CALL: 1455d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.removeCall((String) msg.obj); 1465d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1475d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_ON_POST_DIAL_WAIT: { 1485d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1495d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 1505d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.onPostDialWait((String) args.arg1, (String) args.arg2); 1515d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1525d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1535d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1545d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1555d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 15627d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen case MSG_ON_POST_DIAL_CHAR: { 15727d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen SomeArgs args = (SomeArgs) msg.obj; 15827d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen try { 15927d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen mDelegate.onPostDialChar((String) args.arg1, (char) args.argi1); 16027d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen } finally { 16127d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen args.recycle(); 16227d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen } 16327d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen break; 16427d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen } 1655d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_QUERY_REMOTE_CALL_SERVICES: 1665d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.queryRemoteConnectionServices((RemoteServiceCallback) msg.obj); 1675d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1685d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_VIDEO_STATE: 1695d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setVideoState((String) msg.obj, msg.arg1); 1705d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1715d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_VIDEO_CALL_PROVIDER: { 1725d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1735d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 174b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad mDelegate.setVideoProvider((String) args.arg1, 175b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad (IVideoProvider) args.arg2); 1765d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1775d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1785d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1795d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1805d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 181100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee case MSG_SET_IS_VOIP_AUDIO_MODE: 182100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee mDelegate.setIsVoipAudioMode((String) msg.obj, msg.arg1 == 1); 1835d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1845d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_STATUS_HINTS: { 1855d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1865d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 1875d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setStatusHints((String) args.arg1, (StatusHints) args.arg2); 1885d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1895d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1905d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 1915d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 1925d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 193100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee case MSG_SET_ADDRESS: { 1945d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 1955d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 196100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee mDelegate.setAddress((String) args.arg1, (Uri) args.arg2, args.argi1); 1975d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 1985d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 1995d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2005d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 2015d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2025d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad case MSG_SET_CALLER_DISPLAY_NAME: { 2035d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = (SomeArgs) msg.obj; 2045d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad try { 2055d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate.setCallerDisplayName( 2065d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad (String) args.arg1, (String) args.arg2, args.argi1); 2075d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } finally { 2085d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.recycle(); 2095d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2105d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad break; 2115d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2127c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon case MSG_SET_CONFERENCEABLE_CONNECTIONS: { 2137c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon SomeArgs args = (SomeArgs) msg.obj; 2147c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon try { 2157c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon mDelegate.setConferenceableConnections( 2167c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon (String) args.arg1, (List<String>) args.arg2); 2177c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon } finally { 2187c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon args.recycle(); 2197c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon } 2207c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon break; 2217c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon } 2224a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn case MSG_ADD_EXISTING_CONNECTION: { 2234a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn SomeArgs args = (SomeArgs) msg.obj; 2244a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn try { 2254a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn mDelegate.addExistingConnection( 2264a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn (String) args.arg1, (ParcelableConnection) args.arg2); 2274a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn } finally { 2284a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn args.recycle(); 2294a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn } 2304a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn break; 2314a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn } 23217455a3d39350a39eb995897929977d793358365Anthony Lee case MSG_SET_CONFERENCE_MERGE_FAILED: { 23317455a3d39350a39eb995897929977d793358365Anthony Lee SomeArgs args = (SomeArgs) msg.obj; 23417455a3d39350a39eb995897929977d793358365Anthony Lee try { 23517455a3d39350a39eb995897929977d793358365Anthony Lee mDelegate.setConferenceMergeFailed((String) args.arg1); 23617455a3d39350a39eb995897929977d793358365Anthony Lee } finally { 23717455a3d39350a39eb995897929977d793358365Anthony Lee args.recycle(); 23817455a3d39350a39eb995897929977d793358365Anthony Lee } 23917455a3d39350a39eb995897929977d793358365Anthony Lee break; 24017455a3d39350a39eb995897929977d793358365Anthony Lee } 241dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn case MSG_PUT_EXTRAS: { 2426b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon SomeArgs args = (SomeArgs) msg.obj; 2436b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon try { 244dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn mDelegate.putExtras((String) args.arg1, (Bundle) args.arg2); 245dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn } finally { 246dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn args.recycle(); 247dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn } 248dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn break; 249dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn } 250dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn case MSG_REMOVE_EXTRAS: { 251dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn SomeArgs args = (SomeArgs) msg.obj; 252dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn try { 253dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn mDelegate.removeExtras((String) args.arg1, (List<String>) args.arg2); 2546b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon } finally { 2556b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon args.recycle(); 2566b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon } 25786c9fb41736f5848acf7baf71ebfe39df204ad4bTyler Gunn break; 2586b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon } 259bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn case MSG_ON_CONNECTION_EVENT: { 260bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn SomeArgs args = (SomeArgs) msg.obj; 261bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn try { 262876dbfb4767da4a2ba5459d5b78fb6eb55e4516fTyler Gunn mDelegate.onConnectionEvent((String) args.arg1, (String) args.arg2, 263876dbfb4767da4a2ba5459d5b78fb6eb55e4516fTyler Gunn (Bundle) args.arg3); 264bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn } finally { 265bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn args.recycle(); 266bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn } 26786c9fb41736f5848acf7baf71ebfe39df204ad4bTyler Gunn break; 268bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn } 2695d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2705d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2715d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad }; 2725d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2735d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad private final IConnectionServiceAdapter mStub = new IConnectionServiceAdapter.Stub() { 2745d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2756107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad public void handleCreateConnectionComplete( 276b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad String id, 277b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad ConnectionRequest request, 278b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad ParcelableConnection connection) { 2795d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 280b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad args.arg1 = id; 281b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad args.arg2 = request; 282b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad args.arg3 = connection; 2836107bab041fb7d851fbf865b7310d294aae970c8Ihab Awad mHandler.obtainMessage(MSG_HANDLE_CREATE_CONNECTION_COMPLETE, args).sendToTarget(); 2845d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2855d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2865d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2875d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setActive(String connectionId) { 2885d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_ACTIVE, connectionId).sendToTarget(); 2895d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2905d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2915d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2925d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setRinging(String connectionId) { 2935d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_RINGING, connectionId).sendToTarget(); 2945d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 2955d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 2965d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 2975d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setDialing(String connectionId) { 2985d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_DIALING, connectionId).sendToTarget(); 2995d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3005d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3015d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3025d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setDisconnected( 3037f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee String connectionId, DisconnectCause disconnectCause) { 3045d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 3055d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 3067f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee args.arg2 = disconnectCause; 3075d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_DISCONNECTED, args).sendToTarget(); 3085d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3095d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3105d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3115d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setOnHold(String connectionId) { 3125d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_ON_HOLD, connectionId).sendToTarget(); 3135d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3145d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3155d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 316100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee public void setRingbackRequested(String connectionId, boolean ringback) { 317100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee mHandler.obtainMessage(MSG_SET_RINGBACK_REQUESTED, ringback ? 1 : 0, 0, connectionId) 3185d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad .sendToTarget(); 3195d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3205d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3215d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3225c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad public void setConnectionCapabilities(String connectionId, int connectionCapabilities) { 3235c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad mHandler.obtainMessage( 3245c9c86ec0f95d1f5e1aca212967f508fc736b895Ihab Awad MSG_SET_CONNECTION_CAPABILITIES, connectionCapabilities, 0, connectionId) 3255d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad .sendToTarget(); 3265d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3275d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3285d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 329720c664401081ca00e56c7eef12641ae792da530Tyler Gunn public void setConnectionProperties(String connectionId, int connectionProperties) { 330720c664401081ca00e56c7eef12641ae792da530Tyler Gunn mHandler.obtainMessage( 331720c664401081ca00e56c7eef12641ae792da530Tyler Gunn MSG_SET_CONNECTION_PROPERTIES, connectionProperties, 0, connectionId) 332720c664401081ca00e56c7eef12641ae792da530Tyler Gunn .sendToTarget(); 333720c664401081ca00e56c7eef12641ae792da530Tyler Gunn } 334720c664401081ca00e56c7eef12641ae792da530Tyler Gunn 335720c664401081ca00e56c7eef12641ae792da530Tyler Gunn @Override 33617455a3d39350a39eb995897929977d793358365Anthony Lee public void setConferenceMergeFailed(String callId) { 33717455a3d39350a39eb995897929977d793358365Anthony Lee SomeArgs args = SomeArgs.obtain(); 33817455a3d39350a39eb995897929977d793358365Anthony Lee args.arg1 = callId; 33917455a3d39350a39eb995897929977d793358365Anthony Lee mHandler.obtainMessage(MSG_SET_CONFERENCE_MERGE_FAILED, args).sendToTarget(); 34017455a3d39350a39eb995897929977d793358365Anthony Lee } 34117455a3d39350a39eb995897929977d793358365Anthony Lee 34217455a3d39350a39eb995897929977d793358365Anthony Lee @Override 3435d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setIsConferenced(String callId, String conferenceCallId) { 3445d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 3455d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = callId; 3465d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = conferenceCallId; 3475d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_IS_CONFERENCED, args).sendToTarget(); 3485d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3495d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3505d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 351823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon public void addConferenceCall(String callId, ParcelableConference parcelableConference) { 352823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon SomeArgs args = SomeArgs.obtain(); 353823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon args.arg1 = callId; 354823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon args.arg2 = parcelableConference; 355823fd3c79dd4f762bbc778e0ce9e2204b6d3d454Santos Cordon mHandler.obtainMessage(MSG_ADD_CONFERENCE_CALL, args).sendToTarget(); 3565d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3575d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3585d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3595d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void removeCall(String connectionId) { 3605d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_REMOVE_CALL, connectionId).sendToTarget(); 3615d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3625d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3635d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3645d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void onPostDialWait(String connectionId, String remainingDigits) { 3655d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 3665d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 3675d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = remainingDigits; 3685d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_ON_POST_DIAL_WAIT, args).sendToTarget(); 3695d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3705d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3715d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 37227d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen public void onPostDialChar(String connectionId, char nextChar) { 37327d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen SomeArgs args = SomeArgs.obtain(); 37427d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen args.arg1 = connectionId; 37527d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen args.argi1 = nextChar; 37627d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen mHandler.obtainMessage(MSG_ON_POST_DIAL_CHAR, args).sendToTarget(); 37727d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen } 37827d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen 37927d1c2d148fe377ca0d2744f0f85789a42c8f808Nancy Chen @Override 3805d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void queryRemoteConnectionServices(RemoteServiceCallback callback) { 3815d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_QUERY_REMOTE_CALL_SERVICES, callback).sendToTarget(); 3825d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3835d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3845d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 3855d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public void setVideoState(String connectionId, int videoState) { 3865d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_VIDEO_STATE, videoState, 0, connectionId).sendToTarget(); 3875d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3885d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3895d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 390b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad public void setVideoProvider(String connectionId, IVideoProvider videoProvider) { 3915d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 3925d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 393b19a0bcdd8a5020c61a0d697f600fdc943c86f59Ihab Awad args.arg2 = videoProvider; 3945d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_VIDEO_CALL_PROVIDER, args).sendToTarget(); 3955d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 3965d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 3975d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 398100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee public final void setIsVoipAudioMode(String connectionId, boolean isVoip) { 399100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee mHandler.obtainMessage(MSG_SET_IS_VOIP_AUDIO_MODE, isVoip ? 1 : 0, 0, 4005d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad connectionId).sendToTarget(); 4015d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 4025d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 4035d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 4045d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public final void setStatusHints(String connectionId, StatusHints statusHints) { 4055d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 4065d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 4075d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = statusHints; 4085d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_STATUS_HINTS, args).sendToTarget(); 4095d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 4105d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 4115d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 412100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee public final void setAddress(String connectionId, Uri address, int presentation) { 4135d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 4145d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 415100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee args.arg2 = address; 4165d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.argi1 = presentation; 417100e293fa8021caed956597daa4e01cb19be1c33Andrew Lee mHandler.obtainMessage(MSG_SET_ADDRESS, args).sendToTarget(); 4185d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 4195d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 4205d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 4215d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public final void setCallerDisplayName( 4225d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad String connectionId, String callerDisplayName, int presentation) { 4235d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad SomeArgs args = SomeArgs.obtain(); 4245d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg1 = connectionId; 4255d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.arg2 = callerDisplayName; 4265d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad args.argi1 = presentation; 4275d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mHandler.obtainMessage(MSG_SET_CALLER_DISPLAY_NAME, args).sendToTarget(); 4285d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 4295d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 4305d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad @Override 4317c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon public final void setConferenceableConnections( 4327c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon String connectionId, List<String> conferenceableConnectionIds) { 4337c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon SomeArgs args = SomeArgs.obtain(); 4347c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon args.arg1 = connectionId; 4357c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon args.arg2 = conferenceableConnectionIds; 4367c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon mHandler.obtainMessage(MSG_SET_CONFERENCEABLE_CONNECTIONS, args).sendToTarget(); 4377c7bc7f6917484250974c5da00af9ef756844b0aSantos Cordon } 4384a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn 4394a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn @Override 4404a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn public final void addExistingConnection( 4414a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn String connectionId, ParcelableConnection connection) { 4424a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn SomeArgs args = SomeArgs.obtain(); 4434a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn args.arg1 = connectionId; 4444a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn args.arg2 = connection; 4454a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn mHandler.obtainMessage(MSG_ADD_EXISTING_CONNECTION, args).sendToTarget(); 4464a57b9b59b74c97e559a301af0add13cd4c3331cTyler Gunn } 4476b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon 4486b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon @Override 449dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn public final void putExtras(String connectionId, Bundle extras) { 4506b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon SomeArgs args = SomeArgs.obtain(); 4516b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon args.arg1 = connectionId; 4526b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon args.arg2 = extras; 453dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn mHandler.obtainMessage(MSG_PUT_EXTRAS, args).sendToTarget(); 454dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn } 455dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn 456dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn @Override 457dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn public final void removeExtras(String connectionId, List<String> keys) { 458dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn SomeArgs args = SomeArgs.obtain(); 459dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn args.arg1 = connectionId; 460dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn args.arg2 = keys; 461dee56a8a79f9daa1e597f5d4f399d3a5feedcac4Tyler Gunn mHandler.obtainMessage(MSG_REMOVE_EXTRAS, args).sendToTarget(); 4626b7f955c2d9b231660b8c54f8ef8e8e6ad802625Santos Cordon } 463bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn 464bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn @Override 465876dbfb4767da4a2ba5459d5b78fb6eb55e4516fTyler Gunn public final void onConnectionEvent(String connectionId, String event, Bundle extras) { 466bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn SomeArgs args = SomeArgs.obtain(); 467bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn args.arg1 = connectionId; 468bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn args.arg2 = event; 469876dbfb4767da4a2ba5459d5b78fb6eb55e4516fTyler Gunn args.arg3 = extras; 470bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn mHandler.obtainMessage(MSG_ON_CONNECTION_EVENT, args).sendToTarget(); 471bd1eb1f105e99d55fe87d758e8eafbe55a221a30Tyler Gunn } 4725d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad }; 4735d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 4745d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public ConnectionServiceAdapterServant(IConnectionServiceAdapter delegate) { 4755d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad mDelegate = delegate; 4765d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 4775d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad 4785d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad public IConnectionServiceAdapter getStub() { 4795d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad return mStub; 4805d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad } 4815d0410fa7c2dead7906780551ba4aa0305021cefIhab Awad} 482