diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java index 6ce97ae441..13a4a4426f 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java @@ -9,6 +9,12 @@ import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; import androidx.appcompat.app.AlertDialog; import androidx.cardview.widget.CardView; import androidx.fragment.app.Fragment; @@ -18,18 +24,6 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; - -import android.view.View; -import android.widget.ImageButton; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.TextView; -import java.util.ArrayList; -import java.util.List; - -import javax.inject.Inject; -import javax.inject.Named; - import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; @@ -51,7 +45,11 @@ import fr.free.nrw.commons.utils.PermissionUtils; import fr.free.nrw.commons.utils.ViewUtil; import io.reactivex.disposables.CompositeDisposable; +import java.util.ArrayList; import java.util.Collections; +import java.util.List; +import javax.inject.Inject; +import javax.inject.Named; import timber.log.Timber; public class UploadActivity extends BaseActivity implements UploadContract.View ,UploadBaseFragment.Callback{ @@ -438,6 +436,11 @@ public void setFragments(List fragments) { public int getItemPosition(Object object){ return PagerAdapter.POSITION_NONE; } + + @Override + public void destroyItem(ViewGroup container, int position, Object object) { + //I do not want the items to be destroyed, I want extant + } } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadBaseFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadBaseFragment.java index e3cecab988..afd1a694b5 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadBaseFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadBaseFragment.java @@ -19,7 +19,6 @@ public class UploadBaseFragment extends CommonsDaggerSupportFragment { @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setRetainInstance(true); } public void setCallback(Callback callback) { 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 1bdbb743a2..19aa265255 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 @@ -2,6 +2,7 @@ import android.os.Bundle; import android.text.TextUtils; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -16,6 +17,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.github.chrisbanes.photoview.OnScaleChangedListener; import com.github.chrisbanes.photoview.PhotoView; import com.jakewharton.rxbinding2.widget.RxTextView; @@ -155,6 +157,19 @@ private void init() { } else { btnCopyPreviousTitleDesc.setVisibility(View.VISIBLE); } + + attachImageViewScaleChangeListener(); + } + + /** + * 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); + }); } /** @@ -310,7 +325,15 @@ public void onDestroyView() { @OnClick(R.id.rl_container_title) public void onRlContainerTitleClicked() { - llContainerMediaDetail.setVisibility(isExpanded ? View.GONE : View.VISIBLE); + expandCollapseLlMediaDetail(!isExpanded); + } + + /** + * show hide media detail based on + * @param shouldExpand + */ + private void expandCollapseLlMediaDetail(boolean shouldExpand){ + llContainerMediaDetail.setVisibility(shouldExpand ? View.VISIBLE : View.GONE); isExpanded = !isExpanded; ibExpandCollapse.setRotation(ibExpandCollapse.getRotation() + 180); }