Skip to content

Instantly share code, notes, and snippets.

@IlyaEremin
Last active August 29, 2015 14:02
Show Gist options
  • Save IlyaEremin/f8f1503affecfdb07043 to your computer and use it in GitHub Desktop.
Save IlyaEremin/f8f1503affecfdb07043 to your computer and use it in GitHub Desktop.
universalAdapter
package ru.sunsoft.freeme.adapters;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import ru.sunsoft.freeme.interfaces.CanDraw;
/**
* Created by IlyaSun on 6/14/2014.
*/
public class UniversalAdapter<T, S extends CanDraw<T>> extends ArrayAdapter<T> {
int resource;
LayoutInflater inflater;
public UniversalAdapter(Context context, int resource, List<T> objects) {
super(context, resource, objects);
this.resource = resource;
inflater = LayoutInflater.from(context);
}
@Override public View getView(int position, View view, ViewGroup parent) {
if (view == null) {
@NotNull View statusView = inflater.inflate(resource, parent, false);
view = statusView;
}
((S) view).drawMe(getItem(position));
return view;
}
}
@IlyaEremin
Copy link
Author

public class FilesystemItemView extends ImageView implements CanDraw<FilesystemItem> {
    FilesystemItem filesystemItem;

    public FilesystemItemView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        ButterKnife.inject(this);
    }

    public void draw(FilesystemItem filesystemItem) {
        final int placeHolder = R.drawable.images_videos_folder_icon;
        this.filesystemItem = filesystemItem;
        final Uri uri = Uri.parse(String.format(API.THUMBNAIL_URL, filesystemItem.getId()));
        final int dimensionPixelSize = getResources().getDimensionPixelSize(R.dimen.file_system_grid_item_size);

        MyPicasso.with(getContext())
                .load(uri)
                .placeholder(placeHolder)
                .resize(dimensionPixelSize, dimensionPixelSize)
                .into(this);
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment