package com.malmstein.yahnac.model; import android.database.Cursor; import android.text.Html; import com.malmstein.yahnac.data.HNewsContract; public class Comment { private final Long internalId; private final String by; private final Long id; private final int level; private final String text; private final String timeText; private final boolean isHeader; private final Long commentId; public Comment(Long internalId, String by, Long id, int level, String text, String timeText, boolean isHeader, Long commentId) { this.internalId = internalId; this.by = by; this.id = id; this.level = level; this.text = text; this.timeText = timeText; this.isHeader = isHeader; this.commentId = commentId; } public static Comment from(Cursor cursor) { Long internalId = cursor.getLong(HNewsContract.CommentsEntry.COLUMN_ID); Long id = cursor.getLong(HNewsContract.CommentsEntry.COLUMN_ITEM_ID); String by = cursor.getString(HNewsContract.CommentsEntry.COLUMN_BY); int level = cursor.getInt(HNewsContract.CommentsEntry.COLUMN_LEVEL); String text = cursor.getString(HNewsContract.CommentsEntry.COLUMN_TEXT); String timeText = cursor.getString(HNewsContract.CommentsEntry.COLUMN_TIME_AGO); boolean isHeader = cursor.getInt(HNewsContract.CommentsEntry.COLUMN_HEADER) == HNewsContract.TRUE_BOOLEAN; Long commentId = cursor.getLong(HNewsContract.CommentsEntry.COLUMN_COMMENT_ID); return new Comment(internalId, by, id, level, text, timeText, isHeader, commentId); } public String getText() { return text; } /** * Returns displayable styled comment text. */ public CharSequence getStyledText() { // First transform the HTML String into a styled CharSequence. final CharSequence styledText = Html.fromHtml(getText()); // Now remove optional trailing newline characters. int end = styledText.length(); while (end >= 0 && styledText.charAt(end - 1) == '\n') { end--; } if (end != styledText.length()) { return styledText.subSequence(0, end); } else { return styledText; } } public int getLevel() { return level; } public String getTimeText() { return timeText; } public Long getInternalId() { return internalId; } public String getBy() { return by; } public Long getId() { return id; } public boolean isHeader() { return isHeader; } public Long getCommentId() { return commentId; } }