From 3f5104d60a47b42d6d12b76d58e3a4d3c34756d5 Mon Sep 17 00:00:00 2001 From: Javi Rueda Date: Mon, 29 Mar 2021 17:38:51 +0200 Subject: [PATCH] Hide floating wallet on the Channel fragment (#1177) * Hide floating wallet on the Channel fragment * Unregister OnPageChangeCallback when exiting channel fragment --- .../browser/ui/channel/ChannelFragment.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/app/src/main/java/io/lbry/browser/ui/channel/ChannelFragment.java b/app/src/main/java/io/lbry/browser/ui/channel/ChannelFragment.java index c10ff3a0..5b731283 100644 --- a/app/src/main/java/io/lbry/browser/ui/channel/ChannelFragment.java +++ b/app/src/main/java/io/lbry/browser/ui/channel/ChannelFragment.java @@ -73,6 +73,7 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen private TextView textFollowerCount; private TabLayout tabLayout; private ViewPager2 tabPager; + ViewPager2.OnPageChangeCallback opcc; private View buttonEdit; private View buttonDelete; @@ -91,6 +92,8 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen // if this is set, scroll to the specific comment on load private String commentHash; + private float floatingWalletPositionY; + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_channel, container, false); @@ -122,6 +125,25 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen tabLayout = root.findViewById(R.id.channel_view_tabs); tabPager.setSaveEnabled(false); + View floatingBalance = getActivity().findViewById(R.id.floating_balance_main_container); + floatingWalletPositionY = floatingBalance.getY(); + + opcc = new ViewPager2.OnPageChangeCallback() { + @Override + public void onPageSelected(int position) { + super.onPageSelected(position); + + if (position > 0) { + // Hide floating wallet for the About and the Comment tabs as they are mostly text + ((MainActivity) getContext()).translateFloatingWallet(floatingWalletPositionY); + } else { + ((MainActivity) getContext()).restoreWalletContainerPosition(); + } + } + }; + + tabPager.registerOnPageChangeCallback(opcc); + buttonEdit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -380,6 +402,15 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen super.onPause(); } + public void onStop() { + Context context = getContext(); + if (context instanceof MainActivity) { + ((MainActivity) context ).restoreWalletContainerPosition(); + } + tabPager.unregisterOnPageChangeCallback(opcc); + super.onStop(); + } + private void checkParams() { boolean updateRequired = false; Map params = getParams();