/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android;
import java.util.List;
import java.util.TimeZone;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.galaxy.meetup.client.util.TimeZoneHelper;
/**
*
* @author sihai
*
*/
public class TimeZoneSpinnerAdapter extends BaseAdapter {
private static String stimeZoneFormat;
private Context mContext;
private TimeZoneHelper mTimeZoneHelper;
private List mTimeZones;
public TimeZoneSpinnerAdapter(Context context)
{
mContext = context;
if(stimeZoneFormat == null)
stimeZoneFormat = context.getResources().getString(R.string.time_zone_format);
}
private View prepareRow(int i, View view, ViewGroup viewgroup, boolean flag)
{
if(view == null)
if(flag)
{
view = LayoutInflater.from(mContext).inflate(R.layout.timezone_spinner_dropdown_item, viewgroup, false);
} else
{
Context context = mContext;
view = new TextView(context);
}
if(view instanceof TextView)
{
TimeZoneHelper.TimeZoneInfo timezoneinfo = (TimeZoneHelper.TimeZoneInfo)mTimeZones.get(i);
TimeZone timezone = timezoneinfo.getTimeZone();
long l = timezoneinfo.getOffset();
TextView textview = (TextView)view;
String s = stimeZoneFormat;
Object aobj[] = new Object[3];
aobj[0] = timezone.getDisplayName();
aobj[1] = Long.valueOf(l / 0x36ee80L);
aobj[2] = Long.valueOf(Math.abs((l - 0x36ee80L * (l / 0x36ee80L)) / 60000L));
textview.setText(String.format(s, aobj));
}
return view;
}
public final int getCount()
{
return mTimeZones.size();
}
public final View getDropDownView(int i, View view, ViewGroup viewgroup)
{
return prepareRow(i, view, viewgroup, true);
}
public final Object getItem(int i)
{
return mTimeZones.get(i);
}
public final long getItemId(int i)
{
return (long)i;
}
public final View getView(int i, View view, ViewGroup viewgroup)
{
return prepareRow(i, view, viewgroup, false);
}
public final void setTimeZoneHelper(TimeZoneHelper timezonehelper)
{
mTimeZoneHelper = timezonehelper;
mTimeZones = mTimeZoneHelper.getTimeZoneInfos();
notifyDataSetChanged();
}
}