Don't show snackbar about local blog post again after screen rotation

This commit is contained in:
Torsten Grote
2021-03-26 10:56:57 -03:00
parent 6599093611
commit 72e721b0d3
4 changed files with 17 additions and 8 deletions

View File

@@ -6,7 +6,6 @@ public interface RequestCodes {
int REQUEST_INTRODUCTION = 2; int REQUEST_INTRODUCTION = 2;
int REQUEST_GROUP_INVITE = 3; int REQUEST_GROUP_INVITE = 3;
int REQUEST_SHARE_FORUM = 4; int REQUEST_SHARE_FORUM = 4;
int REQUEST_WRITE_BLOG_POST = 5;
int REQUEST_SHARE_BLOG = 6; int REQUEST_SHARE_BLOG = 6;
int REQUEST_RINGTONE = 7; int REQUEST_RINGTONE = 7;
int REQUEST_PERMISSION_CAMERA_LOCATION = 8; int REQUEST_PERMISSION_CAMERA_LOCATION = 8;

View File

@@ -176,10 +176,22 @@ abstract class BaseViewModel extends DbViewModel implements EventListener {
return result == null ? null : result.getItems(); 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<ListUpdate> value = blogPosts.getValue();
if (value == null) return;
ListUpdate result = value.getResultOrNull();
result.postAddedWasLocal = null;
}
static class ListUpdate { static class ListUpdate {
@Nullable @Nullable
private final Boolean postAddedWasLocal; private Boolean postAddedWasLocal;
private final List<BlogPostItem> items; private final List<BlogPostItem> items;
ListUpdate(@Nullable Boolean postAddedWasLocal, ListUpdate(@Nullable Boolean postAddedWasLocal,

View File

@@ -38,7 +38,6 @@ import static android.widget.Toast.LENGTH_SHORT;
import static com.google.android.material.snackbar.Snackbar.LENGTH_LONG; 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.BriarActivity.GROUP_ID;
import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_SHARE_BLOG; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_SHARE_BLOG;
import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_WRITE_BLOG_POST;
@UiThread @UiThread
@MethodsNotNullByDefault @MethodsNotNullByDefault
@@ -134,7 +133,7 @@ public class BlogFragment extends BaseFragment
if (itemId == R.id.action_write_blog_post) { if (itemId == R.id.action_write_blog_post) {
Intent i = new Intent(getActivity(), WriteBlogPostActivity.class); Intent i = new Intent(getActivity(), WriteBlogPostActivity.class);
i.putExtra(GROUP_ID, groupId.getBytes()); i.putExtra(GROUP_ID, groupId.getBytes());
startActivityForResult(i, REQUEST_WRITE_BLOG_POST); startActivity(i);
return true; return true;
} else if (itemId == R.id.action_blog_share) { } else if (itemId == R.id.action_blog_share) {
Intent i = new Intent(getActivity(), ShareBlogActivity.class); Intent i = new Intent(getActivity(), ShareBlogActivity.class);
@@ -160,10 +159,7 @@ public class BlogFragment extends BaseFragment
public void onActivityResult(int request, int result, public void onActivityResult(int request, int result,
@Nullable Intent data) { @Nullable Intent data) {
super.onActivityResult(request, result, data); super.onActivityResult(request, result, data);
if (request == REQUEST_SHARE_BLOG && result == RESULT_OK) {
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) {
displaySnackbar(R.string.blogs_sharing_snackbar, false); displaySnackbar(R.string.blogs_sharing_snackbar, false);
} }
} }
@@ -184,6 +180,7 @@ public class BlogFragment extends BaseFragment
displaySnackbar(R.string.blogs_blog_post_received, displaySnackbar(R.string.blogs_blog_post_received,
true); true);
} }
viewModel.resetLocalUpdate();
list.showData(); list.showData();
}); });
} }

View File

@@ -110,6 +110,7 @@ public class FeedFragment extends BaseFragment
} else if (wasLocal != null) { } else if (wasLocal != null) {
showSnackBar(R.string.blogs_blog_post_received); showSnackBar(R.string.blogs_blog_post_received);
} }
viewModel.resetLocalUpdate();
list.showData(); list.showData();
}); });
} }