/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.view;
import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import com.galaxy.meetup.client.android.content.EsEventData;
import com.galaxy.meetup.client.android.content.EventThemeImageRequest;
import com.galaxy.meetup.client.util.ImageUtils;
import com.galaxy.meetup.server.client.v2.domain.Theme;
/**
*
* @author sihai
*
*/
public class EventThemeView extends EsImageView {
private boolean mImageRequested;
private String mThemeImageUrl;
public EventThemeView(Context context)
{
super(context);
setResizeable(true);
}
public EventThemeView(Context context, AttributeSet attributeset)
{
super(context, attributeset);
setResizeable(true);
}
public EventThemeView(Context context, AttributeSet attributeset, int i)
{
super(context, attributeset, i);
setResizeable(true);
}
protected void onLayout(boolean flag, int i, int j, int k, int l)
{
super.onLayout(flag, i, j, k, l);
if(l - j > 0 && !mImageRequested)
{
mImageRequested = true;
if(mThemeImageUrl == null)
setRequest(null);
else
if(mThemeImageUrl.toLowerCase().endsWith(".gif"))
setRequest(new EventThemeImageRequest(mThemeImageUrl));
else
setRequest(new EventThemeImageRequest(ImageUtils.getCenterCroppedAndResizedUrl(getMeasuredWidth(), getMeasuredHeight(), mThemeImageUrl)));
}
}
protected void onMeasure(int i, int j) {
int l = 0;
int k = android.view.View.MeasureSpec.getMode(i);
if(k != 0x40000000) {
l = 0;
if(k == 0x80000000)
l = Math.min(0, android.view.View.MeasureSpec.getSize(i));
} else {
l = android.view.View.MeasureSpec.getSize(i);
}
setMeasuredDimension(l, (int)((float)l / 3.36F));
}
public void onRecycle()
{
super.onRecycle();
mThemeImageUrl = null;
}
public void setEventTheme(Theme theme)
{
setImageUrl(EsEventData.getImageUrl(theme));
}
public void setImageUrl(String s)
{
if(!TextUtils.equals(s, mThemeImageUrl))
{
mThemeImageUrl = s;
mImageRequested = false;
requestLayout();
}
}
}