From 9083eae7dc242367f9efec4b082d230c3dc106d2 Mon Sep 17 00:00:00 2001 From: Ashish Kumar Date: Tue, 23 Jun 2020 19:35:18 +0530 Subject: [PATCH] Handled null CompoundDrawable[2] in etTitle-> UploadMediaDetailsFragment (#3828) --- .../UploadMediaDetailFragment.java | 51 +++++++------------ 1 file changed, 18 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java index d231525bc73..04c4537de18 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java @@ -4,7 +4,6 @@ import android.annotation.SuppressLint; import android.content.Context; -import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import android.util.DisplayMetrics; @@ -24,19 +23,13 @@ import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; -import com.facebook.drawee.backends.pipeline.Fresco; -import com.facebook.drawee.drawable.ScalingUtils.ScaleType; -import com.facebook.drawee.generic.GenericDraweeHierarchy; -import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder; -import com.facebook.drawee.interfaces.DraweeController; +import com.github.chrisbanes.photoview.PhotoView; import com.jakewharton.rxbinding2.widget.RxTextView; import fr.free.nrw.commons.R; import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.filepicker.UploadableFile; import fr.free.nrw.commons.kvstore.JsonKvStore; import fr.free.nrw.commons.location.LatLng; -import fr.free.nrw.commons.media.zoomControllers.zoomable.DoubleTapGestureListener; -import fr.free.nrw.commons.media.zoomControllers.zoomable.ZoomableDraweeView; import fr.free.nrw.commons.nearby.Place; import fr.free.nrw.commons.settings.Prefs; import fr.free.nrw.commons.upload.Description; @@ -51,7 +44,6 @@ import fr.free.nrw.commons.utils.ImageUtils; import fr.free.nrw.commons.utils.ViewUtil; import io.reactivex.disposables.Disposable; -import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -77,7 +69,7 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements @BindView(R.id.rv_descriptions) RecyclerView rvDescriptions; @BindView(R.id.backgroundImage) - ZoomableDraweeView photoViewBackgroundImage; + PhotoView photoViewBackgroundImage; @BindView(R.id.btn_next) AppCompatButton btnNext; @BindView(R.id.btn_previous) @@ -172,24 +164,9 @@ private void init() { btnCopyPreviousTitleDesc.setVisibility(View.VISIBLE); } - addEtTitleTouchListener(); - } + attachImageViewScaleChangeListener(); - private void showImageWithLocalUri(Uri imageUri) { - if (imageUri != null) { - GenericDraweeHierarchy hierarchy = GenericDraweeHierarchyBuilder.newInstance(getResources()) - .setActualImageScaleType(ScaleType.FIT_XY) - .build(); - photoViewBackgroundImage.setHierarchy(hierarchy); - photoViewBackgroundImage - .setTapListener(new DoubleTapGestureListener(photoViewBackgroundImage)); - DraweeController controller = Fresco.newDraweeControllerBuilder() - .setUri(Uri.fromFile(new File(imageUri.getPath()))) - .build(); - photoViewBackgroundImage.setTransformationListener( - () -> expandCollapseMediaDetail(false)); - photoViewBackgroundImage.setController(controller); - } + addEtTitleTouchListener(); } /** @@ -223,6 +200,17 @@ private float convertDpToPixel(float dp, Context context) { return dp * ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT); } + /** + * Attaches the scale change listener to the image view + */ + private void attachImageViewScaleChangeListener() { + photoViewBackgroundImage.setOnScaleChangeListener( + (scaleFactor, focusX, focusY) -> { + //Whenever the uses plays with the image, lets collapse the media detail container + expandCollapseLlMediaDetail(false); + }); + } + /** * attach the presenter with the view */ @@ -298,7 +286,7 @@ public void onImageProcessed(UploadItem uploadItem, Place place) { } descriptions = uploadItem.getDescriptions(); - showImageWithLocalUri(uploadItem.getMediaUri()); + photoViewBackgroundImage.setImageURI(uploadItem.getMediaUri()); setDescriptionsInAdapter(descriptions); } @@ -407,17 +395,14 @@ public void onDestroyView() { @OnClick(R.id.rl_container_title) public void onRlContainerTitleClicked() { - expandCollapseMediaDetail(!isExpanded); + expandCollapseLlMediaDetail(!isExpanded); } /** * show hide media detail based on * @param shouldExpand */ - private void expandCollapseMediaDetail(boolean shouldExpand){ - if (isExpanded == shouldExpand) { - return; - } + private void expandCollapseLlMediaDetail(boolean shouldExpand){ llContainerMediaDetail.setVisibility(shouldExpand ? View.VISIBLE : View.GONE); isExpanded = !isExpanded; ibExpandCollapse.setRotation(ibExpandCollapse.getRotation() + 180);