Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import com.nextcloud.test.TestActivity
import com.owncloud.android.AbstractIT
import com.owncloud.android.datamodel.OCFile
import com.owncloud.android.datamodel.ThumbnailsCacheManager
import com.owncloud.android.datamodel.ThumbnailsCacheManager.InitDiskCacheTask
import com.owncloud.android.datamodel.ThumbnailsCacheManager.PREFIX_RESIZED_IMAGE
import com.owncloud.android.lib.common.utils.Log_OC
import com.owncloud.android.lib.resources.files.model.ImageDimension
Expand All @@ -45,7 +44,7 @@ class GalleryFragmentIT : AbstractIT() {

// initialise thumbnails cache on background thread
@Suppress("DEPRECATION")
InitDiskCacheTask().execute()
ThumbnailsCacheManager.initDiskCacheAsync()
}

@After
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/java/com/owncloud/android/MainApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,8 @@ public void onCreate() {
}

// initialise thumbnails cache on background thread
new ThumbnailsCacheManager.InitDiskCacheTask().execute();
ThumbnailsCacheManager.initDiskCacheAsync();


if (MDMConfig.INSTANCE.isLogEnabled(this)) {
// use app writable dir, no permissions needed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@
import java.io.InputStream;
import java.lang.ref.WeakReference;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
Expand Down Expand Up @@ -111,9 +114,10 @@ public final class ThumbnailsCacheManager {
private ThumbnailsCacheManager() {
}

public static class InitDiskCacheTask extends AsyncTask<File, Void, Void> {
@Override
protected Void doInBackground(File... params) {
private static final ExecutorService executor = Executors.newSingleThreadExecutor();

public static void initDiskCacheAsync() {
executor.execute(() -> {
synchronized (mThumbnailsDiskCacheLock) {
mThumbnailCacheStarting = true;

Expand Down Expand Up @@ -150,8 +154,7 @@ protected Void doInBackground(File... params) {
mThumbnailCacheStarting = false; // Finished initialization
mThumbnailsDiskCacheLock.notifyAll(); // Wake any waiting threads
}
return null;
}
});
}

/**
Expand Down Expand Up @@ -383,7 +386,7 @@ private Bitmap getScaledThumbnailAfterSave(Bitmap thumbnail) {
}

protected void onPostExecute(Bitmap bitmap) {
if (bitmap != null && imageViewReference != null) {
if (bitmap != null && imageViewReference.get() != null) {
final ImageView imageView = imageViewReference.get();
final GalleryImageGenerationTask bitmapWorkerTask = getGalleryImageGenerationTask(imageView);

Expand Down Expand Up @@ -480,7 +483,7 @@ protected Bitmap doInBackground(Object... params) {
}

protected void onPostExecute(Bitmap bitmap) {
if (imageViewReference != null) {
if (imageViewReference.get() != null) {
final ImageView imageView = imageViewReference.get();
final FrameLayout frameLayout = frameLayoutReference.get();

Expand Down Expand Up @@ -813,12 +816,7 @@ private int getThumbnailDimension() {
private Bitmap doFileInBackground() {
File file = (File)mFile;

final String imageKey;
if (mImageKey != null) {
imageKey = mImageKey;
} else {
imageKey = String.valueOf(file.hashCode());
}
final String imageKey = Objects.requireNonNullElseGet(mImageKey, () -> String.valueOf(file.hashCode()));

// local file should always generate a thumbnail
mImageKey = PREFIX_THUMBNAIL + mImageKey;
Expand Down Expand Up @@ -930,13 +928,7 @@ protected void onPostExecute(Bitmap bitmap) {
}

private Bitmap doFileInBackground(File file, Type type) {
final String imageKey;

if (mImageKey != null) {
imageKey = mImageKey;
} else {
imageKey = String.valueOf(file.hashCode());
}
final String imageKey = Objects.requireNonNullElseGet(mImageKey, () -> String.valueOf(file.hashCode()));

// Check disk cache in background thread
Bitmap thumbnail = getBitmapFromDiskCache(imageKey);
Expand Down Expand Up @@ -1049,17 +1041,6 @@ protected void onPostExecute(Drawable drawable) {
}
}

/**
* Converts size of file icon from dp to pixel
*
* @return int
*/
private int getAvatarDimension() {
// Converts dp to pixel
Resources r = MainApp.getAppContext().getResources();
return Math.round(r.getDimension(R.dimen.file_avatar_size));
}

private @NonNull
Drawable doAvatarInBackground() {
Bitmap avatar;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ public OCFileListAdapter(
setHasStableIds(true);

// initialise thumbnails cache on background thread
new ThumbnailsCacheManager.InitDiskCacheTask().execute();
ThumbnailsCacheManager.initDiskCacheAsync();
}

public boolean isMultiSelect() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import com.owncloud.android.databinding.UnifiedSearchFooterBinding
import com.owncloud.android.databinding.UnifiedSearchHeaderBinding
import com.owncloud.android.databinding.UnifiedSearchItemBinding
import com.owncloud.android.datamodel.FileDataStorageManager
import com.owncloud.android.datamodel.ThumbnailsCacheManager.InitDiskCacheTask
import com.owncloud.android.datamodel.ThumbnailsCacheManager
import com.owncloud.android.ui.interfaces.UnifiedSearchListInterface
import com.owncloud.android.ui.unifiedsearch.UnifiedSearchSection
import com.owncloud.android.utils.theme.ViewThemeUtils
Expand Down Expand Up @@ -155,6 +155,6 @@ class UnifiedSearchListAdapter(

init {
// initialise thumbnails cache on background thread
InitDiskCacheTask().execute()
ThumbnailsCacheManager.initDiskCacheAsync()
}
}
1 change: 0 additions & 1 deletion app/src/main/res/values/dims.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
<dimen name="file_icon_size_grid">128dp</dimen>
<dimen name="file_icon_rounded_corner_radius">8dp</dimen>
<dimen name="file_icon_rounded_corner_radius_for_grid_mode">3dp</dimen>
<dimen name="file_avatar_size">128dp</dimen>
<integer name="file_avatar_px">512</integer>
<dimen name="drawer_content_horizontal_padding">28dp</dimen>
<dimen name="standard_padding">16dp</dimen>
Expand Down
Loading