Merge branch '2043-blog-scrolling' into 'master'

Automatically scroll to our own blog posts

Closes #2043

See merge request briar/briar!1462
This commit is contained in:
akwizgran
2021-05-19 09:35:10 +00:00

View File

@@ -106,9 +106,11 @@ public class FeedFragment extends BaseFragment
adapter.submitList(update.getItems(), () -> { adapter.submitList(update.getItems(), () -> {
Boolean wasLocal = update.getPostAddedWasLocal(); Boolean wasLocal = update.getPostAddedWasLocal();
if (wasLocal != null && wasLocal) { if (wasLocal != null && wasLocal) {
showSnackBar(R.string.blogs_blog_post_created); showSnackBar(R.string.blogs_blog_post_created, true);
// automatically scroll to our new post
list.smoothScrollToPosition(0);
} else if (wasLocal != null) { } else if (wasLocal != null) {
showSnackBar(R.string.blogs_blog_post_received); showSnackBar(R.string.blogs_blog_post_received, false);
} }
viewModel.resetLocalUpdate(); viewModel.resetLocalUpdate();
list.showData(); list.showData();
@@ -170,12 +172,12 @@ public class FeedFragment extends BaseFragment
return i; return i;
} }
private void showSnackBar(int stringRes) { private void showSnackBar(int stringRes, boolean isLocal) {
int firstVisible = int firstVisible =
layoutManager.findFirstCompletelyVisibleItemPosition(); layoutManager.findFirstCompletelyVisibleItemPosition();
int lastVisible = layoutManager.findLastCompletelyVisibleItemPosition(); int lastVisible = layoutManager.findLastCompletelyVisibleItemPosition();
int count = adapter.getItemCount(); int count = adapter.getItemCount();
boolean scroll = count > (lastVisible - firstVisible + 1); boolean scroll = !isLocal && count > (lastVisible - firstVisible + 1);
BriarSnackbarBuilder sb = new BriarSnackbarBuilder(); BriarSnackbarBuilder sb = new BriarSnackbarBuilder();
if (scroll) { if (scroll) {