From fececb5fd24c3948548b43a3b79e2105b70ae8bc Mon Sep 17 00:00:00 2001 From: Ammar Githam Date: Sun, 15 Nov 2020 21:47:32 +0900 Subject: [PATCH] Fix post open animation bug occurring on specific Android 10 devices. Should fix pt. 7 mentioned in https://github.com/austinhuang0131/barinsta/issues/264 --- .../SharedElementTransitionDialogFragment.java | 1 - .../instagrabber/fragments/PostViewV2Fragment.java | 11 ++++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/awais/instagrabber/customviews/SharedElementTransitionDialogFragment.java b/app/src/main/java/awais/instagrabber/customviews/SharedElementTransitionDialogFragment.java index e6e16b0a..c00b6e39 100644 --- a/app/src/main/java/awais/instagrabber/customviews/SharedElementTransitionDialogFragment.java +++ b/app/src/main/java/awais/instagrabber/customviews/SharedElementTransitionDialogFragment.java @@ -138,7 +138,6 @@ public abstract class SharedElementTransitionDialogFragment extends DialogFragme final int initY = location[1]; destView.setX(initX); destView.setY(initY - Utils.getStatusBarHeight(getContext())); - destView.requestLayout(); boundsCalculatedCount++; if (startCalled) { startPostponedEnterTransition(); diff --git a/app/src/main/java/awais/instagrabber/fragments/PostViewV2Fragment.java b/app/src/main/java/awais/instagrabber/fragments/PostViewV2Fragment.java index 2b7b6e7c..802e5a87 100644 --- a/app/src/main/java/awais/instagrabber/fragments/PostViewV2Fragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/PostViewV2Fragment.java @@ -242,7 +242,16 @@ public class PostViewV2Fragment extends SharedElementTransitionDialogFragment { @Nullable final ViewGroup container, @Nullable final Bundle savedInstanceState) { binding = DialogPostViewBinding.inflate(inflater, container, false); - return binding.getRoot(); + final ConstraintLayout root = binding.getRoot(); + final ViewTreeObserver.OnPreDrawListener preDrawListener = new ViewTreeObserver.OnPreDrawListener() { + @Override + public boolean onPreDraw() { + root.getViewTreeObserver().removeOnPreDrawListener(this); + return false; + } + }; + root.getViewTreeObserver().addOnPreDrawListener(preDrawListener); + return root; } @Override