package com.campus.prime.ui.home; import java.util.ArrayList; import java.util.List; import com.campus.prime.R; import com.campus.prime.constant.AppConstant; import com.campus.prime.core.User; import com.campus.prime.ui.SingleTypeAdapter; import com.campus.prime.utils.BitmapManager; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; public class HomeDropdownListAdapter extends SingleTypeAdapter<Object>{ private final LayoutInflater mInflater; private final BitmapManager mBitmapManager; private static final int ACTION_PROFILE = 0; private static final int ACTION_GROUPS = 1; private static final int NON_ORG_ITEMS = 2; private int selected; private int getOrgCount(){ return getCount() - NON_ORG_ITEMS; } private boolean isOrgPosition(final int position){ return position < getOrgCount(); } private int getAction(final int position){ return position - getOrgCount(); } private HomeDropdownListAdapter setOrgs(final User user){ List<Object> all = new ArrayList<Object>(NON_ORG_ITEMS + 1); all.add(user); all.add(new Object()); all.add(new Object()); setItems(all); notifyDataSetChanged(); return this; } public HomeDropdownListAdapter(final Context context,final User user){ super(context,R.layout.org_item); mInflater = LayoutInflater.from(context); setOrgs(user); mBitmapManager = BitmapManager.getInstance(); } @Override protected int[] getChildViewIds() { // TODO Auto-generated method stub return new int[] {R.id.tv_org_name,R.id.iv_avatar}; } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub if(convertView == null){ convertView = initialize(mInflater.inflate(R.layout.org_dropdown_item, null)); } update(position,convertView,getItem(position)); return convertView; } private void setActionIcon(ImageView imageView,int drawable){ imageView.setImageResource(drawable); imageView.setTag(R.id.iv_avatar,null); } public HomeDropdownListAdapter setSelected(int seelcted){ this.selected = selected; return this; } public int getSelected(){ return selected; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub if(!isOrgPosition(position)){ position = selected; } return super.getView(position, convertView, parent); } @Override protected void update(int position, Object item) { // TODO Auto-generated method stub switch(getAction(position)){ case ACTION_PROFILE: setText(0,"profile"); setActionIcon(imageView(1),R.drawable.ic_action_profile); break; case ACTION_GROUPS: setText(0,"groups"); setActionIcon(imageView(1), R.drawable.ic_action_groups); break; default: //User user = (User)item; setText(0,"Absurd"); mBitmapManager.loadBitmap(AppConstant.IMAGE_URL, imageView(1), null, 0, 0); } } }