ImsServiceBase.java revision eea3d44c049ec27c98c531b5f05b1c2d267cba73
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; 26eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport com.android.ims.internal.IImsRegistrationListener; 27eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport com.android.ims.internal.IImsService; 28eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport com.android.ims.internal.IImsUt; 29eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenimport android.os.Message; 30eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 31eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen/* 32eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * Stub for IImsService interface. To enable forward compatibility during 33eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * development - empty APIs should not be deployed. 34eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * 35eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * @hide 36eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen */ 37eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohenpublic abstract class ImsServiceBase { 38eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen /** 39eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen * IImsService stub implementation. 40eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen */ 41eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen private final class ImsServiceBinder extends IImsService.Stub { 42eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 43eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public int open(int phoneId, int serviceClass, PendingIntent incomingCallIntent, 44eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen IImsRegistrationListener listener) { 45eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onOpen(phoneId, serviceClass, incomingCallIntent, listener); 46eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 47eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 48eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 49eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public void close(int serviceId) { 50eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen onClose(serviceId); 51eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 52eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 53eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 54eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public boolean isConnected(int serviceId, int serviceType, int callType) { 55eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onIsConnected(serviceId, serviceType, callType); 56eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 57eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 58eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 59eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public boolean isOpened(int serviceId) { 60eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onIsOpened(serviceId); 61eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 62eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 63eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 64eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public void setRegistrationListener(int serviceId, IImsRegistrationListener listener) { 65eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen onSetRegistrationListener(serviceId, listener); 66eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 67eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 68eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 69eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public ImsCallProfile createCallProfile(int serviceId, int serviceType, int callType) { 70eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onCreateCallProfile(serviceId, serviceType, callType); 71eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 72eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 73eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 74eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public IImsCallSession createCallSession(int serviceId, ImsCallProfile profile, 75eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen IImsCallSessionListener listener) { 76eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onCreateCallSession(serviceId, profile, listener); 77eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 78eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 79eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 80eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public IImsCallSession getPendingCallSession(int serviceId, String callId) { 81eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onGetPendingCallSession(serviceId, callId); 82eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 83eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 84eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 85eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public IImsUt getUtInterface(int serviceId) { 86eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onGetUtInterface(serviceId); 87eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 88eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 89eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 90eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public IImsConfig getConfigInterface(int phoneId) { 91eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onGetConfigInterface(phoneId); 92eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 93eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 94eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 95eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public void turnOnIms(int phoneId) { 96eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen onTurnOnIms(phoneId); 97eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 98eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 99eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 100eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public void turnOffIms(int phoneId) { 101eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen onTurnOffIms(phoneId); 102eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 103eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 104eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 105eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public IImsEcbm getEcbmInterface(int serviceId) { 106eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return onGetEcbmInterface(serviceId); 107eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 108eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 109eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen @Override 110eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public void setUiTTYMode(int serviceId, int uiTtyMode, Message onComplete) { 111eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen onSetUiTTYMode(serviceId, uiTtyMode, onComplete); 112eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 113eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 114eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 115eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen private ImsServiceBinder mBinder; 116eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 117eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen public ImsServiceBinder getBinder() { 118eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen if (mBinder == null) { 119eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen mBinder = new ImsServiceBinder(); 120eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 121eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 122eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return mBinder; 123eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 124eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 125eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected int onOpen(int phoneId, int serviceClass, PendingIntent incomingCallIntent, 126eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen IImsRegistrationListener listener) { 127eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 128eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 129eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return 0; // DUMMY VALUE 130eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 131eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 132eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected void onClose(int serviceId) { 133eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 134eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 135eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 136eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected boolean onIsConnected(int serviceId, int serviceType, int callType) { 137eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 138eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 139eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return false; // DUMMY VALUE 140eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 141eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 142eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected boolean onIsOpened(int serviceId) { 143eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 144eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 145eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return false; // DUMMY VALUE 146eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 147eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 148eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected void onSetRegistrationListener(int serviceId, IImsRegistrationListener listener) { 149eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 150eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 151eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 152eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected ImsCallProfile onCreateCallProfile(int serviceId, int serviceType, int callType) { 153eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 154eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 155eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 156eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 157eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 158eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected IImsCallSession onCreateCallSession(int serviceId, ImsCallProfile profile, 159eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen IImsCallSessionListener listener) { 160eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 161eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 162eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 163eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 164eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 165eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected IImsCallSession onGetPendingCallSession(int serviceId, String callId) { 166eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 167eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 168eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 169eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 170eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 171eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected IImsUt onGetUtInterface(int serviceId) { 172eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 173eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 174eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 175eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 176eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 177eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected IImsConfig onGetConfigInterface(int phoneId) { 178eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 179eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 180eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 181eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 182eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 183eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected void onTurnOnIms(int phoneId) { 184eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 185eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 186eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 187eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected void onTurnOffIms(int phoneId) { 188eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 189eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 190eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 191eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected IImsEcbm onGetEcbmInterface(int serviceId) { 192eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 193eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 194eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen return null; 195eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 196eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 197eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen protected void onSetUiTTYMode(int serviceId, int uiTtyMode, Message onComplete) { 198eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen // no-op 199eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen } 200eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen} 201eea3d44c049ec27c98c531b5f05b1c2d267cba73Etan Cohen 202