Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
71b0493
Mark posts as read on scroll
sttanner Mar 22, 2025
69991cb
Remove duplicate layoutManager declaration
sttanner Mar 22, 2025
1a28ab4
Cleanup trailing space
sttanner Mar 22, 2025
67b51b3
Remove markReadOnScroll variable
sttanner Mar 22, 2025
c0a8b97
Fix typo in PrefsUtility.pref_mark_read_on_scroll()
sttanner Mar 22, 2025
c026546
Refactor for readability
sttanner Mar 23, 2025
a22105a
Whitespace cleanup
sttanner Mar 23, 2025
c080948
More closely match the style of existing code
sttanner Mar 23, 2025
6a7564e
Prepare for rebase against v1.25 by removing updates to string.xml
sttanner Nov 13, 2025
811dd82
Mark posts as read on scroll
sttanner Mar 22, 2025
a3b3c6f
Remove duplicate layoutManager declaration
sttanner Mar 22, 2025
cef9ddd
Cleanup trailing space
sttanner Mar 22, 2025
71a5104
Remove markReadOnScroll variable
sttanner Mar 22, 2025
781fb78
Fix typo in PrefsUtility.pref_mark_read_on_scroll()
sttanner Mar 22, 2025
8ac8b03
Refactor for readability
sttanner Mar 23, 2025
b22b661
Whitespace cleanup
sttanner Mar 23, 2025
bcc93b1
More closely match the style of existing code
sttanner Mar 23, 2025
b75d8ec
Rebase against v1.25 and reapply updates to strings.xml
sttanner Nov 14, 2025
678d7ea
Merge branch 'mark-read-on-scroll' of https://github.com/sttanner/Red…
sttanner Nov 14, 2025
27a81a3
Merge remote-tracking branch 'upstream/master' into mark-read-on-scroll
sttanner Dec 11, 2025
d7688b6
Update strings.xml
sttanner Dec 11, 2025
e9fd04c
Merge branch 'QuantumBadger:master' into mark-read-on-scroll
sttanner Apr 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ public static boolean isRefreshRequired(final Context context, final String key)
|| key.equals(context.getString(R.string.pref_behaviour_fling_post_right_key))
|| key.equals(context.getString(R.string.pref_behaviour_nsfw_key))
|| key.equals(context.getString(R.string.pref_behaviour_postcount_key))
|| key.equals(context.getString(R.string.pref_behaviour_mark_read_on_scroll_key))
|| key.equals(context.getString(R.string.pref_behaviour_comment_min_key))
|| key.equals(context.getString(R.string.pref_behaviour_pinned_subredditsort_key))
|| key.equals(context.getString(
Expand Down Expand Up @@ -1784,6 +1785,12 @@ public static boolean pref_behaviour_keep_screen_awake() {
false);
}

public static boolean pref_mark_read_on_scroll() {
return getBoolean(
R.string.pref_behaviour_mark_read_on_scroll_key,
false);
}

@Nullable
public static String pref_reddit_client_id_override() {
final String value = getString(R.string.pref_reddit_client_id_override_key, null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,6 +507,43 @@ private void onLoadMoreItemsCheck() {

General.checkThisIsUIThread();

if(PrefsUtility.pref_mark_read_on_scroll()) {

final LinearLayoutManager layoutManager
= (LinearLayoutManager)mRecyclerView.getLayoutManager();

if(layoutManager != null) {

final int firstVisibleItemPosition
= layoutManager.findFirstVisibleItemPosition();

final int firstCompletelyVisibleItemPosition
= layoutManager.findFirstCompletelyVisibleItemPosition();

if(firstVisibleItemPosition >= 1
&& firstCompletelyVisibleItemPosition != 0) {

final RedditPostView view = (RedditPostView) layoutManager.getChildAt(0);

final int position =
(view != null) ? layoutManager.getPosition(view) : RecyclerView.NO_POSITION;

final RedditPreparedPost post
= (position == firstVisibleItemPosition) ? view.getPost() : null;

// Mark the first visible post read if it is unread
if((post != null) && !post.isRead()) {
new Thread() {
@Override
public void run() {
post.markAsRead(getActivity());
}
}.start();
}
}
}
}

if(mReadyToDownloadMore && mAfter != null && !mAfter.equals(mLastAfter)) {

final LinearLayoutManager layoutManager
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -667,4 +667,8 @@ private void showPrefPrompt() {
.apply();
});
}

@Nullable public RedditPreparedPost getPost() {
return mPost;
}
}
6 changes: 5 additions & 1 deletion src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1924,4 +1924,8 @@

<!-- 2025-12-07 -->
<string name="no_messages_yet">No messages yet.</string>
</resources>

<!-- 2025-12-10 -->
<string name="pref_behaviour_mark_read_on_scroll_key" translatable="false">pref_behaviour_mark_read_on_scroll</string>
<string name="pref_behaviour_mark_read_on_scroll_title">Mark posts as read on scroll</string>
</resources>
4 changes: 4 additions & 0 deletions src/main/res/xml/prefs_behaviour.xml
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,10 @@
android:entryValues="@array/pref_behaviour_postcount_items_return"
android:defaultValue="ALL"/>

<CheckBoxPreference android:title="@string/pref_behaviour_mark_read_on_scroll_title"
android:key="@string/pref_behaviour_mark_read_on_scroll_key"
android:defaultValue="false" />

</PreferenceCategory>

<PreferenceCategory android:title="@string/pref_behaviour_comments_header">
Expand Down
Loading