/**
* Copyright 2016 JustWayward Team
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.justwayward.reader.ui.adapter;
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.justwayward.reader.R;
import com.justwayward.reader.base.Constant;
import com.justwayward.reader.bean.RankingList;
import com.justwayward.reader.common.OnRvItemClickListener;
import com.yuyh.easyadapter.glide.GlideCircleTransform;
import java.util.List;
/**
* @author yuyh.
* @date 16/9/1.
*/
public class TopRankAdapter extends BaseExpandableListAdapter {
private Context mContext;
private LayoutInflater inflater;
private List<RankingList.MaleBean> groupArray;
private List<List<RankingList.MaleBean>> childArray;
private OnRvItemClickListener<RankingList.MaleBean> listener;
public TopRankAdapter(Context context, List<RankingList.MaleBean> groupArray, List<List<RankingList.MaleBean>> childArray) {
this.childArray = childArray;
this.groupArray = groupArray;
mContext = context;
inflater = LayoutInflater.from(context);
}
@Override
public int getGroupCount() {
return groupArray.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return childArray.get(groupPosition).size();
}
@Override
public Object getGroup(int groupPosition) {
return groupArray.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return childArray.get(groupPosition).get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
final View group = inflater.inflate(R.layout.item_top_rank_group, null);
ImageView ivCover = (ImageView) group.findViewById(R.id.ivRankCover);
if (!TextUtils.isEmpty(groupArray.get(groupPosition).cover)) {
Glide.with(mContext).load(Constant.IMG_BASE_URL + groupArray.get(groupPosition).cover).placeholder(R.drawable.avatar_default)
.transform(new GlideCircleTransform(mContext)).into(ivCover);
group.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
listener.onItemClick(group, groupPosition, groupArray.get(groupPosition));
}
}
});
} else {
ivCover.setImageResource(R.drawable.ic_rank_collapse);
}
TextView tvName = (TextView) group.findViewById(R.id.tvRankGroupName);
tvName.setText(groupArray.get(groupPosition).title);
ImageView ivArrow = (ImageView) group.findViewById(R.id.ivRankArrow);
if (childArray.get(groupPosition).size() > 0) {
if (isExpanded) {
ivArrow.setImageResource(R.drawable.rank_arrow_up);
} else {
ivArrow.setImageResource(R.drawable.rank_arrow_down);
}
} else {
ivArrow.setVisibility(View.GONE);
}
return group;
}
@Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
final View child = inflater.inflate(R.layout.item_top_rank_child, null);
TextView tvName = (TextView) child.findViewById(R.id.tvRankChildName);
tvName.setText(childArray.get(groupPosition).get(childPosition).title);
child.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onItemClick(child, childPosition, childArray.get(groupPosition).get(childPosition));
}
});
return child;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
public void setItemClickListener(OnRvItemClickListener<RankingList.MaleBean> listener) {
this.listener = listener;
}
}