package net.dev123.yibo.service.adapter;
import net.dev123.yibo.R;
import net.dev123.yibo.common.theme.Theme;
import net.dev123.yibo.common.theme.ThemeUtil;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class AppGridAdapter extends BaseAdapter {
private AppGrid[] appGrids;
private LayoutInflater inflater;
private Theme theme;
public AppGridAdapter(Context context) {
appGrids = new AppGrid[] {
new AppGrid("icon_app_search", R.drawable.icon_app_search, R.string.label_app_search),
new AppGrid("icon_app_daily", R.drawable.icon_app_daily, R.string.label_app_daily),
new AppGrid("icon_app_image", R.drawable.icon_app_image, R.string.label_app_image),
new AppGrid("icon_app_hot_retweet", R.drawable.icon_app_hot_retweet, R.string.label_app_hot_retweet),
new AppGrid("icon_app_hot_comment", R.drawable.icon_app_hot_comment, R.string.label_app_hot_comment),
new AppGrid("icon_app_hot_topic", R.drawable.icon_app_hot_topic, R.string.label_app_hot_topic),
new AppGrid("icon_app_jokes", R.drawable.icon_app_jokes, R.string.label_app_jokes),
new AppGrid("icon_app_public_timeline", R.drawable.icon_app_public_timeline, R.string.label_app_public_timeline),
new AppGrid("icon_app_exchange", R.drawable.icon_app_exchange, R.string.label_app_exchange)
};
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
theme = ThemeUtil.createTheme(context);
}
@Override
public int getCount() {
return appGrids.length;
}
@Override
public Object getItem(int position) {
if (position < 0 && position >= appGrids.length) {
return null;
}
return appGrids[position];
}
@Override
public long getItemId(int position) {
if (position < 0 && position >= appGrids.length) {
return -1;
}
return appGrids[position].appImageId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
AppGridHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item_app, null);
holder = new AppGridHolder(convertView);
convertView.setTag(holder);
} else {
holder = (AppGridHolder)convertView.getTag();
}
AppGrid appGrid = (AppGrid)getItem(position);
if (appGrid != null) {
holder.ivApp.setImageDrawable(theme.getDrawable(appGrid.appImageName));
holder.tvAppName.setText(appGrid.appNameId);
}
return convertView;
}
private static class AppGrid {
String appImageName;
int appImageId;
int appNameId;
public AppGrid(String appImageName, int appImageId, int appNameId) {
this.appImageName = appImageName;
this.appImageId = appImageId;
this.appNameId = appNameId;
}
}
private static class AppGridHolder {
ImageView ivApp;
TextView tvAppName;
public AppGridHolder(View convertView) {
this.ivApp = (ImageView)convertView.findViewById(R.id.ivApp);
this.tvAppName = (TextView)convertView.findViewById(R.id.tvAppName);
Theme theme = ThemeUtil.createTheme(convertView.getContext());
tvAppName.setTextColor(theme.getColor("list_item_app_name"));
}
}
}