import java.io.File;
import java.io.InputStream;
import java.lang.ref.WeakReference;
+import java.net.FileNameMap;
+import java.net.URLConnection;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.ThumbnailUtils;
if (mFile instanceof OCFile) {
thumbnail = doOCFileInBackground();
+
+ if (((OCFile) mFile).isVideo()){
+ thumbnail = addVideoOverlay(thumbnail);
+ }
} else if (mFile instanceof File) {
thumbnail = doFileInBackground();
+
+ String url = ((File) mFile).getAbsolutePath();
+ FileNameMap fileNameMap = URLConnection.getFileNameMap();
+ String mMimeType = fileNameMap.getContentTypeFor("file://" + url);
+
+ if (mMimeType != null && mMimeType.startsWith("video/")){
+ thumbnail = addVideoOverlay(thumbnail);
+ }
//} else { do nothing
}
return null;
}
+ public static Bitmap addVideoOverlay(Bitmap thumbnail){
+ Bitmap bitmap2 = BitmapFactory.decodeResource(MainApp.getAppContext().getResources(),
+ R.drawable.view_play);
+
+ Bitmap resized = Bitmap.createScaledBitmap(bitmap2,
+ (int) (thumbnail.getWidth() * 0.6),
+ (int) (thumbnail.getHeight() * 0.6), true);
+
+ Bitmap resultBitmap = Bitmap.createBitmap(thumbnail.getWidth(),
+ thumbnail.getHeight(),
+ Bitmap.Config.ARGB_8888);
+
+ Canvas c = new Canvas(resultBitmap);
+
+ c.drawBitmap(thumbnail, 0, 0, null);
+
+ Paint p = new Paint();
+ p.setAlpha(230);
+
+ c.drawBitmap(resized, (thumbnail.getWidth() - resized.getWidth()) / 2,
+ (thumbnail.getHeight() - resized.getHeight()) / 2, p);
+
+ return resultBitmap;
+ }
+
public static class AsyncDrawable extends BitmapDrawable {
private final WeakReference<ThumbnailGenerationTask> bitmapWorkerTaskReference;
import android.content.SharedPreferences;\r
import android.graphics.Bitmap;\r
import android.graphics.BitmapFactory;\r
+import android.graphics.Canvas;\r
+import android.graphics.Paint;\r
import android.os.Build;\r
import android.preference.PreferenceManager;\r
import android.text.format.DateUtils;\r
String.valueOf(file.getRemoteId())\r
);\r
if (thumbnail != null && !file.needsUpdateThumbnail()){\r
- fileIcon.setImageBitmap(thumbnail);\r
+\r
+ if (file.isVideo()) {\r
+ Bitmap withOverlay = ThumbnailsCacheManager.addVideoOverlay(thumbnail);\r
+ fileIcon.setImageBitmap(withOverlay);\r
+ } else {\r
+ fileIcon.setImageBitmap(thumbnail);\r
+ }\r
} else {\r
// generate new Thumbnail\r
if (ThumbnailsCacheManager.cancelPotentialWork(file, fileIcon)) {\r