1cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak/* 2cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Copyright (c) 2016 The Android Open Source Project 3cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 4cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Licensed under the Apache License, Version 2.0 (the "License"); 5cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * you may not use this file except in compliance with the License. 6cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * You may obtain a copy of the License at 7cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 8cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * http://www.apache.org/licenses/LICENSE-2.0 9cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 10cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Unless required by applicable law or agreed to in writing, software 11cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * distributed under the License is distributed on an "AS IS" BASIS, 12cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * See the License for the specific language governing permissions and 14cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * limitations under the License. 15cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 16cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 17cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakpackage com.android.ims.internal.uce.presence; 18cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 19cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.IPresenceListener; 20cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.PresCapInfo; 21cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.presence.PresServiceInfo; 22cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.common.UceLong; 23cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakimport com.android.ims.internal.uce.common.StatusCode; 24cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 25cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak/** IPresenceService 26cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak{@hide} */ 27cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiakinterface IPresenceService 28cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak{ 29cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 30cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 31cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Gets the version of the Presence service implementation. 32cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * The verion information is received in getVersionCb callback. 33cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceHdl returned in createPresenceService(). 34cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return StatusCode, status of the request placed. 35cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 36cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak StatusCode getVersion(int presenceServiceHdl); 37cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 38cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 39cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Adds a listener to the Presence service. 40cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceHdl returned in createPresenceService(). 41cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceListener IPresenceListener Object. 42cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceListenerHdl wrapper for client's listener handle to be stored. 43cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 44cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * The service will fill UceLong.mUceLong with presenceListenerHandle. 45cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 46cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return StatusCode, status of the request placed 47cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 48cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak StatusCode addListener(int presenceServiceHdl, IPresenceListener presenceServiceListener, 49cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak inout UceLong presenceServiceListenerHdl); 50cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 51cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 52cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Removes a listener from the Presence service. 53cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceHdl returned in createPresenceService(). 54cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceListenerHdl provided in createPresenceService() or Addlistener(). 55cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return StatusCode, status of the request placed. 56cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 57cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak StatusCode removeListener(int presenceServiceHdl, in UceLong presenceServiceListenerHdl); 58cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 59cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 60cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Re-enables the Presence service if it is in the Blocked state due to receiving a SIP 61cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * response 489 Bad event. 62cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * The application must call this API before calling any presence API after receiving a SIP 63cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * response 489 Bad event. 64cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * The status of this request is notified in cmdStatus callback. 65cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 66cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceHdl returned in createPresenceService(). 67cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param userData, userData provided by client to identify the request/API call, it 68cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * is returned in the cmdStatus() callback for client to match response 69cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * with original request. 70cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return StatusCode, status of the request placed. 71cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 72cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak StatusCode reenableService(int presenceServiceHdl, int userData); 73cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 74cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 75cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Sends a request to publish current device capabilities. 76cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * The network response is notifed in sipResponseReceived() callback. 77cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceHdl returned in createPresenceService(). 78cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param myCapInfo PresCapInfo object. 79cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param userData, userData provided by client to identify the request/API call, it 80cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * is returned in the cmdStatus() callback for client to match response 81cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * with original request. 82cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return StatusCode, status of the request placed. 83cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 84cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak StatusCode publishMyCap(int presenceServiceHdl, in PresCapInfo myCapInfo , int userData); 85cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 86cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 87cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Retrieves the capability information for a single contact. Clients receive the requested 88cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * information via the listener callback function capInfoReceived() callback. 89cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 90cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceHdl returned in createPresenceService(). 91cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param remoteUri remote contact URI 92cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param userData, userData provided by client to identify the request/API call, it 93cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * is returned in the cmdStatus() callback for client to match response 94cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * with original request. 95cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return StatusCode, status of the request placed. 96cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 97cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak StatusCode getContactCap(int presenceServiceHdl , String remoteUri, int userData); 98cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 99cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 100cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Retrieves the capability information for a list of contacts. Clients receive the requested 101cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * information via the listener callback function listCapInfoReceived() callback. 102cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 103cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceHdl returned in createPresenceService(). 104cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param remoteUriList list of remote contact URI's. 105cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param userData, userData provided by client to identify the request/API call, it 106cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * is returned in the cmdStatus() callback for client to match response 107cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * with original request. 108cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return StatusCode, status of the request placed. 109cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 110cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak StatusCode getContactListCap(int presenceServiceHdl, in String[] remoteUriList, int userData); 111cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 112cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak /** 113cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * Sets the mapping between a new feature tag and the corresponding service tuple information 114cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * to be included in the published document. 115cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * The staus of this call is received in cmdStatus callback. 116cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * 117cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param presenceServiceHdl returned in createPresenceService(). 118cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param featureTag to be supported 119cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param PresServiceInfo service information describing the featureTag. 120cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @param userData, userData provided by client to identify the request/API call, it 121cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * is returned in the cmdStatus() callback for client to match response 122cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * with original request. 123cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak * @return StatusCode, status of the request placed. 124cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak */ 125cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak StatusCode setNewFeatureTag(int presenceServiceHdl, String featureTag, 126cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak in PresServiceInfo serviceInfo, int userData); 127cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak 128cfedd20d54687449bb6a6982085003cbf9a22bcbPavel Zhamaitsiak} 129