InCallServiceImpl.java revision 4bd6a95aabbf389a6399feb0c16d18ed98382a27
14549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal/* 24549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * Copyright (C) 2014 The Android Open Source Project 34549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * 44549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * Licensed under the Apache License, Version 2.0 (the "License"); 54549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * you may not use this file except in compliance with the License. 64549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * You may obtain a copy of the License at 74549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * 84549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * http://www.apache.org/licenses/LICENSE-2.0 94549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * 104549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * Unless required by applicable law or agreed to in writing, software 114549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * distributed under the License is distributed on an "AS IS" BASIS, 124549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * See the License for the specific language governing permissions and 144549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * limitations under the License 154549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal */ 164549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal 174549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepalpackage com.android.incallui; 184549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal 19df06e232852a93d8238f3cacaab4d704de7e1216Ihab Awadimport android.app.Service; 20df06e232852a93d8238f3cacaab4d704de7e1216Ihab Awadimport android.content.Intent; 21df06e232852a93d8238f3cacaab4d704de7e1216Ihab Awadimport android.os.IBinder; 22c7f8ba27e0fa19f748bef2060f5473bd07d068bfEvan Charltonimport android.telecomm.InCallService; 23df06e232852a93d8238f3cacaab4d704de7e1216Ihab Awadimport android.telecomm.Phone; 244549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal 254549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal/** 264549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * Used to receive updates about calls from the Telecomm component. This service is bound to 274549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * Telecomm while there exist calls which potentially require UI. This includes ringing (incoming), 284549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * dialing (outgoing), and active calls. When the last call is disconnected, Telecomm will unbind to 294549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * the service triggering InCallActivity (via CallList) to finish soon after. 304549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal */ 314bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordonpublic class InCallServiceImpl extends InCallService { 32df06e232852a93d8238f3cacaab4d704de7e1216Ihab Awad 334bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon @Override 344bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon public void onPhoneCreated(Phone phone) { 354bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon Log.v(this, "onPhoneCreated"); 364bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon CallList.getInstance().setPhone(phone); 374bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon AudioModeProvider.getInstance().setPhone(phone); 384bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon TelecommAdapter.getInstance().setPhone(phone); 394bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon InCallPresenter.getInstance().setPhone(phone); 404bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon InCallPresenter.getInstance().setUp( 414bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon getApplicationContext(), 424bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon CallList.getInstance(), 434bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon AudioModeProvider.getInstance()); 444bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon TelecommAdapter.getInstance().setContext(InCallServiceImpl.this); 454bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon } 464549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal 474e2f655895460f3a300832e79a32501d5606a717Santos Cordon @Override 484bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon public void onPhoneDestroyed(Phone phone) { 494bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon Log.v(this, "onPhoneDestroyed"); 504bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon // Tear down the InCall system 514bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon CallList.getInstance().clearPhone(); 524bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon AudioModeProvider.getInstance().clearPhone(); 534bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon TelecommAdapter.getInstance().clearPhone(); 544bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon TelecommAdapter.getInstance().setContext(null); 554bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon CallList.getInstance().clearOnDisconnect(); 564bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon InCallPresenter.getInstance().tearDown(); 570e7d8b3f2a18171087b3fe4aa9cc3bf4449ad5b3Yorke Lee } 584549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal} 59