/* * Copyright (C) 2007-2008 Esmertec AG. * Copyright (C) 2007-2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.im; import com.android.im.IContactList; import com.android.im.IContactListListener; import com.android.im.ISubscriptionListener; import com.android.im.engine.Contact; interface IContactListManager { void registerContactListListener(IContactListListener listener); void unregisterContactListListener(IContactListListener listener); void registerSubscriptionListener(ISubscriptionListener listener); void unregisterSubscriptionListener(ISubscriptionListener listener); /** * Gets all the contact lists of this account. */ List getContactLists(); /** * Gets a contact list with specific name, return null if no contact list is found. */ IContactList getContactList(String name); /** * Creates a contact list with given name and a list of initial contacts. * * @param name the name of the list to create. * @param contacts a list of contacts will be added to the new contact list, can be null. */ int createContactList(String name, in List contacts); /** * Deletes a contact list with given name. * * @param name the name of the list to delete. */ int deleteContactList(String name); /** * Removes a contact from all contact lists. Note the temporary contacts * can only be removed by this method. * * @param address the address of the contact to be removed. */ int removeContact(String address); /** * Approves a subscription request from another user. */ void approveSubscription(String address); /** * Declines a subscription request from another user. */ void declineSubscription(String address); /** * Blocks a contact. The ContactListListener will be notified when the contact is blocked * successfully or any error occurs. * * @param address the address of the contact to block. * @return ILLEGAL_CONTACT_LIST_MANAGER_STATE if contact lists is not loaded. */ int blockContact(String address); /** * Unblocks a contact.The ContactListListener will be notified when the contact is blocked * successfully or any error occurs. * * @param address the address of the contact to unblock. * @return ILLEGAL_CONTACT_LIST_MANAGER_STATE if contact lists is not loaded. */ int unBlockContact(String address); /** * Tells if a certain contact is blocked. * * @param address the address of the contact. * @return true if it's blocked; false otherwise. */ boolean isBlocked(String address); /** * Explicitly load contact lists from the server. The user only needs to call this method if * autoLoadContacts is false when login; otherwise, contact lists will be downloaded from the * server automatically after login. */ void loadContactLists(); /** * Gets the state of the manager. * * @return the state of the manager. */ int getState(); }