From 78484a86aca3e09bda679d1872eeb6f895746ae7 Mon Sep 17 00:00:00 2001 From: Rania Pilioura Date: Fri, 14 May 2021 14:19:59 +0300 Subject: [PATCH] Trying to solve merge conflicts disable scrolling functionality first try removed --- .../fragments/main/ProfileFragment.java | 62 +++++++------------ 1 file changed, 24 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java b/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java index ca279646..5e40818f 100644 --- a/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java @@ -27,7 +27,8 @@ import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.content.res.AppCompatResources; -import androidx.coordinatorlayout.widget.CoordinatorLayout; +import androidx.constraintlayout.motion.widget.MotionLayout; +import androidx.constraintlayout.motion.widget.MotionScene; import androidx.core.content.PermissionChecker; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; @@ -109,7 +110,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe private static final int STORAGE_PERM_REQUEST_CODE_FOR_SELECTION = 8030; private MainActivity fragmentActivity; - private CoordinatorLayout root; + private MotionLayout root; private FragmentProfileBinding binding; private boolean isLoggedIn; private String cookie; @@ -251,23 +252,15 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe final View profilePicView, final View mainPostImage, final int position) { - final PostViewV2Fragment.Builder builder = PostViewV2Fragment - .builder(feedModel); - if (position >= 0) { - builder.setPosition(position); + final NavController navController = NavHostFragment.findNavController(ProfileFragment.this); + final Bundle bundle = new Bundle(); + bundle.putSerializable(PostViewV2Fragment.ARG_MEDIA, feedModel); + bundle.putInt(PostViewV2Fragment.ARG_SLIDER_POSITION, position); + try { + navController.navigate(R.id.action_global_post_view, bundle); + } catch (Exception e) { + Log.e(TAG, "openPostDialog: ", e); } - if (!layoutPreferences.isAnimationDisabled()) { - builder.setSharedProfilePicElement(profilePicView) - .setSharedMainPostElement(mainPostImage); - } - final PostViewV2Fragment postViewV2Fragment = builder.build(); - postViewV2Fragment.setOnDeleteListener(() -> { - postViewV2Fragment.dismiss(); - binding.postsRecyclerView.refresh(); - }); - final FragmentManager fragmentManager = getChildFragmentManager(); - if (fragmentManager.isDestroyed() || fragmentManager.isStateSaved()) return; - postViewV2Fragment.show(fragmentManager, "post_view"); } }; private final FeedAdapterV2.SelectionModeCallback selectionModeCallback = new FeedAdapterV2.SelectionModeCallback() { @@ -346,26 +339,22 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe final boolean isSame = ("@" + profileModelUsername).equals(this.username); if (isSame) { setUsernameDelayed(); - fragmentActivity.setCollapsingView(profileDetailsBinding.getRoot()); shouldRefresh = false; return root; } } if (username == null || !username.equals(this.username)) { - fragmentActivity.setCollapsingView(profileDetailsBinding.getRoot()); shouldRefresh = true; return root; } } setUsernameDelayed(); - fragmentActivity.setCollapsingView(profileDetailsBinding.getRoot()); shouldRefresh = false; return root; } binding = FragmentProfileBinding.inflate(inflater, container, false); root = binding.getRoot(); - profileDetailsBinding = LayoutProfileDetailsBinding.inflate(inflater, fragmentActivity.getCollapsingToolbarView(), false); - fragmentActivity.setCollapsingView(profileDetailsBinding.getRoot()); + profileDetailsBinding = binding.header; return root; } @@ -555,14 +544,6 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe } } - @Override - public void onDestroyView() { - super.onDestroyView(); - if (profileDetailsBinding != null) { - fragmentActivity.removeCollapsingView(profileDetailsBinding.getRoot()); - } - } - @Override public void onRequestPermissionsResult(final int requestCode, @NonNull final String[] permissions, @NonNull final int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); @@ -590,7 +571,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe setUsernameDelayed(); } if (TextUtils.isEmpty(username) && !isLoggedIn) { - profileDetailsBinding.infoContainer.setVisibility(View.GONE); + binding.header.getRoot().setVisibility(View.GONE); binding.swipeRefreshLayout.setEnabled(false); binding.privatePage1.setImageResource(R.drawable.ic_outline_info_24); binding.privatePage2.setText(R.string.no_acc); @@ -688,12 +669,6 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe binding.postsRecyclerView.refresh(); } - //Disable scrolling when profile has no posts - if (profileModel.getMediaCount() == 0){ - final AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) fragmentActivity.getCollapsingToolbarView().getLayoutParams(); - toolbarLayoutParams.setScrollFlags(0); - } - profileDetailsBinding.isVerified.setVisibility(profileModel.isVerified() ? View.VISIBLE : View.GONE); profileDetailsBinding.isPrivate.setVisibility(profileModel.isPrivate() ? View.VISIBLE : View.GONE); final long profileId = profileModel.getPk(); @@ -1217,6 +1192,17 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe .setFeedItemCallback(feedItemCallback) .setSelectionModeCallback(selectionModeCallback) .init(); + binding.postsRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { + @Override + public void onScrolled(@NonNull final RecyclerView recyclerView, final int dx, final int dy) { + super.onScrolled(recyclerView, dx, dy); + final boolean canScrollVertically = recyclerView.canScrollVertically(-1); + final MotionScene.Transition transition = root.getTransition(R.id.transition); + if (transition != null) { + transition.setEnable(!canScrollVertically); + } + } + }); binding.swipeRefreshLayout.setRefreshing(true); postsSetupDone = true; }