package com.seafile.seadroid2.ui.adapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.google.common.collect.Lists; import com.seafile.seadroid2.R; import com.seafile.seadroid2.data.SeafRepo; import com.seafile.seadroid2.data.SearchedFile; import com.seafile.seadroid2.ui.activity.SearchActivity; import com.seafile.seadroid2.util.Utils; import java.util.List; /** * Adapter for search list * */ public class SearchAdapter extends BaseAdapter { private List<SearchedFile> items; private SearchActivity mActivity; public SearchAdapter(SearchActivity activity) { this.mActivity = activity; items = Lists.newArrayList(); } public void setItems(List<SearchedFile> data) { this.items = data; } @Override public int getCount() { return items.size(); } @Override public Object getItem(int position) { return items.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { SearchedFile item = items.get(position); View view = convertView; Viewholder viewHolder; if (convertView == null) { view = LayoutInflater.from(mActivity).inflate(R.layout.search_list_item, null); TextView path = (TextView) view.findViewById(R.id.search_item_path); TextView title = (TextView) view.findViewById(R.id.search_item_title); TextView subtitle = (TextView) view.findViewById(R.id.search_item_subtitle); ImageView icon = (ImageView) view.findViewById(R.id.search_item_icon); ImageView action = (ImageView) view.findViewById(R.id.search_item_action); viewHolder = new Viewholder(path, title, subtitle, icon, action); view.setTag(viewHolder); } else { viewHolder = (Viewholder) convertView.getTag(); } viewHolder.icon.setImageResource(item.getIcon()); viewHolder.path.setText(filePath(item)); viewHolder.title.setText(item.getTitle()); viewHolder.subtitle.setText(item.getSubtitle()); return view; } private String filePath(SearchedFile searchedFile) { String parentPath = Utils.getParentPath(searchedFile.getPath()); SeafRepo seafRepo = mActivity.getDataManager().getCachedRepoByID(searchedFile.getRepoID()); if (seafRepo != null) return Utils.pathJoin(seafRepo.getName(), parentPath); else return parentPath; } public void notifyChanged() { notifyDataSetChanged(); } private class Viewholder { TextView path, title, subtitle; ImageView icon, action; public Viewholder(TextView path, TextView title, TextView subtitle, ImageView icon, ImageView action) { super(); this.icon = icon; this.action = action; this.path = path; this.title = title; this.subtitle = subtitle; } } }