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 files('libs/simplemagic-1.9.jar')
|
||||||
implementation "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"
|
implementation "com.jakewharton:butterknife:$BUTTERKNIFE_VERSION"
|
||||||
kapt "com.jakewharton:butterknife-compiler:$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
|
// Logging
|
||||||
implementation 'ch.acra:acra:4.9.2'
|
implementation 'ch.acra:acra:4.9.2'
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import javax.inject.Named;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import fr.free.nrw.commons.R;
|
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.BasicKvStore;
|
||||||
import fr.free.nrw.commons.kvstore.JsonKvStore;
|
import fr.free.nrw.commons.kvstore.JsonKvStore;
|
||||||
import fr.free.nrw.commons.nearby.Place;
|
import fr.free.nrw.commons.nearby.Place;
|
||||||
|
|
@ -95,6 +96,7 @@ public class ContributionController {
|
||||||
.showCamera(false)
|
.showCamera(false)
|
||||||
.folderMode(true)
|
.folderMode(true)
|
||||||
.includeVideo(false)
|
.includeVideo(false)
|
||||||
|
.imageLoader(new FrescoImageLoader())
|
||||||
.enableLog(true);
|
.enableLog(true);
|
||||||
|
|
||||||
if (imageLimit > 1) {
|
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