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 196cddf46812634fadc194830774110780f14e9462Tyler Gunnimport android.telecom.InCallService; 206cddf46812634fadc194830774110780f14e9462Tyler Gunnimport android.telecom.Phone; 214549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal 224549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal/** 234549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * Used to receive updates about calls from the Telecomm component. This service is bound to 244549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * Telecomm while there exist calls which potentially require UI. This includes ringing (incoming), 254549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * dialing (outgoing), and active calls. When the last call is disconnected, Telecomm will unbind to 264549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal * the service triggering InCallActivity (via CallList) to finish soon after. 274549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal */ 284bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordonpublic class InCallServiceImpl extends InCallService { 29df06e232852a93d8238f3cacaab4d704de7e1216Ihab Awad 304bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon @Override 314bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon public void onPhoneCreated(Phone phone) { 324bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon Log.v(this, "onPhoneCreated"); 334bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon CallList.getInstance().setPhone(phone); 344bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon AudioModeProvider.getInstance().setPhone(phone); 356cddf46812634fadc194830774110780f14e9462Tyler Gunn TelecomAdapter.getInstance().setPhone(phone); 364bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon InCallPresenter.getInstance().setPhone(phone); 374bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon InCallPresenter.getInstance().setUp( 384bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon getApplicationContext(), 394bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon CallList.getInstance(), 404bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon AudioModeProvider.getInstance()); 416cddf46812634fadc194830774110780f14e9462Tyler Gunn TelecomAdapter.getInstance().setContext(InCallServiceImpl.this); 424bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon } 434549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal 444e2f655895460f3a300832e79a32501d5606a717Santos Cordon @Override 454bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon public void onPhoneDestroyed(Phone phone) { 464bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon Log.v(this, "onPhoneDestroyed"); 474bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon // Tear down the InCall system 484bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon CallList.getInstance().clearPhone(); 494bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon AudioModeProvider.getInstance().clearPhone(); 506cddf46812634fadc194830774110780f14e9462Tyler Gunn TelecomAdapter.getInstance().clearPhone(); 516cddf46812634fadc194830774110780f14e9462Tyler Gunn TelecomAdapter.getInstance().setContext(null); 524bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon CallList.getInstance().clearOnDisconnect(); 534bd6a95aabbf389a6399feb0c16d18ed98382a27Santos Cordon InCallPresenter.getInstance().tearDown(); 540e7d8b3f2a18171087b3fe4aa9cc3bf4449ad5b3Yorke Lee } 554549f54d6799f549fa60cfe32949c640135480e4Sailesh Nepal} 56