From 72e721b0d3f6c98411327c328374009b854b0a97 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 26 Mar 2021 10:56:57 -0300 Subject: [PATCH] Don't show snackbar about local blog post again after screen rotation --- .../briar/android/activity/RequestCodes.java | 1 - .../briar/android/blog/BaseViewModel.java | 14 +++++++++++++- .../briar/android/blog/BlogFragment.java | 9 +++------ .../briar/android/blog/FeedFragment.java | 1 + 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/RequestCodes.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/RequestCodes.java index 58ab2ef0c..cb0133788 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/RequestCodes.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/RequestCodes.java @@ -6,7 +6,6 @@ public interface RequestCodes { int REQUEST_INTRODUCTION = 2; int REQUEST_GROUP_INVITE = 3; int REQUEST_SHARE_FORUM = 4; - int REQUEST_WRITE_BLOG_POST = 5; int REQUEST_SHARE_BLOG = 6; int REQUEST_RINGTONE = 7; int REQUEST_PERMISSION_CAMERA_LOCATION = 8; diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BaseViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BaseViewModel.java index 5902f1746..1dd159ea1 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BaseViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BaseViewModel.java @@ -176,10 +176,22 @@ abstract class BaseViewModel extends DbViewModel implements EventListener { return result == null ? null : result.getItems(); } + /** + * Call this after {@link ListUpdate#getPostAddedWasLocal()} was processed. + * This prevents it from getting processed again. + */ + @UiThread + void resetLocalUpdate() { + LiveResult value = blogPosts.getValue(); + if (value == null) return; + ListUpdate result = value.getResultOrNull(); + result.postAddedWasLocal = null; + } + static class ListUpdate { @Nullable - private final Boolean postAddedWasLocal; + private Boolean postAddedWasLocal; private final List items; ListUpdate(@Nullable Boolean postAddedWasLocal, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java index 95adaaad5..451790de0 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java @@ -38,7 +38,6 @@ import static android.widget.Toast.LENGTH_SHORT; import static com.google.android.material.snackbar.Snackbar.LENGTH_LONG; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_SHARE_BLOG; -import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_WRITE_BLOG_POST; @UiThread @MethodsNotNullByDefault @@ -134,7 +133,7 @@ public class BlogFragment extends BaseFragment if (itemId == R.id.action_write_blog_post) { Intent i = new Intent(getActivity(), WriteBlogPostActivity.class); i.putExtra(GROUP_ID, groupId.getBytes()); - startActivityForResult(i, REQUEST_WRITE_BLOG_POST); + startActivity(i); return true; } else if (itemId == R.id.action_blog_share) { Intent i = new Intent(getActivity(), ShareBlogActivity.class); @@ -160,10 +159,7 @@ public class BlogFragment extends BaseFragment public void onActivityResult(int request, int result, @Nullable Intent data) { super.onActivityResult(request, result, data); - - if (request == REQUEST_WRITE_BLOG_POST && result == RESULT_OK) { - displaySnackbar(R.string.blogs_blog_post_created, true); - } else if (request == REQUEST_SHARE_BLOG && result == RESULT_OK) { + if (request == REQUEST_SHARE_BLOG && result == RESULT_OK) { displaySnackbar(R.string.blogs_sharing_snackbar, false); } } @@ -184,6 +180,7 @@ public class BlogFragment extends BaseFragment displaySnackbar(R.string.blogs_blog_post_received, true); } + viewModel.resetLocalUpdate(); list.showData(); }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java index 2f5cf0418..4e55eb795 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java @@ -110,6 +110,7 @@ public class FeedFragment extends BaseFragment } else if (wasLocal != null) { showSnackBar(R.string.blogs_blog_post_received); } + viewModel.resetLocalUpdate(); list.showData(); }); }