aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHermes Junior <ohermesjunior@gmail.com>2020-06-12 14:28:05 +0000
committerOHermesJunior <ohermesjunior@gmail.com>2020-06-16 17:29:07 +0000
commit99418267c44a6d3f3af54c7b24993347a863d5e4 (patch)
tree03dc4a8cd4f8df59dfdec40933c45dcbe69631df
parent4a1bed82d732b54608342805bc7c5ecaf36cc3b2 (diff)
downloadinfinity-for-reddit-99418267c44a6d3f3af54c7b24993347a863d5e4.tar
infinity-for-reddit-99418267c44a6d3f3af54c7b24993347a863d5e4.tar.gz
infinity-for-reddit-99418267c44a6d3f3af54c7b24993347a863d5e4.tar.bz2
infinity-for-reddit-99418267c44a6d3f3af54c7b24993347a863d5e4.tar.lz
infinity-for-reddit-99418267c44a6d3f3af54c7b24993347a863d5e4.tar.xz
infinity-for-reddit-99418267c44a6d3f3af54c7b24993347a863d5e4.tar.zst
infinity-for-reddit-99418267c44a6d3f3af54c7b24993347a863d5e4.zip
Refactor menu setup.
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java260
1 files changed, 71 insertions, 189 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java
index bf01f564..8548b40e 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java
@@ -74,6 +74,7 @@ import ml.docilealligator.infinityforreddit.Event.PostUpdateEventToPostList;
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
import ml.docilealligator.infinityforreddit.FetchComment;
import ml.docilealligator.infinityforreddit.FetchRemovedComment;
+import ml.docilealligator.infinityforreddit.FetchRemovedPost;
import ml.docilealligator.infinityforreddit.Flair;
import ml.docilealligator.infinityforreddit.Infinity;
import ml.docilealligator.infinityforreddit.ParseComment;
@@ -453,63 +454,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
if (mPost == null) {
fetchPostAndCommentsById(getIntent().getStringExtra(EXTRA_POST_ID));
} else {
- if (mMenu != null) {
- MenuItem saveItem = mMenu.findItem(R.id.action_save_view_post_detail_activity);
- MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity);
-
- mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true);
- mMenu.findItem(R.id.action_sort_view_post_detail_activity).setVisible(true);
-
- if (mAccessToken != null) {
- if (mPost.isSaved()) {
- saveItem.setVisible(true);
- saveItem.setIcon(mSavedIcon);
- } else {
- saveItem.setVisible(true);
- saveItem.setIcon(mUnsavedIcon);
- }
-
- if (mPost.isHidden()) {
- hideItem.setVisible(true);
- hideItem.setTitle(R.string.action_unhide_post);
- } else {
- hideItem.setVisible(true);
- hideItem.setTitle(R.string.action_hide_post);
- }
-
- mMenu.findItem(R.id.action_report_view_post_detail_activity).setVisible(true);
- } else {
- saveItem.setVisible(false);
- hideItem.setVisible(false);
- }
-
- if (mPost.getAuthor().equals(mAccountName)) {
- if (mPost.getPostType() == Post.TEXT_TYPE) {
- mMenu.findItem(R.id.action_edit_view_post_detail_activity).setVisible(true);
- }
- mMenu.findItem(R.id.action_delete_view_post_detail_activity).setVisible(true);
-
- MenuItem nsfwItem = mMenu.findItem(R.id.action_nsfw_view_post_detail_activity);
- nsfwItem.setVisible(true);
- if (mPost.isNSFW()) {
- nsfwItem.setTitle(R.string.action_unmark_nsfw);
- } else {
- nsfwItem.setTitle(R.string.action_mark_nsfw);
- }
-
- MenuItem spoilerItem = mMenu.findItem(R.id.action_spoiler_view_post_detail_activity);
- spoilerItem.setVisible(true);
- if (mPost.isSpoiler()) {
- spoilerItem.setTitle(R.string.action_unmark_spoiler);
- } else {
- spoilerItem.setTitle(R.string.action_mark_spoiler);
- }
-
- mMenu.findItem(R.id.action_edit_flair_view_post_detail_activity).setVisible(true);
- }
-
- mMenu.findItem(R.id.action_view_crosspost_parent_view_post_detail_activity).setVisible(mPost.getCrosspostParentId() != null);
- }
+ setupMenu();
mAdapter = new CommentAndPostRecyclerViewAdapter(ViewPostDetailActivity.this,
mCustomThemeWrapper, mRetrofit, mOauthRetrofit, mRedditDataRoomDatabase, mGlide,
@@ -563,6 +508,66 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
fab.setOnClickListener(view -> scrollToNextParentComment());
}
+ private void setupMenu() {
+ if (mMenu != null) {
+ MenuItem saveItem = mMenu.findItem(R.id.action_save_view_post_detail_activity);
+ MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity);
+
+ mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true);
+ mMenu.findItem(R.id.action_sort_view_post_detail_activity).setVisible(true);
+
+ if (mAccessToken != null) {
+ if (mPost.isSaved()) {
+ saveItem.setVisible(true);
+ saveItem.setIcon(mSavedIcon);
+ } else {
+ saveItem.setVisible(true);
+ saveItem.setIcon(mUnsavedIcon);
+ }
+
+ if (mPost.isHidden()) {
+ hideItem.setVisible(true);
+ hideItem.setTitle(R.string.action_unhide_post);
+ } else {
+ hideItem.setVisible(true);
+ hideItem.setTitle(R.string.action_hide_post);
+ }
+
+ mMenu.findItem(R.id.action_report_view_post_detail_activity).setVisible(true);
+ } else {
+ saveItem.setVisible(false);
+ hideItem.setVisible(false);
+ }
+
+ if (mPost.getAuthor().equals(mAccountName)) {
+ if (mPost.getPostType() == Post.TEXT_TYPE) {
+ mMenu.findItem(R.id.action_edit_view_post_detail_activity).setVisible(true);
+ }
+ mMenu.findItem(R.id.action_delete_view_post_detail_activity).setVisible(true);
+
+ MenuItem nsfwItem = mMenu.findItem(R.id.action_nsfw_view_post_detail_activity);
+ nsfwItem.setVisible(true);
+ if (mPost.isNSFW()) {
+ nsfwItem.setTitle(R.string.action_unmark_nsfw);
+ } else {
+ nsfwItem.setTitle(R.string.action_mark_nsfw);
+ }
+
+ MenuItem spoilerItem = mMenu.findItem(R.id.action_spoiler_view_post_detail_activity);
+ spoilerItem.setVisible(true);
+ if (mPost.isSpoiler()) {
+ spoilerItem.setTitle(R.string.action_unmark_spoiler);
+ } else {
+ spoilerItem.setTitle(R.string.action_mark_spoiler);
+ }
+
+ mMenu.findItem(R.id.action_edit_flair_view_post_detail_activity).setVisible(true);
+ }
+
+ mMenu.findItem(R.id.action_view_crosspost_parent_view_post_detail_activity).setVisible(mPost.getCrosspostParentId() != null);
+ }
+ }
+
private Drawable getMenuItemIcon(int drawableId) {
Drawable icon = getDrawable(drawableId);
if (icon != null) {
@@ -606,45 +611,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
public void onParsePostSuccess(Post post) {
mPost = post;
- if (mMenu != null) {
- MenuItem saveItem = mMenu.findItem(R.id.action_save_view_post_detail_activity);
- MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity);
-
- mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true);
- mMenu.findItem(R.id.action_sort_view_post_detail_activity).setVisible(true);
-
- if (mAccessToken != null) {
- if (post.isSaved()) {
- saveItem.setVisible(true);
- saveItem.setIcon(mSavedIcon);
- } else {
- saveItem.setVisible(true);
- saveItem.setIcon(mUnsavedIcon);
- }
-
- if (post.isHidden()) {
- hideItem.setVisible(true);
- hideItem.setTitle(R.string.action_unhide_post);
- } else {
- hideItem.setVisible(true);
- hideItem.setTitle(R.string.action_hide_post);
- }
-
- mMenu.findItem(R.id.action_report_view_post_detail_activity).setVisible(true);
- } else {
- saveItem.setVisible(false);
- hideItem.setVisible(false);
- }
-
- if (mPost.getAuthor().equals(mAccountName)) {
- if (mPost.getPostType() == Post.TEXT_TYPE) {
- mMenu.findItem(R.id.action_edit_view_post_detail_activity).setVisible(true);
- }
- mMenu.findItem(R.id.action_delete_view_post_detail_activity).setVisible(true);
- }
-
- mMenu.findItem(R.id.action_view_crosspost_parent_view_post_detail_activity).setVisible(mPost.getCrosspostParentId() != null);
- }
+ setupMenu();
mAdapter = new CommentAndPostRecyclerViewAdapter(ViewPostDetailActivity.this,
mCustomThemeWrapper, mRetrofit, mOauthRetrofit, mRedditDataRoomDatabase, mGlide,
@@ -914,38 +881,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
mAdapter.updatePost(mPost);
EventBus.getDefault().post(new PostUpdateEventToPostList(mPost, postListPosition));
isRefreshing = false;
- if (mMenu != null) {
- MenuItem saveItem = mMenu.findItem(R.id.action_save_view_post_detail_activity);
- MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity);
-
- mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true);
- mMenu.findItem(R.id.action_sort_view_post_detail_activity).setVisible(true);
-
- if (mAccessToken != null) {
- if (post.isSaved()) {
- saveItem.setVisible(true);
- saveItem.setIcon(mSavedIcon);
- } else {
- saveItem.setVisible(true);
- saveItem.setIcon(mUnsavedIcon);
- }
-
- if (post.isHidden()) {
- hideItem.setVisible(true);
- hideItem.setTitle(R.string.action_unhide_post);
- } else {
- hideItem.setVisible(true);
- hideItem.setTitle(R.string.action_hide_post);
- }
-
- mMenu.findItem(R.id.action_report_view_post_detail_activity).setVisible(true);
- } else {
- saveItem.setVisible(false);
- hideItem.setVisible(false);
- }
-
- mMenu.findItem(R.id.action_view_crosspost_parent_view_post_detail_activity).setVisible(mPost.getCrosspostParentId() != null);
- }
+ setupMenu();
mSwipeRefreshLayout.setRefreshing(false);
}
@@ -1279,61 +1215,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
applyMenuItemTheme(menu);
mMenu = menu;
if (mPost != null) {
- MenuItem saveItem = mMenu.findItem(R.id.action_save_view_post_detail_activity);
- MenuItem hideItem = mMenu.findItem(R.id.action_hide_view_post_detail_activity);
-
- mMenu.findItem(R.id.action_comment_view_post_detail_activity).setVisible(true);
- mMenu.findItem(R.id.action_sort_view_post_detail_activity).setVisible(true);
-
- if (mAccessToken != null) {
- if (mPost.isSaved()) {
- saveItem.setVisible(true);
- saveItem.setIcon(mSavedIcon);
- } else {
- saveItem.setVisible(true);
- saveItem.setIcon(mUnsavedIcon);
- }
-
- if (mPost.isHidden()) {
- hideItem.setVisible(true);
- hideItem.setTitle(R.string.action_unhide_post);
- } else {
- hideItem.setVisible(true);
- hideItem.setTitle(R.string.action_hide_post);
- }
-
- mMenu.findItem(R.id.action_report_view_post_detail_activity).setVisible(true);
- } else {
- saveItem.setVisible(false);
- hideItem.setVisible(false);
- }
-
- if (mPost.getAuthor().equals(mAccountName)) {
- if (mPost.getPostType() == Post.TEXT_TYPE) {
- menu.findItem(R.id.action_edit_view_post_detail_activity).setVisible(true);
- }
- menu.findItem(R.id.action_delete_view_post_detail_activity).setVisible(true);
-
- MenuItem nsfwItem = menu.findItem(R.id.action_nsfw_view_post_detail_activity);
- nsfwItem.setVisible(true);
- if (mPost.isNSFW()) {
- nsfwItem.setTitle(R.string.action_unmark_nsfw);
- } else {
- nsfwItem.setTitle(R.string.action_mark_nsfw);
- }
-
- MenuItem spoilerItem = menu.findItem(R.id.action_spoiler_view_post_detail_activity);
- spoilerItem.setVisible(true);
- if (mPost.isSpoiler()) {
- spoilerItem.setTitle(R.string.action_unmark_spoiler);
- } else {
- spoilerItem.setTitle(R.string.action_mark_spoiler);
- }
-
- menu.findItem(R.id.action_edit_flair_view_post_detail_activity).setVisible(true);
- }
-
- menu.findItem(R.id.action_view_crosspost_parent_view_post_detail_activity).setVisible(mPost.getCrosspostParentId() != null);
+ setupMenu();
}
return true;
}
@@ -1472,12 +1354,12 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
}
return true;
case R.id.action_edit_view_post_detail_activity:
- Intent editPostItent = new Intent(this, EditPostActivity.class);
- editPostItent.putExtra(EditPostActivity.EXTRA_ACCESS_TOKEN, mAccessToken);
- editPostItent.putExtra(EditPostActivity.EXTRA_FULLNAME, mPost.getFullName());
- editPostItent.putExtra(EditPostActivity.EXTRA_TITLE, mPost.getTitle());
- editPostItent.putExtra(EditPostActivity.EXTRA_CONTENT, mPost.getSelfText());
- startActivityForResult(editPostItent, EDIT_POST_REQUEST_CODE);
+ Intent editPostIntent = new Intent(this, EditPostActivity.class);
+ editPostIntent.putExtra(EditPostActivity.EXTRA_ACCESS_TOKEN, mAccessToken);
+ editPostIntent.putExtra(EditPostActivity.EXTRA_FULLNAME, mPost.getFullName());
+ editPostIntent.putExtra(EditPostActivity.EXTRA_TITLE, mPost.getTitle());
+ editPostIntent.putExtra(EditPostActivity.EXTRA_CONTENT, mPost.getSelfText());
+ startActivityForResult(editPostIntent, EDIT_POST_REQUEST_CODE);
return true;
case R.id.action_delete_view_post_detail_activity:
new MaterialAlertDialogBuilder(this, R.style.MaterialAlertDialogTheme)