Exemplo n.º 1
0
  public Bitmap getGroupChatContactAvatar(NmsGroupChatContact groupChatContact) {
    if (groupChatContact == null) {
      NmsLog.error(TAG, "groupChatContact is invalid!");
      return null;
    }

    ArrayList<Bitmap> bitmapList = new ArrayList<Bitmap>();

    short[] memberIds = groupChatContact.getMemberIds();

    if (memberIds != null) {
      for (int index = 0; index < memberIds.length && bitmapList.size() < 3; ++index) {
        Bitmap avatar = getAvatarViaEngineContactId(memberIds[index]);
        if (avatar != null) {
          bitmapList.add(avatar);
        }
      }
    } else {
      NmsLog.warn(TAG, "memberIds is null.");
    }

    if (bitmapList.size() < 3 && groupChatContact.isAlive()) {
      // myself bitmap
      Bitmap avatar = getMyselfAvatarViaSimId(groupChatContact.getSimId());
      if (avatar == null) {
        avatar = mDefaultBitmap;
      }
      bitmapList.add(avatar);
    }

    bitmapList =
        fillBitmapList(groupChatContact.getMemberCount(), bitmapList, mDefaultBitmap, mBlankBitmap);

    Bitmap result = null;
    if (bitmapList != null && bitmapList.size() == 3) {
      result = NmsCommonUtils.stitchBitmap(bitmapList.get(0), bitmapList.get(1), bitmapList.get(2));
    }

    return result;
  }