/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.view;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.util.AttributeSet;
import com.galaxy.meetup.client.android.service.EsService;
import com.galaxy.meetup.server.client.domain.PlusEvent;
import com.galaxy.meetup.server.client.util.JsonUtil;
import com.galaxy.meetup.server.client.v2.domain.Event;
/**
*
* @author sihai
*
*/
public class EventStreamCardView extends StreamCardView {
private EventCardDrawer mDrawer;
private boolean mIgnoreHeight;
public EventStreamCardView(Context context)
{
this(context, null);
}
public EventStreamCardView(Context context, AttributeSet attributeset)
{
super(context, attributeset);
mDrawer = new EventCardDrawer(this);
setPaddingEnabled(false);
}
protected final int draw(Canvas canvas, int i, int j, int k, int l)
{
int i1 = mDrawer.draw(j, (j + l) - mPlusOneButton.getRect().height(), canvas);
drawPlusOneBar(canvas);
drawCornerIcon(canvas);
return i1;
}
public final void init(Cursor cursor, int i, int j, android.view.View.OnClickListener onclicklistener, ItemClickListener itemclicklistener, StreamCardView.ViewedListener viewedlistener, StreamCardView.StreamPlusBarClickListener streamplusbarclicklistener,
StreamCardView.StreamMediaClickListener streammediaclicklistener)
{
super.init(cursor, i, j, onclicklistener, itemclicklistener, viewedlistener, streamplusbarclicklistener, streammediaclicklistener);
byte abyte0[] = cursor.getBlob(13);
Event event;
if(abyte0 != null)
event = (Event)JsonUtil.fromByteArray(abyte0, Event.class);
else
event = null;
mDrawer.bind(EsService.getActiveAccount(getContext()), this, event, mAuthorGaiaId, mAttribution, mItemClickListener);
}
protected final int layoutElements(int i, int j, int k, int l)
{
createPlusOneBar(i + sXPadding, l - sBottomBorderPadding, k - sXDoublePadding);
Rect rect = mPlusOneButton.getRect();
int i1 = mDrawer.layout(i, j, mIgnoreHeight, k, l - rect.height()) + sBottomBorderPadding;
if(mIgnoreHeight)
{
int j1 = j + i1;
rect.offsetTo(rect.left, j1);
if(mReshareButton != null)
{
Rect rect2 = mReshareButton.getRect();
rect2.offsetTo(rect2.left, j1);
}
if(mCommentsButton != null)
{
Rect rect1 = mCommentsButton.getRect();
rect1.offsetTo(rect1.left, j1);
}
i1 = rect.bottom + sBottomBorderPadding;
}
return i1;
}
protected void onAttachedToWindow()
{
super.onAttachedToWindow();
mDrawer.attach();
}
protected void onDetachedFromWindow()
{
super.onDetachedFromWindow();
mDrawer.detach();
}
protected void onMeasure(int i, int j)
{
int k = android.view.View.MeasureSpec.getSize(i);
int l = android.view.View.MeasureSpec.getSize(j);
mIgnoreHeight = shouldWrapContent(j);
int i1;
boolean flag;
int j1;
int k1;
int l1;
int i2;
int j2;
if(mIgnoreHeight)
i1 = k;
else
i1 = l;
flag = mPaddingEnabled;
j1 = 0;
k1 = 0;
l1 = 0;
i2 = 0;
if(flag)
{
k1 = sXPadding;
i2 = sYPadding;
j1 = sXDoublePadding;
l1 = sYDoublePadding;
}
j2 = layoutElements(k1 + sLeftBorderPadding, i2 + sTopBorderPadding, k - (j1 + sLeftBorderPadding + sRightBorderPadding), i1 - (l1 + sTopBorderPadding + sBottomBorderPadding));
if(mIgnoreHeight)
setMeasuredDimension(k, l1 + (j2 + sTopBorderPadding) + sBottomBorderPadding);
else
setMeasuredDimension(k, i1);
createGraySpamBar(getMeasuredWidth() - sLeftBorderPadding - sRightBorderPadding);
mBackgroundRect.set(0, 0, getMeasuredWidth(), getMeasuredHeight());
}
public void onRecycle()
{
super.onRecycle();
mDrawer.clear();
mIgnoreHeight = false;
}
}