diff options
author | Hermes Junior <hermesjunior2001@hotmail.com> | 2020-03-29 03:20:52 +0000 |
---|---|---|
committer | Hermes Junior <hermesjunior2001@hotmail.com> | 2020-03-29 03:20:52 +0000 |
commit | d0faebbab94fff13a657311b286419619200663e (patch) | |
tree | 24eb2c2270bf7f73fb172e0159898a6b32010f13 /app/src/main/java/ml/docilealligator | |
parent | ea27af4080ff6056dd260501cc91b8b2ac4f716f (diff) | |
download | infinity-for-reddit-d0faebbab94fff13a657311b286419619200663e.tar infinity-for-reddit-d0faebbab94fff13a657311b286419619200663e.tar.gz infinity-for-reddit-d0faebbab94fff13a657311b286419619200663e.tar.bz2 infinity-for-reddit-d0faebbab94fff13a657311b286419619200663e.tar.lz infinity-for-reddit-d0faebbab94fff13a657311b286419619200663e.tar.xz infinity-for-reddit-d0faebbab94fff13a657311b286419619200663e.tar.zst infinity-for-reddit-d0faebbab94fff13a657311b286419619200663e.zip |
Add hidden comment toolbar feature.
Diffstat (limited to 'app/src/main/java/ml/docilealligator')
3 files changed, 55 insertions, 7 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 152b71ad..160a5b42 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPostDetailActivity.java @@ -177,6 +177,8 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS private boolean mLockFab; private boolean mSwipeUpToHideFab; private boolean mExpandChildren; + private boolean mCommentToolbarHidden; + private boolean mCommentToolbarHideOnClick; private boolean mShowCommentDivider; private boolean mShowAbsoluteNumberOfVotes; private LinearLayoutManager mLinearLayoutManager; @@ -243,6 +245,8 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS mLockFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.LOCK_JUMP_TO_NEXT_TOP_LEVEL_COMMENT_BUTTON, false); mSwipeUpToHideFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.SWIPE_UP_TO_HIDE_JUMP_TO_NEXT_TOP_LEVEL_COMMENT_BUTTON, false); mExpandChildren = !mSharedPreferences.getBoolean(SharedPreferencesUtils.SHOW_TOP_LEVEL_COMMENTS_FIRST, false); + mCommentToolbarHidden = mSharedPreferences.getBoolean(SharedPreferencesUtils.COMMENT_TOOLBAR_HIDDEN, false); + mCommentToolbarHideOnClick= mSharedPreferences.getBoolean(SharedPreferencesUtils.COMMENT_TOOLBAR_HIDE_ON_CLICK, true); mShowCommentDivider = mSharedPreferences.getBoolean(SharedPreferencesUtils.SHOW_COMMENT_DIVIDER, false); mShowAbsoluteNumberOfVotes = mSharedPreferences.getBoolean(SharedPreferencesUtils.SHOW_ABSOLUTE_NUMBER_OF_VOTES, true); @@ -500,8 +504,8 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS mAdapter = new CommentAndPostRecyclerViewAdapter(ViewPostDetailActivity.this, mCustomThemeWrapper, mRetrofit, mOauthRetrofit, mRedditDataRoomDatabase, mGlide, mAccessToken, mAccountName, mPost, mLocale, mSingleCommentId, isSingleCommentThreadMode, - mNeedBlurNsfw, mNeedBlurSpoiler, mVoteButtonsOnTheRight, mShowElapsedTime, - mExpandChildren, mShowCommentDivider, mShowAbsoluteNumberOfVotes, + mNeedBlurNsfw, mNeedBlurSpoiler, mVoteButtonsOnTheRight, mShowElapsedTime, mExpandChildren, + mCommentToolbarHidden, mCommentToolbarHideOnClick, mShowCommentDivider,mShowAbsoluteNumberOfVotes, new CommentAndPostRecyclerViewAdapter.CommentRecyclerViewAdapterCallback() { @Override public void updatePost(Post post) { @@ -630,10 +634,9 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS mAdapter = new CommentAndPostRecyclerViewAdapter(ViewPostDetailActivity.this, mCustomThemeWrapper, mRetrofit, mOauthRetrofit, mRedditDataRoomDatabase, mGlide, - mAccessToken, mAccountName, mPost, mLocale, mSingleCommentId, - isSingleCommentThreadMode, mNeedBlurNsfw, mNeedBlurSpoiler, - mVoteButtonsOnTheRight, mShowElapsedTime, mExpandChildren, mShowCommentDivider, - mShowAbsoluteNumberOfVotes, + mAccessToken, mAccountName, mPost, mLocale, mSingleCommentId, isSingleCommentThreadMode, + mNeedBlurNsfw, mNeedBlurSpoiler, mVoteButtonsOnTheRight, mShowElapsedTime, mExpandChildren, + mCommentToolbarHidden, mCommentToolbarHideOnClick, mShowCommentDivider, mShowAbsoluteNumberOfVotes, new CommentAndPostRecyclerViewAdapter.CommentRecyclerViewAdapterCallback() { @Override public void updatePost(Post post) { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/CommentAndPostRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/CommentAndPostRecyclerViewAdapter.java index 8a67a44f..44609d19 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/CommentAndPostRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/CommentAndPostRecyclerViewAdapter.java @@ -17,6 +17,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; @@ -125,6 +126,8 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy private boolean mVoteButtonsOnTheRight; private boolean mShowElapsedTime; private boolean mExpandChildren; + private boolean mCommentToolbarHidden; + private boolean mCommentToolbarHideOnClick; private boolean mShowCommentDivider; private boolean mShowAbsoluteNumberOfVotes; private CommentRecyclerViewAdapterCallback mCommentRecyclerViewAdapterCallback; @@ -185,7 +188,8 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy String accessToken, String accountName, Post post, Locale locale, String singleCommentId, boolean isSingleCommentThreadMode, boolean needBlurNSFW, boolean needBlurSpoiler, boolean voteButtonsOnTheRight, - boolean showElapsedTime, boolean expandChildren, boolean showCommentDivider, + boolean showElapsedTime, boolean expandChildren, boolean commentToolbarHidden, + boolean commentToolbarHideOnClick, boolean showCommentDivider, boolean showAbsoluteNumberOfVotes, CommentRecyclerViewAdapterCallback commentRecyclerViewAdapterCallback) { mActivity = activity; @@ -277,6 +281,8 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy mVoteButtonsOnTheRight = voteButtonsOnTheRight; mShowElapsedTime = showElapsedTime; mExpandChildren = expandChildren; + mCommentToolbarHidden = commentToolbarHidden; + mCommentToolbarHideOnClick = commentToolbarHideOnClick; mShowCommentDivider = showCommentDivider; mShowAbsoluteNumberOfVotes = showAbsoluteNumberOfVotes; mCommentRecyclerViewAdapterCallback = commentRecyclerViewAdapterCallback; @@ -846,9 +852,19 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy ((CommentViewHolder) holder).commentTimeTextView.setText(comment.getCommentTime()); } + if (mCommentToolbarHidden) { + ((CommentViewHolder) holder).bottomConstraintLayout.setVisibility(View.GONE); + ((CommentViewHolder) holder).topScoreTextView.setVisibility(View.VISIBLE); + } else { + ((CommentViewHolder) holder).bottomConstraintLayout.setVisibility(View.VISIBLE); + ((CommentViewHolder) holder).topScoreTextView.setVisibility(View.GONE); + } + mCommentMarkwon.setMarkdown(((CommentViewHolder) holder).commentMarkdownView, comment.getCommentMarkdown()); ((CommentViewHolder) holder).scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); + ((CommentViewHolder) holder).topScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + comment.getScore() + comment.getVoteType()) + " pts"); ((CommentViewHolder) holder).itemView.setPadding(comment.getDepth() * 8, 0, 0, 0); if (comment.getDepth() > 0) { @@ -887,6 +903,21 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy ((CommentViewHolder) holder).verticalBlock.setLayoutParams(params); } + if (mCommentToolbarHideOnClick) { + View.OnClickListener hideToolbarOnClickListener = view -> { + if (((CommentViewHolder) holder).bottomConstraintLayout.getVisibility() == View.GONE){ + ((CommentViewHolder) holder).bottomConstraintLayout.setVisibility(View.VISIBLE); + ((CommentViewHolder) holder).topScoreTextView.setVisibility(View.GONE); + } else { + ((CommentViewHolder) holder).bottomConstraintLayout.setVisibility(View.GONE); + ((CommentViewHolder) holder).topScoreTextView.setVisibility(View.VISIBLE); + } + }; + ((CommentViewHolder) holder).linearLayout.setOnClickListener(hideToolbarOnClickListener); + ((CommentViewHolder) holder).commentMarkdownView.setOnClickListener(hideToolbarOnClickListener); + ((CommentViewHolder) holder).commentTimeTextView.setOnClickListener(hideToolbarOnClickListener); + } + ((CommentViewHolder) holder).moreButton.setOnClickListener(view -> { Bundle bundle = new Bundle(); if (!mPost.isArchived() && !mPost.isLocked() && comment.getAuthor().equals(mAccountName)) { @@ -1002,6 +1033,8 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy ((CommentViewHolder) holder).scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); + ((CommentViewHolder) holder).topScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + comment.getScore() + comment.getVoteType()) + " pts"); VoteThing.voteThing(mActivity, mOauthRetrofit, mAccessToken, new VoteThing.VoteThingListener() { @Override @@ -1019,6 +1052,8 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy ((CommentViewHolder) holder).downvoteButton.setColorFilter(mCommentIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN); ((CommentViewHolder) holder).scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); + ((CommentViewHolder) holder).topScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + comment.getScore() + comment.getVoteType()) + " pts"); } @Override @@ -1059,6 +1094,8 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy ((CommentViewHolder) holder).scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); + ((CommentViewHolder) holder).topScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + comment.getScore() + comment.getVoteType()) + " pts"); VoteThing.voteThing(mActivity, mOauthRetrofit, mAccessToken, new VoteThing.VoteThingListener() { @Override @@ -1076,6 +1113,8 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy ((CommentViewHolder) holder).upvoteButton.setColorFilter(mCommentIconAndInfoColor, android.graphics.PorterDuff.Mode.SRC_IN); ((CommentViewHolder) holder).scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, comment.getScore() + comment.getVoteType())); + ((CommentViewHolder) holder).topScoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, + comment.getScore() + comment.getVoteType()) + " pts"); } @Override @@ -2059,6 +2098,8 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy } class CommentViewHolder extends RecyclerView.ViewHolder { + @BindView(R.id.linear_layout_item_comment) + LinearLayout linearLayout; @BindView(R.id.author_text_view_item_post_comment) TextView authorTextView; @BindView(R.id.author_flair_text_view_item_post_comment) @@ -2067,6 +2108,8 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy ImageView authorTypeImageView; @BindView(R.id.comment_time_text_view_item_post_comment) TextView commentTimeTextView; + @BindView(R.id.top_score_text_view_item_post_comment) + TextView topScoreTextView; @BindView(R.id.comment_markdown_view_item_post_comment) TextView commentMarkdownView; @BindView(R.id.bottom_constraint_layout_item_post_comment) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Utils/SharedPreferencesUtils.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Utils/SharedPreferencesUtils.java index c10b83fc..3675a26c 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Utils/SharedPreferencesUtils.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Utils/SharedPreferencesUtils.java @@ -75,6 +75,8 @@ public class SharedPreferencesUtils { public static final String SHOW_TOP_LEVEL_COMMENTS_FIRST = "show_top_level_comments_first"; public static final String CONFIRM_TO_EXIT = "confirm_to_exit"; public static final String LOCK_BOTTOM_APP_BAR = "lock_bottom_app_bar"; + public static final String COMMENT_TOOLBAR_HIDDEN = "comment_toolbar_hidden"; + public static final String COMMENT_TOOLBAR_HIDE_ON_CLICK = "comment_toolbar_hide_on_click"; public static final String SHOW_COMMENT_DIVIDER = "show_comment_divider"; public static final String SHOW_ABSOLUTE_NUMBER_OF_VOTES = "show_absolute_number_of_votes"; public static final String CUSTOMIZE_LIGHT_THEME = "customize_light_theme"; |