/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.view;
import WriteReviewOperation.MediaRef;
import android.content.Context;
import android.content.res.Resources;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import com.galaxy.meetup.client.android.R;
import com.galaxy.meetup.client.util.Dates;
import com.galaxy.meetup.client.util.PrimitiveUtils;
import com.galaxy.meetup.server.client.domain.DataPhoto;
import com.galaxy.meetup.server.client.util.JsonUtil;
/**
*
* @author sihai
*
*/
public class EventActivityPhotoCardLayout extends CardViewLayout implements
OnClickListener {
private static int sAvatarMarginBottom;
private static int sAvatarMarginLeft;
private static int sAvatarSize;
private static int sImageMarginBottom;
private static boolean sInitialized;
private static int sTextMarginLeft;
private static int sTextMarginRight;
private AvatarView mAvatarView;
private DataPhoto mDataPhoto;
private String mGaiaId;
private ImageResourceView mImageResourceView;
private EventActionListener mListener;
private MediaRef mMediaRef;
private boolean mPending;
private TextView mPendingTextView;
private byte mPhotoData[];
private CardTitleDescriptionView mTextDescriptionView;
public EventActivityPhotoCardLayout(Context context)
{
super(context);
mPending = false;
}
public EventActivityPhotoCardLayout(Context context, AttributeSet attributeset)
{
super(context, attributeset);
mPending = false;
}
public EventActivityPhotoCardLayout(Context context, AttributeSet attributeset, int i)
{
super(context, attributeset, i);
mPending = false;
}
public final void bind(String s, String s1, long l, String s2, byte abyte0[], EventActionListener eventactionlistener,
String s3)
{
mPhotoData = abyte0;
mDataPhoto = (DataPhoto)JsonUtil.fromByteArray(mPhotoData, DataPhoto.class);
mPending = false;
MediaRef.MediaType mediatype;
ImageResourceView imageresourceview;
byte byte0;
TextView textview;
boolean flag;
int i;
if(PrimitiveUtils.safeBoolean(mDataPhoto.isPanorama))
mediatype = MediaRef.MediaType.PANORAMA;
else
if(mDataPhoto.video != null)
{
mediatype = MediaRef.MediaType.VIDEO;
mPending = TextUtils.equals(mDataPhoto.video.status, "PENDING");
} else
{
mediatype = MediaRef.MediaType.IMAGE;
}
if(!mPending)
{
mMediaRef = new MediaRef(s2, mediatype);
mImageResourceView.setMediaRef(mMediaRef, true);
}
imageresourceview = mImageResourceView;
if(mPending)
byte0 = 8;
else
byte0 = 0;
imageresourceview.setVisibility(byte0);
textview = mPendingTextView;
flag = mPending;
i = 0;
if(!flag)
i = 8;
textview.setVisibility(i);
mTextDescriptionView.setText(s, Dates.getRelativeTimeSpanString(getContext(), l), null, true);
if(!TextUtils.isEmpty(s1))
mAvatarView.setGaiaId(s1);
mGaiaId = s1;
mListener = eventactionlistener;
if(mPending && mListener != null)
mListener.onPhotoUpdateNeeded(mDataPhoto.owner.id, mDataPhoto.id, s3);
}
public final void init(Context context, AttributeSet attributeset, int i)
{
super.init(context, attributeset, i);
if(!sInitialized)
{
Resources resources1 = context.getResources();
sTextMarginLeft = resources1.getDimensionPixelSize(R.dimen.event_card_activity_text_margin_left);
sTextMarginRight = resources1.getDimensionPixelSize(R.dimen.event_card_activity_text_margin_right);
sImageMarginBottom = resources1.getDimensionPixelSize(R.dimen.event_card_activity_photo_margin_bottom);
sAvatarSize = resources1.getDimensionPixelSize(R.dimen.event_card_activity_avatar_size);
sAvatarMarginLeft = resources1.getDimensionPixelSize(R.dimen.event_card_activity_avatar_margin_left);
sAvatarMarginBottom = resources1.getDimensionPixelSize(R.dimen.event_card_activity_photo_avatar_margin_bottom);
sInitialized = true;
}
mImageResourceView = new ImageResourceView(context, attributeset, i);
mImageResourceView.setScaleMode(1);
mImageResourceView.setSizeCategory(3);
mImageResourceView.setOnClickListener(this);
addView(mImageResourceView);
mTextDescriptionView = new CardTitleDescriptionView(context, attributeset, i);
addView(mTextDescriptionView);
Resources resources = context.getResources();
mPendingTextView = new TextView(context, attributeset, i);
mPendingTextView.setBackgroundColor(resources.getColor(R.color.event_card_photo_pending_background_color));
mPendingTextView.setTextColor(resources.getColor(R.color.event_card_photo_pending_text_color));
mPendingTextView.setGravity(17);
mPendingTextView.setText(resources.getString(R.string.card_event_photo_missing_video));
addView(mPendingTextView);
mAvatarView = new AvatarView(context, attributeset, i);
mAvatarView.setOnClickListener(this);
mAvatarView.setRounded(true);
mAvatarView.setAvatarSize(2);
addView(mAvatarView);
}
protected void measureChildren(int i, int j)
{
int k = android.view.View.MeasureSpec.getSize(i);
int l = android.view.View.MeasureSpec.getSize(j);
int i1 = l - sImageMarginBottom;
int j1 = i1 + 0;
int k1;
int l1;
int i2;
int j2;
int k2;
int l2;
int i3;
if(mPending)
{
setCorner(mPendingTextView, 0, 0);
mPendingTextView.measure(android.view.View.MeasureSpec.makeMeasureSpec(k, 0x40000000), android.view.View.MeasureSpec.makeMeasureSpec(i1, 0x40000000));
} else
{
setCorner(mImageResourceView, 0, 0);
mImageResourceView.measure(android.view.View.MeasureSpec.makeMeasureSpec(k, 0x40000000), android.view.View.MeasureSpec.makeMeasureSpec(i1, 0x40000000));
}
k1 = 0 + sAvatarMarginLeft;
l1 = k1 + sAvatarSize;
i2 = (l + 0) - sAvatarMarginBottom - sAvatarSize;
setCorner(mAvatarView, k1, i2);
mAvatarView.measure(android.view.View.MeasureSpec.makeMeasureSpec(sAvatarSize, 0x40000000), android.view.View.MeasureSpec.makeMeasureSpec(sAvatarSize, 0x40000000));
j2 = l1 + sTextMarginLeft;
k2 = k - j2 - sTextMarginRight;
l2 = l - i1;
mTextDescriptionView.measure(android.view.View.MeasureSpec.makeMeasureSpec(k2, 0x40000000), android.view.View.MeasureSpec.makeMeasureSpec(l2, 0x80000000));
i3 = j1 + Math.max(0, (l2 - mTextDescriptionView.getMeasuredHeight()) / 2);
setCorner(mTextDescriptionView, j2, i3);
}
public void onClick(View view)
{
if(view != mAvatarView || mListener == null) {
if(view == mImageResourceView && mListener != null && mPhotoData != null)
mListener.onPhotoClicked(mDataPhoto.id, mDataPhoto.original.url, mGaiaId);
} else {
mListener.onAvatarClicked(((AvatarView)view).getGaiaId());
}
}
public void onRecycle()
{
super.onRecycle();
mImageResourceView.onRecycle();
mListener = null;
mGaiaId = null;
mPhotoData = null;
mTextDescriptionView.clear();
}
}