/** * @author Jonathan */ package com.abewy.android.apps.klyph.adapter.subAdapter; import java.util.List; import android.content.Context; import android.view.View; import com.abewy.android.apps.klyph.R; import com.abewy.android.apps.klyph.adapter.holder.IStreamHolder; import com.abewy.android.apps.klyph.core.fql.Stream; import com.abewy.android.apps.klyph.core.fql.Tag; import com.abewy.android.apps.klyph.util.TextViewUtil; public class StreamMessage { private final boolean linksEnabled; public StreamMessage(boolean linksEnabled) { super(); this.linksEnabled = linksEnabled; } protected Context getContext(View view) { return view.getContext(); } public void mergeData(IStreamHolder holder, Stream stream) { final View view = holder.getAuthorProfileImage(); if (stream.getMessage().length() > 0) { holder.getMessage().setText(stream.getMessage()); if (linksEnabled && stream.getMessage_tags().size() > 0) { TextViewUtil.setTextClickableForTags(getContext(view), holder.getMessage(), stream.getMessage_tags(), linksEnabled); } holder.getMessage().setVisibility(View.VISIBLE); // manage place } if (stream.getMessage_tags().size() == 0 && stream.getTagged_tags().size() > 0) { List<Tag> tags = stream.getTagged_tags(); switch (tags.size()) { case 1: { Tag tag = tags.get(0); holder.getMessage().append(getContext(view).getString(R.string.post_with_one_friend, tag.getName())); TextViewUtil.setElementClickable(getContext(view), holder.getMessage(), tag.getName(), tag.getId(), tag.getType(), linksEnabled); break; } case 2: { Tag tag = tags.get(0); Tag tag2 = tags.get(1); holder.getMessage().append( getContext(view).getString(R.string.post_with_two_friends, tag.getName(), tag2.getName())); TextViewUtil.setElementClickable(getContext(view), holder.getMessage(), tag.getName(), tag.getId(), tag.getType(), linksEnabled); TextViewUtil.setElementClickable(getContext(view), holder.getMessage(), tag2.getName(), tag2.getId(), tag2.getType(), linksEnabled); break; } default: { Tag tag = tags.get(0); holder.getMessage().append( getContext(view).getString(R.string.post_with_several_friends, tag.getName(), tags.size())); TextViewUtil.setElementClickable(getContext(view), holder.getMessage(), tag.getName(), tag.getId(), tag.getType(), linksEnabled); TextViewUtil.setElementClickable(getContext(view), holder.getMessage(), getContext(view).getString(R.string.with_several_friends, tags.size()), tags, linksEnabled); break; } } } manageCheckin(holder, stream); } private void manageCheckin(IStreamHolder holder, Stream stream) { if (stream.getPlace() != null && stream.getPlace().length() > 0) { if (stream.getMessage().indexOf(stream.getPlace_name()) == -1) { holder.getMessage().append(" " + getContext(holder.getAuthorProfileImage()).getString(R.string.at_place, stream.getPlace_name())); } if (linksEnabled) TextViewUtil.setElementClickable(getContext(holder.getAuthorProfileImage()), holder.getMessage(), stream.getPlace_name(), stream.getPlace(), "page", linksEnabled); } } }