package org.sparkleshare.android;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import org.sparkleshare.android.ui.ListEntryItem;
import org.sparkleshare.android.utils.ExternalDirectory;
import org.sparkleshare.android.utils.MimetypeChecker;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.SharedPreferences;
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 BrowsingAdapter extends BaseAdapter {
private ArrayList<ListEntryItem> items;
private Context context;
private Boolean hideFilesFolders;
public BrowsingAdapter(Context context) {
this.context = context;
items = new ArrayList<ListEntryItem>();
SharedPreferences prefs = SettingsActivity.getSettings((ContextWrapper) context);
hideFilesFolders = prefs.getBoolean("hideFilesFolders", false);
}
@Override
public int getCount() {
return items.size();
}
public void addEntry(ListEntryItem entry) {
if (hideFilesFolders && entry.getTitle().startsWith(".")) {
return;
} else {
entry.setFilePath(ExternalDirectory.getDownloadTargetPath(entry));
if(entry.isDirectory()){
ExternalDirectory.createDirectory(entry.getFilePath());
}
items.add(entry);
Collections.sort(items);
notifyDataSetChanged();
}
}
@Override
public Object getItem(int position) {
return items.get(position);
}
public void setItem(ListEntryItem item, int listviewPosition) {
items.set(listviewPosition, item);
notifyDataSetChanged();
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
Viewholder viewHolder;
if (convertView == null) {
view = LayoutInflater.from(context).inflate(R.layout.list_item_entry, null);
TextView title = (TextView) view.findViewById(R.id.list_item_title);
TextView subtitle = (TextView) view.findViewById(R.id.list_item_subtitle);
ImageView icon = (ImageView) view.findViewById(R.id.list_item_icon);
viewHolder = new Viewholder(title, subtitle, icon);
view.setTag(viewHolder);
} else {
viewHolder = (Viewholder) convertView.getTag();
}
ListEntryItem item = items.get(position);
viewHolder.title.setText(item.getTitle());
File file = new File(item.getFilePath());
if (file.exists()) {
viewHolder.subtitle.setText("\u2714 " + item.getSubtitle());
} else {
viewHolder.subtitle.setText(item.getSubtitle());
}
if (item.getMimetype() != null) {
viewHolder.icon.setImageResource(MimetypeChecker.getResIdforMimetype(item.getMimetype()));
}
return view;
}
private class Viewholder {
TextView title, subtitle;
ImageView icon;
public Viewholder(TextView title, TextView subtitle, ImageView icon) {
super();
this.icon = icon;
this.title = title;
this.subtitle = subtitle;
}
}
}