package com.mozu.mozuandroidinstoreassistant.app.order.adapters;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import com.mozu.mozuandroidinstoreassistant.app.R;
import com.mozu.mozuandroidinstoreassistant.app.data.IData;
import com.mozu.mozuandroidinstoreassistant.app.data.order.BottomRowItem;
import com.mozu.mozuandroidinstoreassistant.app.data.order.OrderRefundDataItem;
import com.mozu.mozuandroidinstoreassistant.app.data.order.OrderRefundHeaderItem;
import com.mozu.mozuandroidinstoreassistant.app.data.order.OrderReturnDataItem;
import com.mozu.mozuandroidinstoreassistant.app.data.order.OrderReturnHeaderDataItem;
import com.mozu.mozuandroidinstoreassistant.app.data.order.OrderReturnTitleDataItem;
import com.mozu.mozuandroidinstoreassistant.app.data.order.TopRowItem;
import com.mozu.mozuandroidinstoreassistant.app.layout.IRowLayout;
import java.util.ArrayList;
import java.util.List;
public class OrderDetailReturnDialogAdapter extends BaseAdapter {
List<IData> mData = new ArrayList<IData>();
public OrderDetailReturnDialogAdapter(Context context, List<IData> data) {
mData = data;
}
@Override
public boolean isEnabled(int position) {
RowType rowType = getRowType(position);
return (rowType == RowType.RETURN_ITEM_ROW || rowType == RowType.REFUND_ITEM_ROW);
}
@Override
public int getCount() {
return mData.size();
}
public RowType getRowType(int position) {
IData dataItem = getItem(position);
if (dataItem instanceof OrderReturnTitleDataItem) {
return RowType.RETURN_TITLE_ROW;
} else if (dataItem instanceof OrderReturnHeaderDataItem) {
return RowType.RETURN_HEADER_ROW;
} else if (dataItem instanceof OrderReturnDataItem) {
return RowType.RETURN_ITEM_ROW;
} else if (dataItem instanceof OrderRefundDataItem) {
return RowType.REFUND_ITEM_ROW;
} else if (dataItem instanceof OrderRefundHeaderItem) {
return RowType.REFUND_HEADER_ROW;
} else if (dataItem instanceof TopRowItem) {
return RowType.TOP_ROW;
} else if (dataItem instanceof BottomRowItem) {
return RowType.BOTTOM_ROW;
} else {
return RowType.EMPTY_ROW;
}
}
@Override
public int getItemViewType(int position) {
return getRowType(position).ordinal();
}
@Override
public int getViewTypeCount() {
return RowType.values().length;
}
@Override
public IData getItem(int i) {
return mData.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
if (convertView == null) {
RowType rowType = getRowType(position);
if (rowType == RowType.RETURN_TITLE_ROW) {
convertView = inflater.inflate(R.layout.order_return_title_item, null);
} else if (rowType == RowType.RETURN_HEADER_ROW) {
convertView = inflater.inflate(R.layout.order_return_header_item, null);
} else if (rowType == RowType.RETURN_ITEM_ROW) {
convertView = inflater.inflate(R.layout.order_return_item_row, null);
} else if (rowType == RowType.REFUND_HEADER_ROW) {
convertView = inflater.inflate(R.layout.order_refund_header_item, null);
} else if (rowType == RowType.REFUND_ITEM_ROW) {
convertView = inflater.inflate(R.layout.order_refund_item, null);
} else if (rowType == RowType.BOTTOM_ROW) {
convertView = inflater.inflate(R.layout.bottom_row, null);
} else if (rowType == RowType.TOP_ROW) {
convertView = inflater.inflate(R.layout.top_row_layout, null);
}
}
IRowLayout rowItem = (IRowLayout) convertView;
rowItem.bindData(getItem(position));
return convertView;
}
public void setData(List<IData> data) {
mData = data;
}
public enum RowType {
RETURN_TITLE_ROW,
RETURN_HEADER_ROW,
RETURN_ITEM_ROW,
REFUND_HEADER_ROW,
REFUND_ITEM_ROW,
EMPTY_ROW,
TOP_ROW,
BOTTOM_ROW
}
}