/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android;
import android.content.Context;
import android.database.Cursor;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import com.galaxy.meetup.client.android.common.Recyclable;
import com.galaxy.meetup.client.android.content.EsAccount;
import com.galaxy.meetup.client.android.ui.view.ColumnGridView;
import com.galaxy.meetup.client.android.ui.view.EventDestinationCardView;
import com.galaxy.meetup.client.android.ui.view.ItemClickListener;
import com.galaxy.meetup.server.client.util.JsonUtil;
import com.galaxy.meetup.server.client.v2.domain.Event;
/**
*
* @author sihai
*
*/
public class EventCardAdapter extends EsCursorAdapter {
private static boolean sInitialized;
private static int sItemMargin;
private static double sLargeDisplayTypeSizeCutoff = 6.9000000000000004D;
private static int sScreenDisplayType;
protected EsAccount mAccount;
protected ItemClickListener mItemClickListener;
private boolean mLandscape;
protected android.view.View.OnClickListener mOnClickListener;
public EventCardAdapter(Context context, EsAccount esaccount, Cursor cursor, android.view.View.OnClickListener onclicklistener, ItemClickListener itemclicklistener, ColumnGridView columngridview) {
super(context, null);
boolean flag = true;
mAccount = esaccount;
mOnClickListener = onclicklistener;
mItemClickListener = itemclicklistener;
int j;
int i;
boolean flag1;
int k;
if(!sInitialized)
{
sInitialized = true;
WindowManager windowmanager = (WindowManager)context.getSystemService("window");
DisplayMetrics displaymetrics = new DisplayMetrics();
windowmanager.getDefaultDisplay().getMetrics(displaymetrics);
float f = (float)displaymetrics.widthPixels / displaymetrics.xdpi;
float f1 = (float)displaymetrics.heightPixels / displaymetrics.ydpi;
if(Math.sqrt(f * f + f1 * f1) >= sLargeDisplayTypeSizeCutoff)
k = ((true) ? 1 : 0);
else
k = 0;
sScreenDisplayType = k;
sItemMargin = (int)(context.getResources().getDimension(R.dimen.card_margin_percentage) * (float)Math.min(displaymetrics.widthPixels, displaymetrics.heightPixels));
}
i = context.getResources().getConfiguration().orientation;
flag1 = false;
if(i == 2)
flag1 = true;
mLandscape = flag1;
if(mLandscape)
j = ((true) ? 1 : 0);
else
j = 2;
columngridview.setOrientation(j);
if(sScreenDisplayType != 0) {
columngridview.setColumnCount(2);
} else {
columngridview.setColumnCount(1);
}
columngridview.setItemMargin(sItemMargin);
columngridview.setPadding(sItemMargin, sItemMargin, sItemMargin, sItemMargin);
columngridview.setRecyclerListener(new ColumnGridView.RecyclerListener() {
public final void onMovedToScrapHeap(View view)
{
if(view instanceof Recyclable)
((Recyclable)view).onRecycle();
}
});
}
public final void bindView(View view, Context context, Cursor cursor) {
if (cursor.getPosition() < getCount()) {
EventDestinationCardView eventdestinationcardview = (EventDestinationCardView) view;
byte abyte0[] = cursor.getBlob(1);
Event event = (Event) JsonUtil.fromByteArray(abyte0, Event.class);
eventdestinationcardview.init(cursor, sScreenDisplayType, 0,
mOnClickListener, mItemClickListener, null, null, null);
eventdestinationcardview.bindData(mAccount, event);
int i;
ColumnGridView.LayoutParams layoutparams;
if (mLandscape)
i = 1;
else
i = 2;
layoutparams = new ColumnGridView.LayoutParams(i, -3, 1, 1);
if (!mLandscape && sScreenDisplayType == 0)
layoutparams.height = -2;
eventdestinationcardview.setLayoutParams(layoutparams);
}
}
public final View newView(Context context, Cursor cursor, ViewGroup viewgroup)
{
return new EventDestinationCardView(context);
}
}