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