use of com.owncloud.android.datamodel.ThumbnailsCacheManager.AsyncThumbnailDrawable in project android by owncloud.
the class ReceiveExternalFilesAdapter method getView.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (convertView == null) {
vi = mInflater.inflate(R.layout.uploader_list_item_layout, parent, false);
}
OCFile file = mFiles.get(position);
TextView filename = (TextView) vi.findViewById(R.id.filename);
filename.setText(file.getFileName());
ImageView fileIcon = (ImageView) vi.findViewById(R.id.thumbnail);
fileIcon.setTag(file.getFileId());
TextView lastModV = (TextView) vi.findViewById(R.id.last_mod);
lastModV.setText(DisplayUtils.getRelativeTimestamp(mContext, file.getModificationTimestamp()));
TextView fileSizeV = (TextView) vi.findViewById(R.id.file_size);
TextView fileSizeSeparatorV = (TextView) vi.findViewById(R.id.file_separator);
fileSizeV.setVisibility(View.VISIBLE);
fileSizeSeparatorV.setVisibility(View.VISIBLE);
fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength(), mContext));
// get Thumbnail if file is image
if (file.isImage() && file.getRemoteId() != null) {
// Thumbnail in Cache?
Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(String.valueOf(file.getRemoteId()));
if (thumbnail != null && !file.needsUpdateThumbnail()) {
fileIcon.setImageBitmap(thumbnail);
} else {
// generate new Thumbnail
if (ThumbnailsCacheManager.cancelPotentialThumbnailWork(file, fileIcon)) {
final ThumbnailsCacheManager.ThumbnailGenerationTask task = new ThumbnailsCacheManager.ThumbnailGenerationTask(fileIcon, mStorageManager, mAccount);
if (thumbnail == null) {
thumbnail = ThumbnailsCacheManager.mDefaultImg;
}
final AsyncThumbnailDrawable asyncDrawable = new AsyncThumbnailDrawable(mContext.getResources(), thumbnail, task);
fileIcon.setImageDrawable(asyncDrawable);
task.execute(file);
}
}
} else {
fileIcon.setImageResource(MimetypeIconUtil.getFileTypeIconId(file.getMimetype(), file.getFileName()));
}
return vi;
}
Aggregations