Search in sources :

Example 1 with CommentHolder

use of com.abewy.android.apps.klyph.adapter.holder.CommentHolder in project Klyph by jonathangerbaud.

the class CommentAdapter method attachHolder.

@Override
protected void attachHolder(View view) {
    ImageView depthBar = (ImageView) view.findViewById(R.id.depth_bar);
    ImageView authorPicture = (ImageView) view.findViewById(R.id.author_picture);
    TextView authorName = (TextView) view.findViewById(R.id.author_name);
    TextView commentText = (TextView) view.findViewById(R.id.comment_text);
    ImageView commentImage = (ImageView) view.findViewById(R.id.comment_image);
    ImageView commentImagePlay = (ImageView) view.findViewById(R.id.comment_image_play);
    ImageView commentLinkImage = (ImageView) view.findViewById(R.id.comment_link_image);
    ImageView commentLinkImageBackground = (ImageView) view.findViewById(R.id.comment_link_image_background);
    TextView commentLinkName = (TextView) view.findViewById(R.id.comment_link_name);
    TextView commentLinkUrl = (TextView) view.findViewById(R.id.comment_link_url);
    TextView commentLinkDescription = (TextView) view.findViewById(R.id.comment_link_description);
    setHolder(view, new CommentHolder(depthBar, authorPicture, authorName, commentText, commentImage, commentImagePlay, commentLinkImage, commentLinkImageBackground, commentLinkName, commentLinkUrl, commentLinkDescription));
}
Also used : TextView(android.widget.TextView) ImageView(android.widget.ImageView) ProfileImageView(com.abewy.android.apps.klyph.widget.ProfileImageView) RatioImageView(com.abewy.android.extended.widget.RatioImageView) CommentHolder(com.abewy.android.apps.klyph.adapter.holder.CommentHolder)

Example 2 with CommentHolder

use of com.abewy.android.apps.klyph.adapter.holder.CommentHolder in project Klyph by jonathangerbaud.

the class CommentAdapter method mergeViewWithData.

@Override
protected void mergeViewWithData(View view, GraphObject data) {
    super.mergeViewWithData(view, data);
    Comment comment = (Comment) data;
    final CommentHolder holder = (CommentHolder) getHolder(view);
    holder.getDepthBar().setVisibility(comment.hasParentComment() ? View.VISIBLE : View.GONE);
    holder.getAuthorName().setAutoLinkMask(0);
    holder.getAuthorName().setText("");
    String name = comment.getFrom().getName();
    String time = DateUtil.timeAgoInWords(getContext(view), comment.getCreated_time());
    String text = name + "  " + time + "  ";
    holder.getAuthorName().setText(text);
    TextViewUtil.setElementClickable(getContext(view), holder.getAuthorName(), comment.getFrom().getName(), comment.getFrom().getId(), "user", false);
    Spannable styledText = new SpannableString(holder.getAuthorName().getText());
    TextAppearanceSpan span1 = new TextAppearanceSpan(getContext(holder.getAuthorName()), R.style.Klyph_CommentTextName);
    TextAppearanceSpan span2 = new TextAppearanceSpan(getContext(holder.getAuthorName()), R.style.Klyph_CommentTextTime);
    if (Android.isMinAPI(11))
        styledText.setSpan(span1, 0, name.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    styledText.setSpan(span2, name.length() + 2, name.length() + 2 + time.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    holder.getAuthorName().setText(styledText);
    String commentText = comment.getMessage();
    int numLikes = comment.getLike_count();
    if (numLikes > 0) {
        if (commentText.length() > 0)
            commentText += "  ";
        commentText += numLikes + "  ";
    }
    final SpannableStringBuilder sb = new SpannableStringBuilder();
    sb.append(commentText);
    if (numLikes > 0) {
        ImageSpan span3 = new ImageSpan(getContext(holder.getAuthorName()), AttrUtil.getResourceId(getContext(holder.getAuthorName()), comment.getUser_likes() ? R.attr.userLikeSmallIcon : R.attr.likeIconSmall), DynamicDrawableSpan.ALIGN_BASELINE);
        TextAppearanceSpan span4 = new TextAppearanceSpan(getContext(holder.getAuthorName()), R.style.Klyph_CommentTextTime);
        int likesLength = String.valueOf(numLikes).length();
        sb.setSpan(span3, commentText.length() - 2, commentText.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        sb.setSpan(span4, commentText.length() - (likesLength + 2), commentText.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
    holder.getCommentText().setText(sb);
    if (placeHolder == -1)
        placeHolder = KlyphUtil.getPlaceHolder(view.getContext());
    if (profilePlaceHolder == -1)
        profilePlaceHolder = KlyphUtil.getProfilePlaceHolder(view.getContext());
    ((ProfileImageView) holder.getAuthorPicture()).disableBorder();
    String url = comment.getFrom().getPicture().getUrl();
    loadImage(holder.getAuthorPicture(), url, profilePlaceHolder, data);
    holder.getCommentImage().setOnClickListener(null);
    holder.getCommentLinkImage().setOnClickListener(null);
    if (comment.getAttachment().isPhoto() || comment.getAttachment().isVideoShare()) {
        Image image = comment.getAttachment().getMedia().getImage();
        RatioImageView rImageview = (RatioImageView) holder.getCommentImage();
        rImageview.setImageSize(image.getWidth(), image.getHeight());
        int parentWidth = ((ViewGroup) holder.getCommentImage().getParent()).getWidth();
        if (parentWidth > 0) {
            LayoutParams params = holder.getCommentImage().getLayoutParams();
            params.width = Math.min(parentWidth, image.getWidth());
            holder.getCommentImage().setLayoutParams(params);
        }
        loadImage(holder.getCommentImage(), image.getSrc(), placeHolder, data);
        final Target target = comment.getAttachment().getTarget();
        holder.getCommentLinkImage().setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getContext(holder.getCommentImage()), ImageActivity.class);
                intent.putExtra(KlyphBundleExtras.PHOTO_ID, target.getId());
                getContext(holder.getCommentLinkImage()).startActivity(intent);
            }
        });
    } else if (comment.getAttachment().isShare()) {
        final Attachment att = comment.getAttachment();
        Image image = comment.getAttachment().getMedia().getImage();
        holder.getCommentLinkImageBackground().setColorFilter(colorFilter, PorterDuff.Mode.SRC_OVER);
        loadImage(holder.getCommentLinkImage(), image.getSrc(), placeHolder, data);
        loadImage(holder.getCommentLinkImageBackground(), image.getSrc(), placeHolder, data);
        holder.getCommentLinkName().setText(att.getTitle());
        holder.getCommentLinkUrl().setText(att.getUrl());
        holder.getCommentLinkDescription().setText(att.getDescription());
        holder.getCommentLinkImage().setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                PhoneUtil.openURL(getContext(holder.getCommentLinkImage()), att.getUrl());
            }
        });
    }
    if (comment.getAttachment().isVideoShare())
        holder.getCommentImagePlay().setVisibility(View.VISIBLE);
    else
        holder.getCommentImagePlay().setVisibility(View.GONE);
    ((View) holder.getCommentImage().getParent()).setVisibility(comment.getAttachment().isPhoto() || comment.getAttachment().isVideoShare() ? View.VISIBLE : View.GONE);
    ((View) holder.getCommentLinkImage().getParent()).setVisibility(comment.getAttachment().isShare() ? View.VISIBLE : View.GONE);
}
Also used : Comment(com.abewy.android.apps.klyph.core.graph.Comment) ProfileImageView(com.abewy.android.apps.klyph.widget.ProfileImageView) TextAppearanceSpan(android.text.style.TextAppearanceSpan) LayoutParams(android.view.ViewGroup.LayoutParams) ViewGroup(android.view.ViewGroup) Intent(android.content.Intent) Attachment(com.abewy.android.apps.klyph.core.graph.Comment.Attachment) SpannableString(android.text.SpannableString) Image(com.abewy.android.apps.klyph.core.graph.Comment.Attachment.Media.Image) ImageView(android.widget.ImageView) View(android.view.View) ProfileImageView(com.abewy.android.apps.klyph.widget.ProfileImageView) TextView(android.widget.TextView) RatioImageView(com.abewy.android.extended.widget.RatioImageView) SpannableString(android.text.SpannableString) ImageActivity(com.abewy.android.apps.klyph.app.ImageActivity) Target(com.abewy.android.apps.klyph.core.graph.Comment.Attachment.Target) RatioImageView(com.abewy.android.extended.widget.RatioImageView) CommentHolder(com.abewy.android.apps.klyph.adapter.holder.CommentHolder) Spannable(android.text.Spannable) SpannableStringBuilder(android.text.SpannableStringBuilder) ImageSpan(android.text.style.ImageSpan)

Example 3 with CommentHolder

use of com.abewy.android.apps.klyph.adapter.holder.CommentHolder in project Klyph by jonathangerbaud.

the class CommentAdapter method mergeViewWithData.

@Override
protected void mergeViewWithData(View view, GraphObject data) {
    super.mergeViewWithData(view, data);
    Comment comment = (Comment) data;
    final CommentHolder holder = (CommentHolder) getHolder(view);
    holder.getDepthBar().setVisibility(comment.hasParentComment() ? View.VISIBLE : View.GONE);
    holder.getAuthorName().setAutoLinkMask(0);
    holder.getAuthorName().setText("");
    String name = comment.getFrom_name();
    String time = DateUtil.timeAgoInWords(getContext(view), comment.getTime());
    String text = name + "  " + time + "  ";
    holder.getAuthorName().setText(text);
    TextViewUtil.setElementClickable(getContext(view), holder.getAuthorName(), comment.getFrom_name(), comment.getFromid(), comment.getFrom_type(), true);
    Spannable styledText = new SpannableString(holder.getAuthorName().getText());
    TextAppearanceSpan span1 = new TextAppearanceSpan(getContext(holder.getAuthorName()), R.style.Klyph_CommentTextName);
    TextAppearanceSpan span2 = new TextAppearanceSpan(getContext(holder.getAuthorName()), R.style.Klyph_CommentTextTime);
    if (Android.isMinAPI(11))
        styledText.setSpan(span1, 0, name.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    styledText.setSpan(span2, name.length() + 2, name.length() + 2 + time.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    holder.getAuthorName().setText(styledText);
    String commentText = comment.getText();
    int numLikes = comment.getLikes();
    if (numLikes > 0) {
        if (commentText.length() > 0)
            commentText += "  ";
        commentText += numLikes + "  ";
    }
    final SpannableStringBuilder sb = new SpannableStringBuilder();
    sb.append(commentText);
    if (numLikes > 0) {
        ImageSpan span3 = new ImageSpan(getContext(holder.getAuthorName()), AttrUtil.getResourceId(getContext(holder.getAuthorName()), comment.getUser_likes() ? R.attr.userLikeSmallIcon : R.attr.likeIconSmall), DynamicDrawableSpan.ALIGN_BASELINE);
        TextAppearanceSpan span4 = new TextAppearanceSpan(getContext(holder.getAuthorName()), R.style.Klyph_CommentTextTime);
        int likesLength = String.valueOf(numLikes).length();
        sb.setSpan(span3, commentText.length() - 2, commentText.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        sb.setSpan(span4, commentText.length() - (likesLength + 2), commentText.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
    holder.getCommentText().setText(sb);
    if (placeHolder == -1)
        placeHolder = AttrUtil.getResourceId(getContext(holder.getAuthorName()), R.attr.squarePlaceHolderIcon);
    if (profilePlaceHolder == -1)
        profilePlaceHolder = AttrUtil.getResourceId(getContext(holder.getAuthorName()), R.attr.circlePlaceHolderIcon);
    String url = comment.getFrom_pic();
    loadImage(holder.getAuthorPicture(), "http://www.google.com/abc/9.jpg", profilePlaceHolder, data);
    holder.getCommentImage().setOnClickListener(null);
    holder.getCommentLinkImage().setOnClickListener(null);
    if (comment.getAttachment().isPhoto()) {
        Image image = comment.getAttachment().getMedia().getImage();
        RatioImageView rImageView = (RatioImageView) holder.getCommentImage();
        rImageView.setImageSize(image.getWidth(), image.getHeight());
        loadImage(holder.getCommentImage(), image.getSrc(), placeHolder, data);
        final Target target = comment.getAttachment().getTarget();
        holder.getCommentLinkImage().setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getContext(holder.getCommentImage()), ImageActivity.class);
                intent.putExtra(KlyphBundleExtras.PHOTO_ID, target.getId());
                getContext(holder.getCommentLinkImage()).startActivity(intent);
            }
        });
    } else if (comment.getAttachment().isShare()) {
        final Attachment att = comment.getAttachment();
        Image image = comment.getAttachment().getMedia().getImage();
        holder.getCommentLinkImageBackground().setColorFilter(colorFilter, PorterDuff.Mode.SRC_OVER);
        loadImage(holder.getCommentLinkImage(), image.getSrc(), placeHolder, data);
        loadImage(holder.getCommentLinkImageBackground(), image.getSrc(), placeHolder, data);
        holder.getCommentLinkName().setText(att.getTitle());
        holder.getCommentLinkUrl().setText(att.getUrl());
        holder.getCommentLinkDescription().setText(att.getDescription());
        holder.getCommentLinkImage().setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                PhoneUtil.openURL(getContext(holder.getCommentLinkImage()), att.getUrl());
            }
        });
    }
    holder.getCommentImage().setVisibility(comment.getAttachment().isPhoto() ? View.VISIBLE : View.GONE);
    ((View) holder.getCommentLinkImage().getParent()).setVisibility(comment.getAttachment().isShare() ? View.VISIBLE : View.GONE);
}
Also used : Comment(com.abewy.android.apps.klyph.core.fql.Comment) TextAppearanceSpan(android.text.style.TextAppearanceSpan) Intent(android.content.Intent) Attachment(com.abewy.android.apps.klyph.core.fql.Comment.Attachment) SpannableString(android.text.SpannableString) Image(com.abewy.android.apps.klyph.core.fql.Comment.Attachment.Media.Image) ImageView(android.widget.ImageView) View(android.view.View) ProfileImageView(com.abewy.android.apps.klyph.widget.ProfileImageView) TextView(android.widget.TextView) RatioImageView(com.abewy.android.extended.widget.RatioImageView) SpannableString(android.text.SpannableString) ImageActivity(com.abewy.android.apps.klyph.app.ImageActivity) Target(com.abewy.android.apps.klyph.core.fql.Comment.Attachment.Target) RatioImageView(com.abewy.android.extended.widget.RatioImageView) CommentHolder(com.abewy.android.apps.klyph.adapter.holder.CommentHolder) Spannable(android.text.Spannable) SpannableStringBuilder(android.text.SpannableStringBuilder) ImageSpan(android.text.style.ImageSpan)

Example 4 with CommentHolder

use of com.abewy.android.apps.klyph.adapter.holder.CommentHolder in project Klyph by jonathangerbaud.

the class CommentAdapter method attachHolder.

@Override
protected void attachHolder(View view) {
    ImageView depthBar = (ImageView) view.findViewById(R.id.depth_bar);
    ImageView authorPicture = (ImageView) view.findViewById(R.id.author_picture);
    TextView authorName = (TextView) view.findViewById(R.id.author_name);
    TextView commentText = (TextView) view.findViewById(R.id.comment_text);
    ImageView commentImage = (ImageView) view.findViewById(R.id.comment_image);
    ImageView commentImagePlay = (ImageView) view.findViewById(R.id.comment_image_play);
    ImageView commentLinkImage = (ImageView) view.findViewById(R.id.comment_link_image);
    ImageView commentLinkImageBackground = (ImageView) view.findViewById(R.id.comment_link_image_background);
    TextView commentLinkName = (TextView) view.findViewById(R.id.comment_link_name);
    TextView commentLinkUrl = (TextView) view.findViewById(R.id.comment_link_url);
    TextView commentLinkDescription = (TextView) view.findViewById(R.id.comment_link_description);
    setHolder(view, new CommentHolder(depthBar, authorPicture, authorName, commentText, commentImage, commentImagePlay, commentLinkImage, commentLinkImageBackground, commentLinkName, commentLinkUrl, commentLinkDescription));
}
Also used : TextView(android.widget.TextView) ImageView(android.widget.ImageView) ProfileImageView(com.abewy.android.apps.klyph.widget.ProfileImageView) RatioImageView(com.abewy.android.extended.widget.RatioImageView) CommentHolder(com.abewy.android.apps.klyph.adapter.holder.CommentHolder)

Aggregations

ImageView (android.widget.ImageView)4 TextView (android.widget.TextView)4 CommentHolder (com.abewy.android.apps.klyph.adapter.holder.CommentHolder)4 ProfileImageView (com.abewy.android.apps.klyph.widget.ProfileImageView)4 RatioImageView (com.abewy.android.extended.widget.RatioImageView)4 Intent (android.content.Intent)2 Spannable (android.text.Spannable)2 SpannableString (android.text.SpannableString)2 SpannableStringBuilder (android.text.SpannableStringBuilder)2 ImageSpan (android.text.style.ImageSpan)2 TextAppearanceSpan (android.text.style.TextAppearanceSpan)2 View (android.view.View)2 ImageActivity (com.abewy.android.apps.klyph.app.ImageActivity)2 ViewGroup (android.view.ViewGroup)1 LayoutParams (android.view.ViewGroup.LayoutParams)1 Comment (com.abewy.android.apps.klyph.core.fql.Comment)1 Attachment (com.abewy.android.apps.klyph.core.fql.Comment.Attachment)1 Image (com.abewy.android.apps.klyph.core.fql.Comment.Attachment.Media.Image)1 Target (com.abewy.android.apps.klyph.core.fql.Comment.Attachment.Target)1 Comment (com.abewy.android.apps.klyph.core.graph.Comment)1