- /*
- * 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<Contact> 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();
- }