Пример #1
0
  @Override
  protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    if (currentMessageObject == null) {
      return;
    }

    avatarImage.draw(canvas);

    if (nameLayout != null) {
      canvas.save();
      canvas.translate(
          avatarImage.getImageX() + avatarImage.getImageWidth() + AndroidUtilities.dp(9),
          AndroidUtilities.dp(10) + namesOffset);
      namePaint.setColor(
          AvatarDrawable.getColorForId(currentMessageObject.messageOwner.media.user_id));
      nameLayout.draw(canvas);
      canvas.restore();
    }
    if (phoneLayout != null) {
      canvas.save();
      canvas.translate(
          avatarImage.getImageX() + avatarImage.getImageWidth() + AndroidUtilities.dp(9),
          AndroidUtilities.dp(31) + namesOffset);
      phoneLayout.draw(canvas);
      canvas.restore();
    }

    if (drawAddButton) {
      Drawable addContactDrawable;
      if (currentMessageObject.isOutOwner()) {
        addContactDrawable = addContactDrawableOut;
      } else {
        addContactDrawable = addContactDrawableIn;
      }
      setDrawableBounds(
          addContactDrawable,
          avatarImage.getImageX() + namesWidth + AndroidUtilities.dp(78),
          AndroidUtilities.dp(13) + namesOffset);
      addContactDrawable.draw(canvas);
    }
  }
Пример #2
0
  @Override
  protected void onDraw(Canvas canvas) {
    if (user == null && chat == null && encryptedChat == null) {
      return;
    }

    if (useSeparator) {
      if (LocaleController.isRTL) {
        canvas.drawLine(
            0,
            getMeasuredHeight() - 1,
            getMeasuredWidth() - AndroidUtilities.dp(AndroidUtilities.leftBaseline),
            getMeasuredHeight() - 1,
            linePaint);
      } else {
        canvas.drawLine(
            AndroidUtilities.dp(AndroidUtilities.leftBaseline),
            getMeasuredHeight() - 1,
            getMeasuredWidth(),
            getMeasuredHeight() - 1,
            linePaint);
      }
    }

    if (drawAlpha != 1) {
      canvas.saveLayerAlpha(
          0,
          0,
          canvas.getWidth(),
          canvas.getHeight(),
          (int) (255 * drawAlpha),
          Canvas.HAS_ALPHA_LAYER_SAVE_FLAG);
    }

    if (drawNameLock) {
      setDrawableBounds(lockDrawable, nameLockLeft, nameLockTop);
      lockDrawable.draw(canvas);
    } else if (drawNameGroup) {
      setDrawableBounds(groupDrawable, nameLockLeft, nameLockTop);
      groupDrawable.draw(canvas);
    } else if (drawNameBroadcast) {
      setDrawableBounds(broadcastDrawable, nameLockLeft, nameLockTop);
      broadcastDrawable.draw(canvas);
    } else if (drawNameBot) {
      setDrawableBounds(botDrawable, nameLockLeft, nameLockTop);
      botDrawable.draw(canvas);
    }

    if (nameLayout != null) {
      canvas.save();
      canvas.translate(nameLeft, nameTop);
      nameLayout.draw(canvas);
      canvas.restore();
      if (drawCheck) {
        if (LocaleController.isRTL) {
          setDrawableBounds(
              checkDrawable,
              nameLeft - AndroidUtilities.dp(4) - checkDrawable.getIntrinsicWidth(),
              nameLockTop);
        } else {
          setDrawableBounds(
              checkDrawable,
              nameLeft + (int) nameLayout.getLineWidth(0) + AndroidUtilities.dp(4),
              nameLockTop);
        }
        checkDrawable.draw(canvas);
      }
    }

    if (onlineLayout != null) {
      canvas.save();
      canvas.translate(onlineLeft, AndroidUtilities.dp(40));
      onlineLayout.draw(canvas);
      canvas.restore();
    }

    if (countLayout != null) {
      if (MessagesController.getInstance().isDialogMuted(dialog_id)) {
        setDrawableBounds(
            countDrawableGrey,
            countLeft - AndroidUtilities.dp(5.5f),
            countTop,
            countWidth + AndroidUtilities.dp(11),
            countDrawableGrey.getIntrinsicHeight());
        countDrawableGrey.draw(canvas);
      } else {
        setDrawableBounds(
            countDrawable,
            countLeft - AndroidUtilities.dp(5.5f),
            countTop,
            countWidth + AndroidUtilities.dp(11),
            countDrawable.getIntrinsicHeight());
        countDrawable.draw(canvas);
      }
      canvas.save();
      canvas.translate(countLeft, countTop + AndroidUtilities.dp(4));
      countLayout.draw(canvas);
      canvas.restore();
    }

    avatarImage.draw(canvas);
  }