diff --git a/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index 7ed0a3a8bd8c..507e10f56b5d 100644 --- a/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -43,6 +43,7 @@ import com.owncloud.android.lib.common.OwnCloudAccount; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClientManagerFactory; +import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.resources.status.OwnCloudVersion; import com.owncloud.android.ui.adapter.DiskLruImageCache; @@ -352,6 +353,10 @@ private Bitmap doOCFileInBackground() { getMethod = new GetMethod(uri); getMethod.setRequestHeader("Cookie", "nc_sameSiteCookielax=true;nc_sameSiteCookiestrict=true"); + + getMethod.setRequestHeader(RemoteOperation.OCS_API_HEADER, + RemoteOperation.OCS_API_HEADER_VALUE); + int status = mClient.executeMethod(getMethod); if (status == HttpStatus.SC_OK) { InputStream inputStream = getMethod.getResponseBodyAsStream(); diff --git a/src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java b/src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java index f1caabbbef9c..cea515475b18 100644 --- a/src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java +++ b/src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java @@ -75,8 +75,8 @@ public class ActivityListAdapter extends RecyclerView.Adapter { - public static final int HEADER_TYPE = 100; - public static final int ACTIVITY_TYPE = 101; + private static final int HEADER_TYPE = 100; + private static final int ACTIVITY_TYPE = 101; private final ActivityListInterface activityListInterface; private final int px; private static final String TAG = ActivityListAdapter.class.getSimpleName(); @@ -101,7 +101,7 @@ public void setActivityItems(List activityItems, OwnCloudClient client) String sTime = ""; for (Object o : activityItems) { Activity activity = (Activity) o; - String time = null; + String time; if (activity.getDatetime() != null) { time = DisplayUtils.getRelativeTimestamp(context, activity.getDatetime().getTime()).toString(); @@ -182,18 +182,15 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { activityViewHolder.list.setVisibility(View.VISIBLE); activityViewHolder.list.removeAllViews(); - activityViewHolder.list.post(new Runnable() { - @Override - public void run() { - int w = activityViewHolder.list.getMeasuredWidth(); - int elPxSize = px + 20; - int totalColumnCount = (int) Math.floor(w / elPxSize); - - try { - activityViewHolder.list.setColumnCount(totalColumnCount); - } catch (IllegalArgumentException e) { - Log_OC.e(TAG, "error setting column count to " + totalColumnCount); - } + activityViewHolder.list.post(() -> { + int w = activityViewHolder.list.getMeasuredWidth(); + int elPxSize = px + 20; + int totalColumnCount = (int) Math.floor(w / elPxSize); + + try { + activityViewHolder.list.setColumnCount(totalColumnCount); + } catch (IllegalArgumentException e) { + Log_OC.e(TAG, "error setting column count to " + totalColumnCount); } }); @@ -231,12 +228,7 @@ private ImageView createThumbnail(final RichObject richObject) { params.setMargins(10, 10, 10, 10); ImageView imageView = new ImageView(context); imageView.setLayoutParams(params); - imageView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - activityListInterface.onActivityClicked(richObject); - } - }); + imageView.setOnClickListener(v -> activityListInterface.onActivityClicked(richObject)); setBitmap(file, imageView); return imageView; @@ -246,11 +238,19 @@ private void setBitmap(OCFile file, ImageView fileIcon) { // No Folder if (!file.isFolder()) { if ((MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file))) { - String uri = mClient.getBaseUri() + "" + - "/index.php/apps/files/api/v1/thumbnail/" + - px + "/" + px + Uri.encode(file.getRemotePath(), "/"); + int placeholder; - Glide.with(context).using(new CustomGlideStreamLoader()).load(uri).into(fileIcon); //Using custom fetcher + if (MimeTypeUtil.isImage(file)) { + placeholder = R.drawable.file_image; + } else { + placeholder = R.drawable.file_movie; + } + + String uri = mClient.getBaseUri() + "/index.php/apps/files/api/v1/thumbnail/" + px + "/" + px + + Uri.encode(file.getRemotePath(), "/"); + + Glide.with(context).using(new CustomGlideStreamLoader()).load(uri).placeholder(placeholder) + .error(placeholder).into(fileIcon); // using custom fetcher } else { fileIcon.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimetype(), file.getFileName(), null)); @@ -258,11 +258,8 @@ private void setBitmap(OCFile file, ImageView fileIcon) { } else { // Folder fileIcon.setImageDrawable( - MimeTypeUtil.getFolderTypeIcon( - file.isSharedWithMe() || file.isSharedWithSharee(), - file.isSharedViaLink() - ) - ); + MimeTypeUtil.getFolderTypeIcon(file.isSharedWithMe() || file.isSharedWithSharee(), + file.isSharedViaLink())); } } @@ -278,8 +275,7 @@ private void downloadIcon(String icon, ImageView itemViewType) { .placeholder(R.drawable.ic_activity) .error(R.drawable.ic_activity) .animate(android.R.anim.fade_in) - .listener(new SvgSoftwareLayerSetter()); - + .listener(new SvgSoftwareLayerSetter<>()); Uri uri = Uri.parse(icon); requestBuilder @@ -319,7 +315,7 @@ public void onClick(View widget) { return ssb; } - public RichObject searchObjectByName(ArrayList richObjectList, String name) { + private RichObject searchObjectByName(ArrayList richObjectList, String name) { for (RichObject richObject : richObjectList) { if (richObject.getTag().equalsIgnoreCase(name)) return richObject; diff --git a/src/main/java/com/owncloud/android/utils/glide/HttpStreamFetcher.java b/src/main/java/com/owncloud/android/utils/glide/HttpStreamFetcher.java index cb7dd6d18c5d..d86dd4d6c330 100644 --- a/src/main/java/com/owncloud/android/utils/glide/HttpStreamFetcher.java +++ b/src/main/java/com/owncloud/android/utils/glide/HttpStreamFetcher.java @@ -28,6 +28,7 @@ import com.owncloud.android.lib.common.OwnCloudAccount; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClientManagerFactory; +import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.resources.status.OwnCloudVersion; @@ -65,12 +66,11 @@ public InputStream loadData(Priority priority) throws Exception { GetMethod get = null; try { get = new GetMethod(mURL); - get.setRequestHeader("Cookie", - "nc_sameSiteCookielax=true;nc_sameSiteCookiestrict=true"); + get.setRequestHeader("Cookie", "nc_sameSiteCookielax=true;nc_sameSiteCookiestrict=true"); + get.setRequestHeader(RemoteOperation.OCS_API_HEADER, RemoteOperation.OCS_API_HEADER_VALUE); int status = mClient.executeMethod(get); if (status == HttpStatus.SC_OK) { - InputStream inputStream = get.getResponseBodyAsStream(); - return inputStream; + return get.getResponseBodyAsStream(); } else { mClient.exhaustResponse(get.getResponseBodyAsStream()); }