diff --git a/app/src/main/java/com/readrops/app/itemslist/MainActivity.java b/app/src/main/java/com/readrops/app/itemslist/MainActivity.java
index 1a6f475b..b89e32c9 100644
--- a/app/src/main/java/com/readrops/app/itemslist/MainActivity.java
+++ b/app/src/main/java/com/readrops/app/itemslist/MainActivity.java
@@ -444,6 +444,23 @@ public class MainActivity extends AppCompatActivity implements SwipeRefreshLayou
} else {
binding.addFeedFab.show();
}
+
+ int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
+ if (firstVisibleItemPosition - 2 >= 0) {
+ Item item = adapter.getItemWithFeed(firstVisibleItemPosition - 2).getItem();
+
+ // Might be better to have a global variable updated when going back from settings
+ if (!item.isRead() && SharedPreferencesManager.readBoolean(SharedPreferencesManager
+ .SharedPrefKey.MARK_ITEMS_READ_ON_SCROLL)) {
+ item.setRead(!item.isRead());
+
+ viewModel.setItemReadState(item)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .doOnError(throwable -> Utils.showSnackbar(binding.mainRoot, throwable.getMessage()))
+ .subscribe();
+ }
+ }
}
});
}
diff --git a/app/src/main/java/com/readrops/app/utils/SharedPreferencesManager.java b/app/src/main/java/com/readrops/app/utils/SharedPreferencesManager.java
index c514e870..6a4cd5c4 100644
--- a/app/src/main/java/com/readrops/app/utils/SharedPreferencesManager.java
+++ b/app/src/main/java/com/readrops/app/utils/SharedPreferencesManager.java
@@ -58,7 +58,8 @@ public final class SharedPreferencesManager {
OPEN_ITEMS_IN("open_items_in", "0"),
DARK_THEME("dark_theme", "false"),
AUTO_SYNCHRO("auto_synchro", "0"),
- HIDE_SHOW_FEEDS("show_hide_feeds", "true");
+ HIDE_SHOW_FEEDS("show_hide_feeds", "true"),
+ MARK_ITEMS_READ_ON_SCROLL("mark_items_read", false);
@NonNull
private String key;
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index a71eca41..287cf971 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -141,5 +141,6 @@
Cacher
Afficher
Afficher ou cacher les flux sans nouveaux items
+ Marquer les items comme lus pendant le défilement
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c10c6b2f..13a8987c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -147,4 +147,5 @@
Hide
Show
Show or hide feeds without new items
+ Mark items read on scroll
\ No newline at end of file
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index da214a81..ab80091f 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -43,6 +43,11 @@
android:key="show_hide_feeds"
android:title="@string/show_hide_feeds" />
+
+