package com.openfarmanager.android.adapters;
import android.graphics.Color;
import android.graphics.Typeface;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.openfarmanager.android.App;
import com.openfarmanager.android.R;
import com.openfarmanager.android.core.Settings;
import com.openfarmanager.android.filesystem.FakeFile;
import com.openfarmanager.android.filesystem.FileProxy;
import com.openfarmanager.android.utils.Extensions;
import java.io.File;
import java.util.Date;
import java.util.List;
/**
* @author Vlad Namashko
*/
public class NetworkEntryAdapter extends FileSystemAdapter {
private List<FileProxy> mEntries;
//private String mParentPath;
private FileProxy mUpNavigator;
public NetworkEntryAdapter(List<FileProxy> entries, FileProxy upNavigator) {
setItems(entries, upNavigator);
}
public void setItems(List<FileProxy> entries, FileProxy upNavigator) {
mEntries = entries;
mUpNavigator = upNavigator;
mIsRoot = upNavigator.isRoot();
notifyDataSetChanged();
}
public List<FileProxy> getFiles() {
return mEntries;
}
@Override
public int getItemCount() {
return mEntries.size() + 1;
}
@Override
public Object getItem(int i) {
if (i == 0) {
return mUpNavigator;
}
return mEntries.get(i - 1);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
protected void bindView(ViewHolder holder, final int position) {
FileProxy item = (FileProxy) getItem(position);
holder.name.setText(item.getName());
Settings settings = App.sInstance.getSettings();
// int fontSize = settings.getMainPanelFontSize();
// holder.name.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSize);
// holder.info.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSize);
//
// Typeface typeface = settings.getMainPanelFontType();
// holder.name.setTypeface(typeface);
// holder.info.setTypeface(typeface);
if (mSelectedFiles.contains(item)) {
holder.name.setTextColor(settings.getSelectedColor());
holder.info.setTextColor(settings.getSelectedColor());
} else if (item.isDirectory()) {
holder.name.setTextColor(settings.getFolderColor());
holder.info.setTextColor(settings.getFolderColor());
} else {
holder.name.setTextColor(settings.getTextColor());
holder.info.setTextColor(settings.getTextColor());
}
holder.configureCell(settings);
FakeFile fakeFile = null;
if (item instanceof FakeFile) {
fakeFile = (FakeFile) item;
}
if (item.isRoot() || (fakeFile != null && fakeFile.isRoot())) {
holder.info.setText(R.string.folder_root);
} else if (item.isUpNavigator() || (fakeFile != null && fakeFile.isUpNavigator())) {
holder.info.setText(R.string.folder_up);
} else if (item.isVirtualDirectory()) {
holder.info.setText(R.string.virtual_folder);
} else if (item.isDirectory()) {
holder.info.setText(R.string.folder);
} else {
int type = Extensions.tryParse(App.sInstance.getSettings().getFileInfoType(), 0);
String value = "";
switch (type) {
case 0: default:
value = formatSize(item.getSize());
break;
case 1:
value = sDateFormat.format(new Date(item.lastModifiedDate()));
break;
case 2:
value += "rw";
break;
}
holder.info.setText(value);
}
}
}