Skip to content

Commit

Permalink
do not show play icon when movie thumbnail failed
Browse files Browse the repository at this point in the history
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
  • Loading branch information
tobiasKaminsky authored and AndyScherzinger committed Aug 28, 2018
1 parent 51a1faa commit fef9db0
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,11 @@
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Looper;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
Expand All @@ -39,6 +41,8 @@
import android.widget.LinearLayout;
import android.widget.TextView;

import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.transition.Transition;
import com.owncloud.android.R;
import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.datamodel.FileDataStorageManager;
Expand Down Expand Up @@ -255,7 +259,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi

boolean gridImage = MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file);

setThumbnail(file, gridViewHolder.thumbnail);
setThumbnail(file, gridViewHolder);

if (MimeTypeUtil.isVideo(file)) {
gridViewHolder.playIcon.setVisibility(View.VISIBLE);
Expand Down Expand Up @@ -356,7 +360,9 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi
}
}

private void setThumbnail(OCFile file, ImageView thumbnailView) {
private void setThumbnail(OCFile file, OCFileListGridImageViewHolder gridImageViewHolder) {
ImageView thumbnailView = gridImageViewHolder.thumbnail;

if (file.isFolder()) {
thumbnailView.setImageDrawable(MimeTypeUtil.getFolderTypeIcon(file.isSharedWithMe() ||
file.isSharedWithSharee(), file.isSharedViaLink(), file.isEncrypted(), file.getMountType(),
Expand All @@ -367,8 +373,23 @@ private void setThumbnail(OCFile file, ImageView thumbnailView) {
if (client == null) {
client = AccountUtils.getClientForCurrentAccount(mContext);
}

DisplayUtils.downloadThumbnail(file, thumbnailView, client, mContext);

SimpleTarget thumbnailTarget = new SimpleTarget<Drawable>() {
@Override
public void onResourceReady(@NonNull Drawable resource,
@Nullable Transition<? super Drawable> transition) {
thumbnailView.setImageDrawable(resource);
}

@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
int placeholder = MimeTypeUtil.isVideo(file) ? R.drawable.file_movie : R.drawable.file_image;
thumbnailView.setImageResource(placeholder);
gridImageViewHolder.playIcon.setVisibility(View.GONE);
}
};

DisplayUtils.downloadThumbnail(file, thumbnailTarget, client, mContext);

if ("image/png".equalsIgnoreCase(file.getMimeType())) {
thumbnailView.setBackgroundColor(mContext.getResources().getColor(R.color.background_color));
Expand Down
12 changes: 10 additions & 2 deletions src/main/java/com/owncloud/android/utils/DisplayUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -684,7 +684,7 @@ public static void localImage(File file, int placeholder, int error, ImageView v
.into(view);
}

public static void downloadThumbnail(OCFile file, ImageView view, OwnCloudClient client, Context context) {
public static void downloadThumbnail(OCFile file, Object view, OwnCloudClient client, Context context) {
GlideContainer container = new GlideContainer();

int placeholder = MimeTypeUtil.isVideo(file) ? R.drawable.file_movie : R.drawable.file_image;
Expand All @@ -696,10 +696,18 @@ public static void downloadThumbnail(OCFile file, ImageView view, OwnCloudClient
container.client = client;
container.key = GlideKey.serverThumbnail(file);

if (view instanceof ImageView) {
GlideApp.with(context)
.load(container)
.placeholder(placeholder)
.error(placeholder)
.into((ImageView) view);
}
GlideApp.with(context)
.load(container)
.placeholder(placeholder)
.into(view);
.error(placeholder)
.into((SimpleTarget<Drawable>) view);
}

public static void downloadActivityThumbnail(OCFile file, ImageView view, OwnCloudClient client, Context context) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ public void loadData(@NonNull Priority priority, @NonNull DataCallback<? super I
callback.onDataReady(get.getResponseBodyAsStream());
} else {
container.client.exhaustResponse(get.getResponseBodyAsStream());
callback.onLoadFailed(new Exception("Thumbnail failed"));
}
} catch (Exception e) {
Log_OC.e(TAG, e.getMessage(), e);
Expand Down

0 comments on commit fef9db0

Please sign in to comment.