Home | History | Annotate | Download | only in engine
      1 /*
      2  * Copyright (C) 2007 Esmertec AG.
      3  * Copyright (C) 2007 The Android Open Source Project
      4  *
      5  * Licensed under the Apache License, Version 2.0 (the "License");
      6  * you may not use this file except in compliance with the License.
      7  * You may obtain a copy of the License at
      8  *
      9  *      http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  */
     17 
     18 package com.android.im.engine;
     19 
     20 /**
     21  * Interfaces that allows the implementing classes to listen to contact list
     22  * relative events. Listeners are registered with ContactListManager.
     23  */
     24 public interface ContactListListener {
     25     public static final int LIST_CREATED        = 1;
     26     public static final int LIST_DELETED        = 2;
     27     public static final int LIST_LOADED         = 3;
     28     public static final int LIST_RENAMED        = 4;
     29     public static final int LIST_CONTACT_ADDED  = 5;
     30     public static final int LIST_CONTACT_REMOVED = 6;
     31     public static final int CONTACT_BLOCKED     = 7;
     32     public static final int CONTACT_UNBLOCKED   = 8;
     33 
     34     public static final int ERROR_CREATING_LIST = -1;
     35     public static final int ERROR_DELETING_LIST = -2;
     36     public static final int ERROR_RENAMING_LIST = -3;
     37 
     38     public static final int ERROR_LOADING_LIST          = -4;
     39     public static final int ERROR_LOADING_BLOCK_LIST    = -5;
     40 
     41     public static final int ERROR_RETRIEVING_PRESENCE   = -6;
     42 
     43     public static final int ERROR_ADDING_CONTACT    = -7;
     44     public static final int ERROR_REMOVING_CONTACT  = -8;
     45     public static final int ERROR_BLOCKING_CONTACT  = -9;
     46     public static final int ERROR_UNBLOCKING_CONTACT = -10;
     47 
     48     /**
     49      * Called when:
     50      *  <ul>
     51      *  <li> a contact list has been created, deleted, renamed or loaded, or
     52      *  <li> a contact has been added to or removed from a list, or
     53      *  <li> a contact has been blocked or unblocked
     54      *  </ul>
     55      *
     56      * @param type one of the following values:
     57      *      <ul>
     58      *      <li>{@link #LIST_CREATED} list: the newly created list;
     59      *          contact: null
     60      *      <li>{@link #LIST_DELETED} list: the delete list; contact: null
     61      *      <li>{@link #LIST_LOADED}  list: the newly loaded list;
     62      *          contact: null
     63      *      <li>{@link #LIST_RENAMED} list: the list renamed; contact: null
     64      *      <li>{@link #LIST_CONTACT_ADDED}   list: the list to which the
     65      *          contact is added, contact: the added contact
     66      *      <li>{@link #LIST_CONTACT_REMOVED} list: the list from which the
     67      *          contact is removed, contact: the removed contact
     68      *      <li>{@link #CONTACT_BLOCKED}   list: null, contact: the blocked
     69      *          contact
     70      *      <li>{@link #CONTACT_UNBLOCKED} list: null, contact: the unblocked
     71      *          contact
     72      *      </ul>
     73      * @param list
     74      * @param contact
     75      */
     76     public void onContactChange(int type, ContactList list, Contact contact);
     77 
     78     /**
     79      * Called when all the contact lists (including the block list) and
     80      * contacts have been loaded from the server.
     81      */
     82     public void onAllContactListsLoaded();
     83 
     84     /**
     85      * Called when received one or more contacts' updated presence
     86      * information from the server.
     87      *
     88      * @param contacts one or more contacts that have updated presence
     89      *      information.
     90      */
     91     public void onContactsPresenceUpdate(Contact[] contacts);
     92 
     93     /**
     94      *
     95      * @param errorType one of the following values:
     96      *      <ul>
     97      *      <li>{@link #ERROR_CREATING_LIST} listName: the name of the list
     98      *          to be created; contact: null
     99      *      <li>{@link #ERROR_DELETING_LIST} listName: the name of the list
    100      *          to be deleted; contact: null
    101      *      <li>{@link #ERROR_LOADING_LIST}  listName: the name of the list
    102      *          to be loaded, or null if the error occurred while fetching
    103      *          the list of contact lists; contact: null
    104      *      <li>{@link #ERROR_RENAMING_LIST} listName: the original name of
    105      *          the list to be renamed; contact: null
    106      *      <li>{@link #ERROR_LOADING_BLOCK_LIST} list: null; contact: null
    107      *      <li>{@link #ERROR_RETRIEVING_PRESENCE}
    108      *          <ul>
    109      *          <li>when retrieving presence for a list: listName: the name
    110      *              of the list, or null, depending on the implementation;
    111      *              contact: null
    112      *          <li>when retrieving presence for a contact: listName: the
    113      *              name of the list that the contact belongs to, or null,
    114      *              depending on the implementation;
    115      *              contact: the contact
    116      *          </ul>
    117      *      <li>{@link #ERROR_ADDING_CONTACT} listName: the name of the list
    118      *          to which the contact was to be added;
    119      *          contact: the contact to add
    120      *      <li>{@link #ERROR_REMOVING_CONTACT} listName: the name of the
    121      *          list from which the contact was to be removed;
    122      *          contact: the contact to remove
    123      *      <li>{@link #ERROR_BLOCKING_CONTACT} list: null;
    124      *          contact: the contact to block
    125      *      <li>{@link #ERROR_UNBLOCKING_CONTACT} list: null;
    126      *          contact: the contact to be unblocked
    127      *      </ul>
    128      * @param error
    129      * @param listName
    130      * @param contact
    131      */
    132     public void onContactError(int errorType, ImErrorInfo error,
    133             String listName, Contact contact);
    134 }
    135