mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
Use fresco image loader instead of glide (#2282)
This commit is contained in:
parent
5cda35c5f5
commit
21f82dd346
3 changed files with 58 additions and 1 deletions
|
|
@ -39,7 +39,9 @@ dependencies {
|
|||
implementation files('libs/simplemagic-1.9.jar')
|
||||
implementation "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"
|
||||
kapt "com.jakewharton:butterknife-compiler:$BUTTERKNIFE_VERSION"
|
||||
implementation 'com.github.esafirm.android-image-picker:imagepicker:1.13.1'
|
||||
implementation('com.github.esafirm.android-image-picker:imagepicker:1.13.1', {
|
||||
exclude group: 'com.github.bumptech.glide', module: 'glide'
|
||||
})
|
||||
|
||||
// Logging
|
||||
implementation 'ch.acra:acra:4.9.2'
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import javax.inject.Named;
|
|||
import javax.inject.Singleton;
|
||||
|
||||
import fr.free.nrw.commons.R;
|
||||
import fr.free.nrw.commons.media.FrescoImageLoader;
|
||||
import fr.free.nrw.commons.kvstore.BasicKvStore;
|
||||
import fr.free.nrw.commons.kvstore.JsonKvStore;
|
||||
import fr.free.nrw.commons.nearby.Place;
|
||||
|
|
@ -95,6 +96,7 @@ public class ContributionController {
|
|||
.showCamera(false)
|
||||
.folderMode(true)
|
||||
.includeVideo(false)
|
||||
.imageLoader(new FrescoImageLoader())
|
||||
.enableLog(true);
|
||||
|
||||
if (imageLimit > 1) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
package fr.free.nrw.commons.media;
|
||||
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.esafirm.imagepicker.features.imageloader.ImageLoader;
|
||||
import com.esafirm.imagepicker.features.imageloader.ImageType;
|
||||
import com.facebook.common.util.UriUtil;
|
||||
import com.facebook.drawee.backends.pipeline.Fresco;
|
||||
import com.facebook.drawee.drawable.ProgressBarDrawable;
|
||||
import com.facebook.drawee.generic.GenericDraweeHierarchy;
|
||||
import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder;
|
||||
import com.facebook.drawee.interfaces.DraweeController;
|
||||
import com.facebook.drawee.view.DraweeHolder;
|
||||
import com.facebook.imagepipeline.common.ResizeOptions;
|
||||
import com.facebook.imagepipeline.request.ImageRequest;
|
||||
import com.facebook.imagepipeline.request.ImageRequestBuilder;
|
||||
|
||||
public class FrescoImageLoader implements ImageLoader {
|
||||
|
||||
@Override
|
||||
public void loadImage(String path, ImageView imageView, ImageType imageType) {
|
||||
Drawable defaultDrawable = imageView.getDrawable();
|
||||
Resources resources = imageView.getContext().getResources();
|
||||
GenericDraweeHierarchy hierarchy = new GenericDraweeHierarchyBuilder(resources)
|
||||
.build();
|
||||
final DraweeHolder<GenericDraweeHierarchy> draweeHolder = DraweeHolder.create(hierarchy, imageView.getContext());
|
||||
draweeHolder.getHierarchy().setProgressBarImage(new ProgressBarDrawable());
|
||||
Drawable drawable = draweeHolder.getHierarchy().getTopLevelDrawable();
|
||||
if (drawable == null) {
|
||||
imageView.setImageDrawable(defaultDrawable);
|
||||
} else {
|
||||
imageView.setImageDrawable(drawable);
|
||||
}
|
||||
|
||||
Uri uri = new Uri.Builder()
|
||||
.scheme(UriUtil.LOCAL_FILE_SCHEME)
|
||||
.path(path)
|
||||
.build();
|
||||
ImageRequest imageRequest = ImageRequestBuilder
|
||||
.newBuilderWithSource(uri)
|
||||
.setResizeOptions(new ResizeOptions(200, 200))
|
||||
.build();
|
||||
DraweeController controller = Fresco.newDraweeControllerBuilder()
|
||||
.setOldController(draweeHolder.getController())
|
||||
.setImageRequest(imageRequest)
|
||||
.build();
|
||||
draweeHolder.setController(controller);
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue