Dispaly thumbnail when file is image

This commit is contained in:
masaaki matsuo 2015-07-17 01:03:49 +09:00
parent 48cd33ae2d
commit a601a0e06e

View file

@ -25,6 +25,7 @@ import java.lang.ref.WeakReference;
import android.accounts.Account;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
@ -41,6 +42,7 @@ import android.widget.TextView;
import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.datamodel.ThumbnailsCacheManager;
import com.owncloud.android.files.FileMenuFilter;
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
@ -343,7 +345,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
// set file details
setFilename(file.getFileName());
setFiletype(file.getMimetype(), file.getFileName());
setFiletype(file);
setFilesize(file.getFileLength());
setTimeModified(file.getModificationTimestamp());
@ -395,18 +397,31 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
/**
* Updates the MIME type in view
* @param mimetype MIME type to set
* @param filename Name of the file, to deduce the icon to use in case the MIME type is not precise enough
* @param file : An {@link OCFile}
*/
private void setFiletype(String mimetype, String filename) {
private void setFiletype(OCFile file) {
String mimetype = file.getMimetype();
TextView tv = (TextView) getView().findViewById(R.id.fdType);
if (tv != null) {
// mimetype MIME type to set
String printableMimetype = DisplayUtils.convertMIMEtoPrettyPrint(mimetype);
tv.setText(printableMimetype);
}
ImageView iv = (ImageView) getView().findViewById(R.id.fdIcon);
if (iv != null) {
iv.setImageResource(DisplayUtils.getFileTypeIconId(mimetype, filename));
Bitmap thumbnail = null;
if (file.isImage()) {
String tagId = String.valueOf(file.getRemoteId());
thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(tagId);
}
if (thumbnail != null) {
// Display thumbnail
iv.setImageBitmap(thumbnail);
} else {
// Name of the file, to deduce the icon to use in case the MIME type is not precise enough
String filename = file.getFileName();
iv.setImageResource(DisplayUtils.getFileTypeIconId(mimetype, filename));
}
}
}