private void initializeContactWidgetVisibility() { if (isBadgeEnabled()) { contactPhotoBadge.setVisibility(View.VISIBLE); contactPhotoImage.setVisibility(View.GONE); } else { contactPhotoBadge.setVisibility(View.GONE); contactPhotoImage.setVisibility(View.VISIBLE); } }
public ConversationHeaderView(Context context, boolean first) { this(context, (Set<Long>) null); this.first = true; contactPhoto.setVisibility(View.GONE); this.setBackgroundColor(Color.TRANSPARENT); }
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); } } }
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); }
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(); } }