/* * Copyright (C) 2007 Esmertec AG. * Copyright (C) 2007 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 info.guardianproject.otr.app.im.engine; /** * Interfaces that allows the implementing classes to listen to contact list * relative events. Listeners are registered with ContactListManager. */ public interface ContactListListener { public static final int LIST_CREATED = 1; public static final int LIST_DELETED = 2; public static final int LIST_LOADED = 3; public static final int LIST_RENAMED = 4; public static final int LIST_CONTACT_ADDED = 5; public static final int LIST_CONTACT_REMOVED = 6; public static final int CONTACT_BLOCKED = 7; public static final int CONTACT_UNBLOCKED = 8; public static final int ERROR_CREATING_LIST = -1; public static final int ERROR_DELETING_LIST = -2; public static final int ERROR_RENAMING_LIST = -3; public static final int ERROR_LOADING_LIST = -4; public static final int ERROR_LOADING_BLOCK_LIST = -5; public static final int ERROR_RETRIEVING_PRESENCE = -6; public static final int ERROR_ADDING_CONTACT = -7; public static final int ERROR_REMOVING_CONTACT = -8; public static final int ERROR_BLOCKING_CONTACT = -9; public static final int ERROR_UNBLOCKING_CONTACT = -10; /** * Called when: * <ul> * <li> a contact list has been created, deleted, renamed or loaded, or * <li> a contact has been added to or removed from a list, or * <li> a contact has been blocked or unblocked * </ul> * * @param type one of the following values: * <ul> * <li>{@link #LIST_CREATED} list: the newly created list; * contact: null * <li>{@link #LIST_DELETED} list: the delete list; contact: null * <li>{@link #LIST_LOADED} list: the newly loaded list; * contact: null * <li>{@link #LIST_RENAMED} list: the list renamed; contact: null * <li>{@link #LIST_CONTACT_ADDED} list: the list to which the * contact is added, contact: the added contact * <li>{@link #LIST_CONTACT_REMOVED} list: the list from which the * contact is removed, contact: the removed contact * <li>{@link #CONTACT_BLOCKED} list: null, contact: the blocked * contact * <li>{@link #CONTACT_UNBLOCKED} list: null, contact: the unblocked * contact * </ul> * @param list * @param contact */ public void onContactChange(int type, ContactList list, Contact contact); /** * Called when all the contact lists (including the block list) and * contacts have been loaded from the server. */ public void onAllContactListsLoaded(); /** * Called when received one or more contacts' updated presence * information from the server. * * @param contacts one or more contacts that have updated presence * information. */ public void onContactsPresenceUpdate(Contact[] contacts); /** * * @param errorType one of the following values: * <ul> * <li>{@link #ERROR_CREATING_LIST} listName: the name of the list * to be created; contact: null * <li>{@link #ERROR_DELETING_LIST} listName: the name of the list * to be deleted; contact: null * <li>{@link #ERROR_LOADING_LIST} listName: the name of the list * to be loaded, or null if the error occurred while fetching * the list of contact lists; contact: null * <li>{@link #ERROR_RENAMING_LIST} listName: the original name of * the list to be renamed; contact: null * <li>{@link #ERROR_LOADING_BLOCK_LIST} list: null; contact: null * <li>{@link #ERROR_RETRIEVING_PRESENCE} * <ul> * <li>when retrieving presence for a list: listName: the name * of the list, or null, depending on the implementation; * contact: null * <li>when retrieving presence for a contact: listName: the * name of the list that the contact belongs to, or null, * depending on the implementation; * contact: the contact * </ul> * <li>{@link #ERROR_ADDING_CONTACT} listName: the name of the list * to which the contact was to be added; * contact: the contact to add * <li>{@link #ERROR_REMOVING_CONTACT} listName: the name of the * list from which the contact was to be removed; * contact: the contact to remove * <li>{@link #ERROR_BLOCKING_CONTACT} list: null; * contact: the contact to block * <li>{@link #ERROR_UNBLOCKING_CONTACT} list: null; * contact: the contact to be unblocked * </ul> * @param error * @param listName * @param contact */ public void onContactError(int errorType, ImErrorInfo error, String listName, Contact contact); }