예제 #1
0
  private IContactList getContactList(IImConnection conn) {
    if (conn == null) {
      return null;
    }

    try {
      IContactListManager contactListMgr = conn.getContactListManager();
      String listName = getSelectedListName();
      if (!TextUtils.isEmpty(listName)) {
        return contactListMgr.getContactList(listName);
      } else {
        // Use the default list
        List<IBinder> lists = contactListMgr.getContactLists();
        for (IBinder binder : lists) {
          IContactList list = IContactList.Stub.asInterface(binder);
          if (list.isDefault()) {
            return list;
          }
        }
        // No default list, use the first one as default list
        if (!lists.isEmpty()) {
          return IContactList.Stub.asInterface(lists.get(0));
        }
        return null;
      }
    } catch (RemoteException e) {
      // If the service has died, there is no list for now.
      return null;
    }
  }
예제 #2
0
 void inviteBuddies() {
   Rfc822Token[] recipients = Rfc822Tokenizer.tokenize(mAddressList.getText());
   try {
     IImConnection conn = mApp.getConnection(mProviderId);
     IContactList list = getContactList(conn);
     if (list == null) {
       Log.e(
           ImApp.LOG_TAG,
           "<AddContactActivity> can't find given contact list:" + getSelectedListName());
       finish();
     } else {
       boolean fail = false;
       for (Rfc822Token recipient : recipients) {
         String username = recipient.getAddress();
         if (mDefaultDomain != null && username.indexOf('@') == -1) {
           username = username + "@" + mDefaultDomain;
         }
         if (Log.isLoggable(ImApp.LOG_TAG, Log.DEBUG)) {
           log("addContact:" + username);
         }
         int res = list.addContact(username);
         if (res != ImErrorInfo.NO_ERROR) {
           fail = true;
           mHandler.showAlert(
               R.string.error, ErrorResUtils.getErrorRes(getResources(), res, username));
         }
       }
       // close the screen if there's no error.
       if (!fail) {
         finish();
       }
     }
   } catch (RemoteException ex) {
     Log.e(ImApp.LOG_TAG, "<AddContactActivity> inviteBuddies: caught " + ex);
   }
 }