1eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen/* 2eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * Copyright (C) 2015 The Android Open Source Project 3eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * 4eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * Licensed under the Apache License, Version 2.0 (the "License"); 5eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * you may not use this file except in compliance with the License. 6eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * You may obtain a copy of the License at 7eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * 8eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * http://www.apache.org/licenses/LICENSE-2.0 9eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * 10eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * Unless required by applicable law or agreed to in writing, software 11eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * distributed under the License is distributed on an "AS IS" BASIS, 12eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * See the License for the specific language governing permissions and 14eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * limitations under the License. 15eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen */ 16eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 17eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenpackage com.android.ims; 18eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 19eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport android.app.PendingIntent; 20eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 21eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport com.android.ims.ImsCallProfile; 22eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport com.android.ims.internal.IImsCallSession; 23eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport com.android.ims.internal.IImsCallSessionListener; 24eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport com.android.ims.internal.IImsConfig; 25eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport com.android.ims.internal.IImsEcbm; 262038a4aa1d8bc0a65cbb9a21911722ebe504e0c1Tyler Gunnimport com.android.ims.internal.IImsMultiEndpoint; 27eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport com.android.ims.internal.IImsRegistrationListener; 28eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport com.android.ims.internal.IImsService; 29eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport com.android.ims.internal.IImsUt; 30eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport android.os.Message; 31eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 32eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen/* 33eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * Stub for IImsService interface. To enable forward compatibility during 34eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * development - empty APIs should not be deployed. 35eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * 36eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * @hide 37eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen */ 38eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenpublic abstract class ImsServiceBase { 39eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen /** 40eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * IImsService stub implementation. 41eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen */ 42eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen private final class ImsServiceBinder extends IImsService.Stub { 43eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 44eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public int open(int phoneId, int serviceClass, PendingIntent incomingCallIntent, 45eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen IImsRegistrationListener listener) { 46eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onOpen(phoneId, serviceClass, incomingCallIntent, listener); 47eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 48eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 49eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 50eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public void close(int serviceId) { 51eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen onClose(serviceId); 52eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 53eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 54eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 55eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public boolean isConnected(int serviceId, int serviceType, int callType) { 56eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onIsConnected(serviceId, serviceType, callType); 57eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 58eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 59eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 60eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public boolean isOpened(int serviceId) { 61eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onIsOpened(serviceId); 62eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 63eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 64eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 65eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public void setRegistrationListener(int serviceId, IImsRegistrationListener listener) { 66eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen onSetRegistrationListener(serviceId, listener); 67eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 68eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 69eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 70ce41017a51d0ecf6e0e2059011f21ec68f33771aPavel Zhamaitsiak public void addRegistrationListener(int serviceId, int serviceType, IImsRegistrationListener listener) { 71ce41017a51d0ecf6e0e2059011f21ec68f33771aPavel Zhamaitsiak onAddRegistrationListener(serviceId, serviceType, listener); 72ce41017a51d0ecf6e0e2059011f21ec68f33771aPavel Zhamaitsiak } 73ce41017a51d0ecf6e0e2059011f21ec68f33771aPavel Zhamaitsiak 74ce41017a51d0ecf6e0e2059011f21ec68f33771aPavel Zhamaitsiak 75ce41017a51d0ecf6e0e2059011f21ec68f33771aPavel Zhamaitsiak @Override 76eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public ImsCallProfile createCallProfile(int serviceId, int serviceType, int callType) { 77eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onCreateCallProfile(serviceId, serviceType, callType); 78eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 79eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 80eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 81eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public IImsCallSession createCallSession(int serviceId, ImsCallProfile profile, 82eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen IImsCallSessionListener listener) { 83eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onCreateCallSession(serviceId, profile, listener); 84eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 85eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 86eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 87eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public IImsCallSession getPendingCallSession(int serviceId, String callId) { 88eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onGetPendingCallSession(serviceId, callId); 89eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 90eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 91eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 92eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public IImsUt getUtInterface(int serviceId) { 93eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onGetUtInterface(serviceId); 94eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 95eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 96eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 97eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public IImsConfig getConfigInterface(int phoneId) { 98eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onGetConfigInterface(phoneId); 99eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 100eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 101eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 102eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public void turnOnIms(int phoneId) { 103eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen onTurnOnIms(phoneId); 104eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 105eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 106eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 107eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public void turnOffIms(int phoneId) { 108eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen onTurnOffIms(phoneId); 109eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 110eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 111eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 112eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public IImsEcbm getEcbmInterface(int serviceId) { 113eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onGetEcbmInterface(serviceId); 114eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 115eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 116eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 117eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public void setUiTTYMode(int serviceId, int uiTtyMode, Message onComplete) { 118eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen onSetUiTTYMode(serviceId, uiTtyMode, onComplete); 119eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 1202038a4aa1d8bc0a65cbb9a21911722ebe504e0c1Tyler Gunn 1212038a4aa1d8bc0a65cbb9a21911722ebe504e0c1Tyler Gunn @Override 1222038a4aa1d8bc0a65cbb9a21911722ebe504e0c1Tyler Gunn public IImsMultiEndpoint getMultiEndpointInterface(int serviceId) { 1232038a4aa1d8bc0a65cbb9a21911722ebe504e0c1Tyler Gunn return onGetMultiEndpointInterface(serviceId); 1242038a4aa1d8bc0a65cbb9a21911722ebe504e0c1Tyler Gunn } 125eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 126eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 127eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen private ImsServiceBinder mBinder; 128eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 129eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public ImsServiceBinder getBinder() { 130eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen if (mBinder == null) { 131eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen mBinder = new ImsServiceBinder(); 132eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 133eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 134eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return mBinder; 135eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 136eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 137eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected int onOpen(int phoneId, int serviceClass, PendingIntent incomingCallIntent, 138eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen IImsRegistrationListener listener) { 139eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 140eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 141eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return 0; // DUMMY VALUE 142eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 143eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 144eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected void onClose(int serviceId) { 145eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 146eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 147eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 148eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected boolean onIsConnected(int serviceId, int serviceType, int callType) { 149eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 150eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 151eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return false; // DUMMY VALUE 152eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 153eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 154eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected boolean onIsOpened(int serviceId) { 155eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 156eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 157eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return false; // DUMMY VALUE 158eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 159eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 160eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected void onSetRegistrationListener(int serviceId, IImsRegistrationListener listener) { 161eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 162eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 163eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 164ce41017a51d0ecf6e0e2059011f21ec68f33771aPavel Zhamaitsiak protected void onAddRegistrationListener(int serviceId, int serviceType, IImsRegistrationListener listener) { 165ce41017a51d0ecf6e0e2059011f21ec68f33771aPavel Zhamaitsiak // no-op 166ce41017a51d0ecf6e0e2059011f21ec68f33771aPavel Zhamaitsiak } 167ce41017a51d0ecf6e0e2059011f21ec68f33771aPavel Zhamaitsiak 168eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected ImsCallProfile onCreateCallProfile(int serviceId, int serviceType, int callType) { 169eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 170eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 171eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 172eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 173eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 174eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected IImsCallSession onCreateCallSession(int serviceId, ImsCallProfile profile, 175eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen IImsCallSessionListener listener) { 176eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 177eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 178eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 179eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 180eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 181eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected IImsCallSession onGetPendingCallSession(int serviceId, String callId) { 182eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 183eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 184eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 185eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 186eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 187eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected IImsUt onGetUtInterface(int serviceId) { 188eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 189eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 190eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 191eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 192eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 193eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected IImsConfig onGetConfigInterface(int phoneId) { 194eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 195eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 196eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 197eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 198eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 199eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected void onTurnOnIms(int phoneId) { 200eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 201eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 202eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 203eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected void onTurnOffIms(int phoneId) { 204eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 205eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 206eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 207eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected IImsEcbm onGetEcbmInterface(int serviceId) { 208eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 209eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 210eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 211eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 212eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 213eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected void onSetUiTTYMode(int serviceId, int uiTtyMode, Message onComplete) { 214eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 215eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 2162038a4aa1d8bc0a65cbb9a21911722ebe504e0c1Tyler Gunn 2172038a4aa1d8bc0a65cbb9a21911722ebe504e0c1Tyler Gunn protected IImsMultiEndpoint onGetMultiEndpointInterface(int serviceId) { 2182038a4aa1d8bc0a65cbb9a21911722ebe504e0c1Tyler Gunn // no-op 2192038a4aa1d8bc0a65cbb9a21911722ebe504e0c1Tyler Gunn return null; 2202038a4aa1d8bc0a65cbb9a21911722ebe504e0c1Tyler Gunn } 221eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen} 222eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 223