コード例 #1
0
 private void initializeContactWidgetVisibility() {
   if (isBadgeEnabled()) {
     contactPhotoBadge.setVisibility(View.VISIBLE);
     contactPhotoImage.setVisibility(View.GONE);
   } else {
     contactPhotoBadge.setVisibility(View.GONE);
     contactPhotoImage.setVisibility(View.VISIBLE);
   }
 }
コード例 #2
0
  public ConversationHeaderView(Context context, boolean first) {
    this(context, (Set<Long>) null);

    this.first = true;
    contactPhoto.setVisibility(View.GONE);
    this.setBackgroundColor(Color.TRANSPARENT);
  }
コード例 #3
0
  public void set(MessageRecord message, boolean batchMode) {
    this.recipients = message.getRecipients();
    this.threadId = message.getThreadId();
    this.fromView.setText(formatFrom(recipients, message.getCount()));

    if (message.isKeyExchange())
      this.subjectView.setText("Key exchange message...", TextView.BufferType.SPANNABLE);
    else this.subjectView.setText(message.getBody(), TextView.BufferType.SPANNABLE);

    if (message.getEmphasis())
      ((Spannable) this.subjectView.getText())
          .setSpan(
              new StyleSpan(android.graphics.Typeface.ITALIC),
              0,
              this.subjectView.getText().length(),
              Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

    if (message.getDate() > 0)
      this.dateView.setText(
          DateUtils.getRelativeTimeSpanString(getContext(), message.getDate(), false));

    if (selectedThreads != null) this.checkbox.setChecked(selectedThreads.contains(threadId));

    clearIndicators();
    setIndicators(message.getRead(), message.isKeyExchange());

    if (!first) {
      if (batchMode) checkbox.setVisibility(View.VISIBLE);
      else checkbox.setVisibility(View.GONE);

      if (!PreferenceManager.getDefaultSharedPreferences(context)
          .getBoolean(
              ApplicationPreferencesActivity.CONVERSATION_ICONS_LIST_PREF,
              ApplicationPreferencesActivity.showIcon())) {
        contactPhoto.setVisibility(View.GONE);
      } else {
        contactPhoto.setImageBitmap(
            message.getRecipients().getPrimaryRecipient().getContactPhoto());
        contactPhoto.assignContactFromPhone(
            message.getRecipients().getPrimaryRecipient().getNumber(), false);
        contactPhoto.setVisibility(View.VISIBLE);
      }
    }
  }
コード例 #4
0
  private void updateAvatarView() {
    Drawable avatarDrawable;
    if (mConversation.getRecipients().size() == 1) {

      Contact contact = mConversation.getRecipients().get(0);

      // to be continued
      avatarDrawable = contact.getAvatar(mContext, sDefaultContactImage);

      if (contact.existsInDatabase()) { // 010查看联系人是否存在于通讯录
        mAvatarView.assignContactUri(contact.getUri());
      } else {
        mAvatarView.assignContactFromPhone(contact.getNumber(), true);
      }
    } else {
      // TODO get a multiple recipients asset (or do something else)
      avatarDrawable = sDefaultContactImage;
      mAvatarView.assignContactUri(null);
    }
    mAvatarView.setImageDrawable(avatarDrawable);
    mAvatarView.setVisibility(View.VISIBLE);
  }
コード例 #5
0
ファイル: MessageHeader.java プロジェクト: jae-63/k-9
  public void populate(final Message message, final Account account) throws MessagingException {
    final Contacts contacts = K9.showContactName() ? mContacts : null;
    final CharSequence from = Address.toFriendly(message.getFrom(), contacts);
    final CharSequence to =
        Address.toFriendly(message.getRecipients(Message.RecipientType.TO), contacts);
    final CharSequence cc =
        Address.toFriendly(message.getRecipients(Message.RecipientType.CC), contacts);

    Address[] fromAddrs = message.getFrom();
    Address[] toAddrs = message.getRecipients(Message.RecipientType.TO);
    Address[] ccAddrs = message.getRecipients(Message.RecipientType.CC);
    boolean fromMe = mMessageHelper.toMe(account, fromAddrs);

    String counterpartyAddress = null;
    if (fromMe) {
      if (toAddrs.length > 0) {
        counterpartyAddress = toAddrs[0].getAddress();
      } else if (ccAddrs.length > 0) {
        counterpartyAddress = ccAddrs[0].getAddress();
      }
    } else if (fromAddrs.length > 0) {
      counterpartyAddress = fromAddrs[0].getAddress();
    }

    /*
     * Only reset visibility of the subject if populate() was called because a new
     * message is shown. If it is the same, do not force the subject visible, because
     * this breaks the MessageTitleView in the action bar, which may hide our subject
     * if it fits in the action bar but is only called when a new message is shown
     * or the device is rotated.
     */
    if (mMessage == null || mMessage.getId() != message.getId()) {
      mSubjectView.setVisibility(VISIBLE);
    }

    mMessage = message;
    mAccount = account;

    if (K9.showContactPicture()) {
      mContactBadge.setVisibility(View.VISIBLE);
      mContactsPictureLoader = new ContactPictureLoader(mContext, R.drawable.ic_contact_picture);
    } else {
      mContactBadge.setVisibility(View.GONE);
    }

    final String subject = message.getSubject();
    if (StringUtils.isNullOrEmpty(subject)) {
      mSubjectView.setText(mContext.getText(R.string.general_no_subject));
    } else {
      mSubjectView.setText(subject);
    }
    mSubjectView.setTextColor(0xff000000 | defaultSubjectColor);

    String dateTime =
        DateUtils.formatDateTime(
            mContext,
            message.getSentDate().getTime(),
            DateUtils.FORMAT_SHOW_DATE
                | DateUtils.FORMAT_ABBREV_ALL
                | DateUtils.FORMAT_SHOW_TIME
                | DateUtils.FORMAT_SHOW_YEAR);
    mDateView.setText(dateTime);

    if (K9.showContactPicture()) {
      mContactBadge.assignContactFromEmail(counterpartyAddress, true);
      if (counterpartyAddress != null) {
        mContactsPictureLoader.loadContactPicture(counterpartyAddress, mContactBadge);
      } else {
        mContactBadge.setImageResource(R.drawable.ic_contact_picture);
      }
    }

    mFromView.setText(from);

    updateAddressField(mToView, to, mToLabel);
    updateAddressField(mCcView, cc, mCcLabel);
    mAnsweredIcon.setVisibility(message.isSet(Flag.ANSWERED) ? View.VISIBLE : View.GONE);
    mForwardedIcon.setVisibility(message.isSet(Flag.FORWARDED) ? View.VISIBLE : View.GONE);
    mFlagged.setChecked(message.isSet(Flag.FLAGGED));

    int chipColor = mAccount.getChipColor();
    int chipColorAlpha = (!message.isSet(Flag.SEEN)) ? 255 : 127;
    mChip.setBackgroundColor(chipColor);
    mChip.getBackground().setAlpha(chipColorAlpha);

    setVisibility(View.VISIBLE);

    if (mSavedState != null) {
      if (mSavedState.additionalHeadersVisible) {
        showAdditionalHeaders();
      }
      mSavedState = null;
    } else {
      hideAdditionalHeaders();
    }
  }