Loading app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java +38 −18 Original line number Diff line number Diff line Loading @@ -2141,7 +2141,6 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> holder.binding.fetchMoreContainerTop.setVisibility(View.GONE); status.isFetchMore = false; int position = holder.getBindingAdapterPosition(); adapter.notifyItemChanged(position); String statusIdMin = null, statusIdMax; if (position < statusList.size() - 1) { if (status.positionFetchMore == Status.PositionFetchMore.TOP) { Loading Loading @@ -2614,6 +2613,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> holder.bindingFilteredHide.dividerCard.setVisibility(View.GONE); } if (status.isFetchMore && fetchMoreCallBack != null) { boolean autofetch = sharedpreferences.getBoolean(context.getString(R.string.SET_AUTO_FETCH_MISSING_MESSAGES), false); if (!autofetch) { holder.bindingFilteredHide.layoutFetchMore.fetchMoreContainer.setVisibility(View.VISIBLE); holder.bindingFilteredHide.layoutFetchMore.fetchMoreMin.setOnClickListener(v -> { status.isFetchMore = false; Loading @@ -2631,6 +2632,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> holder.bindingFilteredHide.layoutFetchMore.fetchMoreMax.setOnClickListener(v -> { //We hide the button status.isFetchMore = false; notifyItemChanged(holder.getBindingAdapterPosition()); String fromId; if (status.positionFetchMore == Status.PositionFetchMore.TOP) { fromId = statusList.get(holder.getBindingAdapterPosition()).id; Loading @@ -2638,8 +2640,26 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> fromId = statusList.get(holder.getBindingAdapterPosition() - 1).id; } fetchMoreCallBack.onClickMaxId(fromId, status); notifyItemChanged(holder.getBindingAdapterPosition()); }); } else { status.isFetchMore = false; String minId = null, maxId; if (holder.getBindingAdapterPosition() < statusList.size() - 1) { if (status.positionFetchMore == Status.PositionFetchMore.TOP) { minId = statusList.get(holder.getBindingAdapterPosition() + 1).id; } else { minId = status.id; } } if (status.positionFetchMore == Status.PositionFetchMore.TOP) { maxId = statusList.get(holder.getBindingAdapterPosition()).id; } else { maxId = statusList.get(holder.getBindingAdapterPosition() - 1).id; } fetchMoreCallBack.autoFetch(minId, maxId, status); } } else { holder.bindingFilteredHide.layoutFetchMore.fetchMoreContainer.setVisibility(View.GONE); } Loading app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonTimeline.java +2 −3 Original line number Diff line number Diff line Loading @@ -507,8 +507,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. update.onUpdate(0, timelineType, slug); } SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); boolean autofetch = sharedpreferences.getBoolean(getString(R.string.SET_AUTO_FETCH_MISSING_MESSAGES), false); if (direction == DIRECTION.TOP && fetchingMissing && !autofetch) { if (direction == DIRECTION.TOP && fetchingMissing) { int position = getAbsolutePosition(fetched_statuses.statuses.get(fetched_statuses.statuses.size() - 1)); if (position != -1) { binding.recyclerView.scrollToPosition(position + 1); Loading Loading @@ -657,7 +656,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. binding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { scrollingUp = dy > 0; scrollingUp = dy < 0; if (requireActivity() instanceof BaseMainActivity) { if (dy < 0 && !((BaseMainActivity) requireActivity()).getFloatingVisibility()) ((BaseMainActivity) requireActivity()).manageFloatingButton(true); Loading Loading
app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java +38 −18 Original line number Diff line number Diff line Loading @@ -2141,7 +2141,6 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> holder.binding.fetchMoreContainerTop.setVisibility(View.GONE); status.isFetchMore = false; int position = holder.getBindingAdapterPosition(); adapter.notifyItemChanged(position); String statusIdMin = null, statusIdMax; if (position < statusList.size() - 1) { if (status.positionFetchMore == Status.PositionFetchMore.TOP) { Loading Loading @@ -2614,6 +2613,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> holder.bindingFilteredHide.dividerCard.setVisibility(View.GONE); } if (status.isFetchMore && fetchMoreCallBack != null) { boolean autofetch = sharedpreferences.getBoolean(context.getString(R.string.SET_AUTO_FETCH_MISSING_MESSAGES), false); if (!autofetch) { holder.bindingFilteredHide.layoutFetchMore.fetchMoreContainer.setVisibility(View.VISIBLE); holder.bindingFilteredHide.layoutFetchMore.fetchMoreMin.setOnClickListener(v -> { status.isFetchMore = false; Loading @@ -2631,6 +2632,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> holder.bindingFilteredHide.layoutFetchMore.fetchMoreMax.setOnClickListener(v -> { //We hide the button status.isFetchMore = false; notifyItemChanged(holder.getBindingAdapterPosition()); String fromId; if (status.positionFetchMore == Status.PositionFetchMore.TOP) { fromId = statusList.get(holder.getBindingAdapterPosition()).id; Loading @@ -2638,8 +2640,26 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> fromId = statusList.get(holder.getBindingAdapterPosition() - 1).id; } fetchMoreCallBack.onClickMaxId(fromId, status); notifyItemChanged(holder.getBindingAdapterPosition()); }); } else { status.isFetchMore = false; String minId = null, maxId; if (holder.getBindingAdapterPosition() < statusList.size() - 1) { if (status.positionFetchMore == Status.PositionFetchMore.TOP) { minId = statusList.get(holder.getBindingAdapterPosition() + 1).id; } else { minId = status.id; } } if (status.positionFetchMore == Status.PositionFetchMore.TOP) { maxId = statusList.get(holder.getBindingAdapterPosition()).id; } else { maxId = statusList.get(holder.getBindingAdapterPosition() - 1).id; } fetchMoreCallBack.autoFetch(minId, maxId, status); } } else { holder.bindingFilteredHide.layoutFetchMore.fetchMoreContainer.setVisibility(View.GONE); } Loading
app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonTimeline.java +2 −3 Original line number Diff line number Diff line Loading @@ -507,8 +507,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. update.onUpdate(0, timelineType, slug); } SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); boolean autofetch = sharedpreferences.getBoolean(getString(R.string.SET_AUTO_FETCH_MISSING_MESSAGES), false); if (direction == DIRECTION.TOP && fetchingMissing && !autofetch) { if (direction == DIRECTION.TOP && fetchingMissing) { int position = getAbsolutePosition(fetched_statuses.statuses.get(fetched_statuses.statuses.size() - 1)); if (position != -1) { binding.recyclerView.scrollToPosition(position + 1); Loading Loading @@ -657,7 +656,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. binding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { scrollingUp = dy > 0; scrollingUp = dy < 0; if (requireActivity() instanceof BaseMainActivity) { if (dy < 0 && !((BaseMainActivity) requireActivity()).getFloatingVisibility()) ((BaseMainActivity) requireActivity()).manageFloatingButton(true); Loading