package com.fastaccess.ui.adapter;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import com.fastaccess.R;
import com.fastaccess.data.dao.IconPackInfo;
import com.fastaccess.helper.PrefConstant;
import com.fastaccess.helper.PrefHelper;
import com.fastaccess.ui.adapter.viewholder.IconPacksViewHolder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Map;
/**
* Created by Kosh on 13/12/15 1:21 AM
*/
public class IconPackAdapter extends BaseAdapter {
private ArrayList<IconPackInfo> mSupportedPackages;
private String mCurrentIconPack;
private int mCurrentIconPackPosition = -1;
private boolean isPickIcon;
public IconPackAdapter(Context ctx, Map<String, IconPackInfo> supportedPackages, boolean isPickIcon) {
mSupportedPackages = new ArrayList<>(supportedPackages.values());
this.isPickIcon = isPickIcon;
Collections.sort(mSupportedPackages, new Comparator<IconPackInfo>() {
@Override public int compare(IconPackInfo lhs, IconPackInfo rhs) {
return lhs.label.toString().compareToIgnoreCase(rhs.label.toString());
}
});
String defaultLabel = ctx.getString(R.string.default_theme);
Drawable icon = ContextCompat.getDrawable(ctx, R.mipmap.ic_launcher);
mSupportedPackages.add(0, new IconPackInfo(defaultLabel, icon, ""));
mCurrentIconPack = PrefHelper.getString(PrefConstant.ICON_PACK);
}
@Override public int getCount() {
return mSupportedPackages.size();
}
@Override public String getItem(int position) {
return mSupportedPackages.get(position).packageName;
}
@Override public long getItemId(int position) {
return 0;
}
@Override public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
IconPacksViewHolder viewHolder;
if (view == null) {
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.icon_pack_layout, parent, false);
viewHolder = new IconPacksViewHolder(view);
view.setTag(viewHolder);
} else {
viewHolder = (IconPacksViewHolder) view.getTag();
}
IconPackInfo info = mSupportedPackages.get(position);
viewHolder.title.setText(info.label);
viewHolder.icon.setImageDrawable(info.icon);
if (!isPickIcon) {
boolean isCurrentIconPack = info.packageName.equals(mCurrentIconPack);
viewHolder.radio.setChecked(isCurrentIconPack);
if (isCurrentIconPack) {
mCurrentIconPackPosition = position;
}
} else {
viewHolder.radio.setVisibility(View.GONE);
}
return view;
}
public boolean isCurrentIconPack(int position) {
return mCurrentIconPackPosition == position;
}
}