package com.socialize.ui.comment;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.GradientDrawable.Orientation;
import android.util.TypedValue;
import android.view.Gravity;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.socialize.entity.Comment;
import com.socialize.log.SocializeLogger;
import com.socialize.ui.util.Colors;
import com.socialize.ui.util.CompatUtils;
import com.socialize.ui.view.CachedImageView;
import com.socialize.util.DisplayUtils;
import com.socialize.util.Drawables;
public class CommentListItem extends LinearLayout {
private TextView commentText;
private TextView time;
private TextView author;
private CachedImageView userIcon;
private ImageView locationIcon;
private DisplayUtils displayUtils;
private Colors colors;
private Drawables drawables;
private SocializeLogger logger;
private Comment commentObject;
private boolean deleteOk = false;
private LinearLayout contentLayout;
private LinearLayout iconLayout;
@SuppressWarnings("unused")
private CommentListItemBackgroundFactory backgroundFactory;
public CommentListItem(Context context) {
super(context);
}
public void init() {
final int eight = displayUtils.getDIP(8);
final int four = displayUtils.getDIP(4);
final int imagePadding = displayUtils.getDIP(2);
final int textColor = colors.getColor(Colors.COMMENT_BODY);
final int titleColor = colors.getColor(Colors.COMMENT_TITLE);
final int iconSize = displayUtils.getDIP(64);
ListView.LayoutParams layout = new ListView.LayoutParams(ListView.LayoutParams.FILL_PARENT, ListView.LayoutParams.WRAP_CONTENT);
setBackgroundColor(colors.getColor(Colors.LIST_ITEM_BG));
setOrientation(LinearLayout.HORIZONTAL);
setLayoutParams(layout);
setGravity(Gravity.TOP);
setPadding(eight,eight,eight,eight);
contentLayout = new LinearLayout(getContext());
contentLayout.setOrientation(LinearLayout.VERTICAL);
contentLayout.setGravity(Gravity.LEFT);
contentLayout.setPadding(0, 0, 0, 0);
LinearLayout.LayoutParams contentLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
contentLayoutParams.setMargins(four, 0, 0, 0);
contentLayout.setLayoutParams(contentLayoutParams);
LinearLayout contentHeaderLayout = new LinearLayout(getContext());
LinearLayout.LayoutParams contentHeaderLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
contentHeaderLayout.setLayoutParams(contentHeaderLayoutParams);
contentHeaderLayout.setGravity(Gravity.LEFT);
contentHeaderLayout.setOrientation(LinearLayout.HORIZONTAL);
contentHeaderLayout.setPadding(0, 0, 0, 0);
LinearLayout.LayoutParams authorLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
authorLayoutParams.weight = 1.0f;
author = new TextView(getContext());
author.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
author.setMaxLines(1);
author.setTypeface(Typeface.DEFAULT_BOLD);
author.setTextColor(titleColor);
author.setLayoutParams(authorLayoutParams);
author.setSingleLine();
LinearLayout.LayoutParams commentLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
commentText = new TextView(getContext());
commentText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
commentText.setTextColor(textColor);
commentText.setLayoutParams(commentLayoutParams);
LinearLayout.LayoutParams timeLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
time = new TextView(getContext());
time.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12);
time.setMaxLines(1);
time.setTypeface(Typeface.DEFAULT, Typeface.ITALIC);
time.setTextColor(titleColor);
time.setLayoutParams(timeLayoutParams);
time.setSingleLine();
time.setGravity(Gravity.RIGHT);
LinearLayout.LayoutParams locationIconParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
locationIconParams.gravity = Gravity.RIGHT | Gravity.CENTER_VERTICAL;
locationIcon = new ImageView(getContext());
locationIcon.setImageDrawable(drawables.getDrawable("icon_location_pin.png"));
locationIcon.setLayoutParams(locationIconParams);
LinearLayout.LayoutParams metaParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
metaParams.gravity = Gravity.RIGHT | Gravity.TOP;
LinearLayout meta = new LinearLayout(getContext());
meta.setOrientation(HORIZONTAL);
meta.setLayoutParams(metaParams);
meta.addView(time);
meta.addView(locationIcon);
contentHeaderLayout.addView(author);
contentHeaderLayout.addView(meta);
contentLayout.addView(contentHeaderLayout);
contentLayout.addView(commentText);
LinearLayout.LayoutParams iconLayoutParams = new LinearLayout.LayoutParams(iconSize, iconSize);
iconLayoutParams.gravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP;
iconLayout = new LinearLayout(getContext());
iconLayout.setLayoutParams(iconLayoutParams);
iconLayout.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.TOP);
userIcon = new CachedImageView(getContext());
userIcon.setDrawables(drawables);
userIcon.setLogger(logger);
userIcon.setDefaultImage();
userIcon.setLayoutParams(iconLayoutParams);
userIcon.setPadding(imagePadding, imagePadding, imagePadding, imagePadding);
GradientDrawable imageBG = new GradientDrawable(Orientation.BOTTOM_TOP, new int[] {Color.WHITE, Color.WHITE});
imageBG.setStroke(displayUtils.getDIP(1), Color.BLACK);
CompatUtils.setBackgroundDrawable(userIcon, imageBG);
iconLayout.addView(userIcon);
addView(iconLayout);
addView(contentLayout);
}
public TextView getCommentText() {
return commentText;
}
public TextView getTime() {
return time;
}
public TextView getAuthor() {
return author;
}
public CachedImageView getUserIcon() {
return userIcon;
}
public ImageView getLocationIcon() {
return locationIcon;
}
public void setDisplayUtils(DisplayUtils deviceUtils) {
this.displayUtils = deviceUtils;
}
public void setColors(Colors colors) {
this.colors = colors;
}
public void setDrawables(Drawables drawables) {
this.drawables = drawables;
}
public void setBackgroundFactory(CommentListItemBackgroundFactory backgroundFactory) {
this.backgroundFactory = backgroundFactory;
}
public void setLogger(SocializeLogger logger) {
this.logger = logger;
}
public Comment getCommentObject() {
return commentObject;
}
public void setCommentObject(Comment commentObject) {
this.commentObject = commentObject;
}
public boolean isDeleteOk() {
return deleteOk;
}
public void setDeleteOk(boolean deleteOk) {
this.deleteOk = deleteOk;
}
public LinearLayout getContentLayout() {
return contentLayout;
}
public LinearLayout getIconLayout() {
return iconLayout;
}
}