mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-28 11:58:23 +01:00
Fix posts not marked as read in ViewPostDetailActivity if swipe between posts is enabled.
This commit is contained in:
parent
cc9952525b
commit
5f4ecbbe88
@ -314,14 +314,6 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
|
||||
if (savedInstanceState == null) {
|
||||
viewPager2.setCurrentItem(getIntent().getIntExtra(EXTRA_POST_LIST_POSITION, 0), false);
|
||||
}
|
||||
if (mSharedPreferences.getBoolean(mAccountName + SharedPreferencesUtils.MARK_POSTS_AS_READ_BASE, false)) {
|
||||
viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
//EventBus.getDefault().post(new (getClass().getName()));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
searchPanelMaterialCardView.setOnClickListener(null);
|
||||
|
||||
|
@ -18,6 +18,7 @@ import android.os.Bundle;
|
||||
import android.os.CountDownTimer;
|
||||
import android.os.Handler;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.view.HapticFeedbackConstants;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
@ -1578,6 +1579,9 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
post.setSpoiler(event.post.isSpoiler());
|
||||
post.setFlair(event.post.getFlair());
|
||||
post.setSaved(event.post.isSaved());
|
||||
if (event.post.isRead()) {
|
||||
post.markAsRead(true);
|
||||
}
|
||||
mAdapter.notifyItemChanged(event.positionInList);
|
||||
}
|
||||
}
|
||||
|
@ -106,6 +106,7 @@ import ml.docilealligator.infinityforreddit.post.FetchRemovedPost;
|
||||
import ml.docilealligator.infinityforreddit.post.HidePost;
|
||||
import ml.docilealligator.infinityforreddit.post.ParsePost;
|
||||
import ml.docilealligator.infinityforreddit.post.Post;
|
||||
import ml.docilealligator.infinityforreddit.readpost.InsertReadPost;
|
||||
import ml.docilealligator.infinityforreddit.subreddit.FetchSubredditData;
|
||||
import ml.docilealligator.infinityforreddit.subreddit.SubredditData;
|
||||
import ml.docilealligator.infinityforreddit.utils.APIUtils;
|
||||
@ -170,6 +171,9 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
@Named("post_details")
|
||||
SharedPreferences mPostDetailsSharedPreferences;
|
||||
@Inject
|
||||
@Named("post_history")
|
||||
SharedPreferences mPostHistorySharedPreferences;
|
||||
@Inject
|
||||
CustomThemeWrapper mCustomThemeWrapper;
|
||||
@Inject
|
||||
ExoCreator mExoCreator;
|
||||
@ -219,6 +223,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
private boolean mSwipeUpToHideFab;
|
||||
private boolean mExpandChildren;
|
||||
private boolean mSeparatePostAndComments = false;
|
||||
private boolean mMarkPostsAsRead;
|
||||
private int mWindowWidth;
|
||||
private ConcatAdapter mConcatAdapter;
|
||||
private PostDetailRecyclerViewAdapter mPostAdapter;
|
||||
@ -292,6 +297,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
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);
|
||||
mMarkPostsAsRead = mPostHistorySharedPreferences.getBoolean(mAccountName + SharedPreferencesUtils.MARK_POSTS_AS_READ_BASE, false);
|
||||
if (savedInstanceState == null) {
|
||||
mRespectSubredditRecommendedSortType = mSharedPreferences.getBoolean(SharedPreferencesUtils.RESPECT_SUBREDDIT_RECOMMENDED_COMMENT_SORT_TYPE, false);
|
||||
viewPostDetailFragmentId = System.currentTimeMillis();
|
||||
@ -1087,12 +1093,21 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
}
|
||||
}
|
||||
|
||||
private void tryMarkingPostAsRead() {
|
||||
if (mMarkPostsAsRead && !mPost.isRead()) {
|
||||
mPost.markAsRead(true);
|
||||
InsertReadPost.insertReadPost(mRedditDataRoomDatabase, mExecutor, mAccountName, mPost.getId());
|
||||
EventBus.getDefault().post(new PostUpdateEventToPostList(mPost, postListPosition));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (mRecyclerView != null) {
|
||||
mRecyclerView.onWindowVisibilityChanged(View.VISIBLE);
|
||||
}
|
||||
tryMarkingPostAsRead();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1173,6 +1188,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
@Override
|
||||
public void onParsePostSuccess(Post post) {
|
||||
mPost = post;
|
||||
tryMarkingPostAsRead();
|
||||
|
||||
setupMenu();
|
||||
|
||||
@ -1758,6 +1774,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
@Override
|
||||
public void fetchSuccess(Post post) {
|
||||
mPost = post;
|
||||
tryMarkingPostAsRead();
|
||||
if (mPostAdapter != null) {
|
||||
mPostAdapter.updatePost(post);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user