mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-01-30 03:24:44 +01:00
Fix hiding read posts automatically.
This commit is contained in:
parent
5dda05d7fa
commit
474b3cf32f
@ -194,7 +194,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
private boolean mMarkPostsAsRead;
|
||||
private boolean mMarkPostsAsReadAfterVoting;
|
||||
private boolean mMarkPostsAsReadOnScroll;
|
||||
private boolean mHideReadPostsAutomatically;
|
||||
private boolean mHidePostType;
|
||||
private boolean mHidePostFlair;
|
||||
private boolean mHideTheNumberOfAwards;
|
||||
@ -268,7 +267,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
mMarkPostsAsRead = postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.MARK_POSTS_AS_READ_BASE, false);
|
||||
mMarkPostsAsReadAfterVoting = postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.MARK_POSTS_AS_READ_AFTER_VOTING_BASE, false);
|
||||
mMarkPostsAsReadOnScroll = postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.MARK_POSTS_AS_READ_ON_SCROLL_BASE, false);
|
||||
mHideReadPostsAutomatically = postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.HIDE_READ_POSTS_AUTOMATICALLY_BASE, false);
|
||||
|
||||
mHidePostType = sharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_POST_TYPE, false);
|
||||
mHidePostFlair = sharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_POST_FLAIR, false);
|
||||
|
@ -49,18 +49,15 @@ import androidx.transition.TransitionManager;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.RequestManager;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@ -1082,31 +1079,31 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
|
||||
accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, subredditName, query, trendingSource,
|
||||
postType, sortType, postFilter, readPosts)).get(PostViewModel.class);
|
||||
mPostFeedScrolledPositionSharedPreferences, mPostHistorySharedPreferences, subredditName,
|
||||
query, trendingSource, postType, sortType, postFilter, readPosts)).get(PostViewModel.class);
|
||||
} else if (postType == PostPagingSource.TYPE_SUBREDDIT) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
|
||||
accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||
postFilter, readPosts)).get(PostViewModel.class);
|
||||
accountName, mSharedPreferences, mPostFeedScrolledPositionSharedPreferences,
|
||||
mPostHistorySharedPreferences, subredditName, postType, sortType, postFilter, readPosts))
|
||||
.get(PostViewModel.class);
|
||||
} else if (postType == PostPagingSource.TYPE_MULTI_REDDIT) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
|
||||
accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, multiRedditPath, postType, sortType,
|
||||
postFilter, readPosts)).get(PostViewModel.class);
|
||||
accountName, mSharedPreferences, mPostFeedScrolledPositionSharedPreferences,
|
||||
mPostHistorySharedPreferences, multiRedditPath, postType, sortType, postFilter, readPosts))
|
||||
.get(PostViewModel.class);
|
||||
} else if (postType == PostPagingSource.TYPE_USER) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
|
||||
accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, username, postType, sortType, postFilter,
|
||||
where, readPosts)).get(PostViewModel.class);
|
||||
accountName, mSharedPreferences, mPostFeedScrolledPositionSharedPreferences,
|
||||
mPostHistorySharedPreferences, username, postType, sortType, postFilter, where, readPosts))
|
||||
.get(PostViewModel.class);
|
||||
} else {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
|
||||
mOauthRetrofit, accessToken,
|
||||
accountName, mSharedPreferences, mPostFeedScrolledPositionSharedPreferences,
|
||||
postType, sortType, postFilter, readPosts)).get(PostViewModel.class);
|
||||
mPostHistorySharedPreferences, postType, sortType, postFilter, readPosts)).get(PostViewModel.class);
|
||||
}
|
||||
|
||||
bindPostViewModel();
|
||||
@ -1116,33 +1113,29 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
//For anonymous user
|
||||
if (postType == PostPagingSource.TYPE_SEARCH) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
|
||||
mRetrofit, null,
|
||||
accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, subredditName, query, trendingSource,
|
||||
mRetrofit, null, accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, null, subredditName, query, trendingSource,
|
||||
postType, sortType, postFilter, readPosts)).get(PostViewModel.class);
|
||||
} else if (postType == PostPagingSource.TYPE_SUBREDDIT) {
|
||||
mPostViewModel = new ViewModelProvider(this, new PostViewModel.Factory(mExecutor,
|
||||
mRetrofit, null,
|
||||
accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||
mRetrofit, null, accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, null, subredditName, postType, sortType,
|
||||
postFilter, readPosts)).get(PostViewModel.class);
|
||||
} else if (postType == PostPagingSource.TYPE_MULTI_REDDIT) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
|
||||
mRetrofit, null,
|
||||
accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, multiRedditPath, postType, sortType, postFilter,
|
||||
readPosts)).get(PostViewModel.class);
|
||||
mRetrofit, null, accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, null, multiRedditPath,
|
||||
postType, sortType, postFilter, readPosts)).get(PostViewModel.class);
|
||||
} else if (postType == PostPagingSource.TYPE_USER) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
|
||||
mRetrofit, null,
|
||||
accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, username, postType, sortType, postFilter,
|
||||
mRetrofit, null, accountName, mSharedPreferences,
|
||||
mPostFeedScrolledPositionSharedPreferences, null, username, postType, sortType, postFilter,
|
||||
where, readPosts)).get(PostViewModel.class);
|
||||
} else {
|
||||
//Anonymous Front Page
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
|
||||
mRetrofit,
|
||||
mSharedPreferences, concatenatedSubredditNames, postType, sortType, postFilter)).get(PostViewModel.class);
|
||||
mRetrofit, mSharedPreferences, concatenatedSubredditNames, postType, sortType, postFilter))
|
||||
.get(PostViewModel.class);
|
||||
}
|
||||
|
||||
bindPostViewModel();
|
||||
|
@ -3,6 +3,7 @@ package ml.docilealligator.infinityforreddit.post;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.util.Pair;
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MediatorLiveData;
|
||||
@ -18,12 +19,12 @@ import androidx.paging.PagingDataTransforms;
|
||||
import androidx.paging.PagingLiveData;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.SortType;
|
||||
import ml.docilealligator.infinityforreddit.postfilter.PostFilter;
|
||||
import ml.docilealligator.infinityforreddit.readpost.ReadPost;
|
||||
import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
public class PostViewModel extends ViewModel {
|
||||
@ -51,7 +52,8 @@ public class PostViewModel extends ViewModel {
|
||||
private SortTypeAndPostFilterLiveData sortTypeAndPostFilterLiveData;
|
||||
|
||||
public PostViewModel(Executor executor, Retrofit retrofit, String accessToken, String accountName,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences, int postType,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
@Nullable SharedPreferences postHistorySharedPreferences, int postType,
|
||||
SortType sortType, PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
this.executor = executor;
|
||||
this.retrofit = retrofit;
|
||||
@ -86,13 +88,14 @@ public class PostViewModel extends ViewModel {
|
||||
postPagingData, executor,
|
||||
post -> !post.isRead() || !currentlyReadPostIdsLiveData.getValue()))), ViewModelKt.getViewModelScope(this));
|
||||
|
||||
currentlyReadPostIdsLiveData.setValue(false);
|
||||
currentlyReadPostIdsLiveData.setValue(postHistorySharedPreferences != null
|
||||
&& postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.HIDE_READ_POSTS_AUTOMATICALLY_BASE, false));
|
||||
}
|
||||
|
||||
public PostViewModel(Executor executor, Retrofit retrofit, String accessToken, String accountName,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
String subredditName, int postType, SortType sortType, PostFilter postFilter,
|
||||
List<ReadPost> readPostList) {
|
||||
@Nullable SharedPreferences postHistorySharedPreferences, String subredditName, int postType,
|
||||
SortType sortType, PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
this.executor = executor;
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
@ -127,12 +130,14 @@ public class PostViewModel extends ViewModel {
|
||||
postPagingData, executor,
|
||||
post -> !post.isRead() || !currentlyReadPostIdsLiveData.getValue()))), ViewModelKt.getViewModelScope(this));
|
||||
|
||||
currentlyReadPostIdsLiveData.setValue(false);
|
||||
currentlyReadPostIdsLiveData.setValue(postHistorySharedPreferences != null
|
||||
&& postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.HIDE_READ_POSTS_AUTOMATICALLY_BASE, false));
|
||||
}
|
||||
|
||||
public PostViewModel(Executor executor, Retrofit retrofit, String accessToken, String accountName,
|
||||
SharedPreferences sharedPreferences,
|
||||
SharedPreferences postFeedScrolledPositionSharedPreferences, String username,
|
||||
SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
@Nullable SharedPreferences postHistorySharedPreferences, String username,
|
||||
int postType, SortType sortType, PostFilter postFilter, String userWhere,
|
||||
List<ReadPost> readPostList) {
|
||||
this.executor = executor;
|
||||
@ -170,13 +175,15 @@ public class PostViewModel extends ViewModel {
|
||||
postPagingData, executor,
|
||||
post -> !post.isRead() || !currentlyReadPostIdsLiveData.getValue()))), ViewModelKt.getViewModelScope(this));
|
||||
|
||||
currentlyReadPostIdsLiveData.setValue(false);
|
||||
currentlyReadPostIdsLiveData.setValue(postHistorySharedPreferences != null
|
||||
&& postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.HIDE_READ_POSTS_AUTOMATICALLY_BASE, false));
|
||||
}
|
||||
|
||||
public PostViewModel(Executor executor, Retrofit retrofit, String accessToken, String accountName,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
String subredditName, String query, String trendingSource, int postType, SortType sortType,
|
||||
PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
@Nullable SharedPreferences postHistorySharedPreferences, String subredditName, String query,
|
||||
String trendingSource, int postType, SortType sortType, PostFilter postFilter,
|
||||
List<ReadPost> readPostList) {
|
||||
this.executor = executor;
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
@ -213,7 +220,8 @@ public class PostViewModel extends ViewModel {
|
||||
postPagingData, executor,
|
||||
post -> !post.isRead() || !currentlyReadPostIdsLiveData.getValue()))), ViewModelKt.getViewModelScope(this));
|
||||
|
||||
currentlyReadPostIdsLiveData.setValue(false);
|
||||
currentlyReadPostIdsLiveData.setValue(postHistorySharedPreferences != null
|
||||
&& postHistorySharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.HIDE_READ_POSTS_AUTOMATICALLY_BASE, false));
|
||||
}
|
||||
|
||||
public LiveData<PagingData<Post>> getPosts() {
|
||||
@ -274,6 +282,7 @@ public class PostViewModel extends ViewModel {
|
||||
private String accountName;
|
||||
private SharedPreferences sharedPreferences;
|
||||
private SharedPreferences postFeedScrolledPositionSharedPreferences;
|
||||
private SharedPreferences postHistorySharedPreferences;
|
||||
private String name;
|
||||
private String query;
|
||||
private String trendingSource;
|
||||
@ -285,13 +294,15 @@ public class PostViewModel extends ViewModel {
|
||||
|
||||
public Factory(Executor executor, Retrofit retrofit, String accessToken, String accountName,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
int postType, SortType sortType, PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
SharedPreferences postHistorySharedPreferences, int postType, SortType sortType,
|
||||
PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
this.executor = executor;
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
this.sharedPreferences = sharedPreferences;
|
||||
this.postFeedScrolledPositionSharedPreferences = postFeedScrolledPositionSharedPreferences;
|
||||
this.postHistorySharedPreferences = postHistorySharedPreferences;
|
||||
this.postType = postType;
|
||||
this.sortType = sortType;
|
||||
this.postFilter = postFilter;
|
||||
@ -300,13 +311,15 @@ public class PostViewModel extends ViewModel {
|
||||
|
||||
public Factory(Executor executor, Retrofit retrofit, String accessToken, String accountName,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
String name, int postType, SortType sortType, PostFilter postFilter,
|
||||
List<ReadPost> readPostList) {this.executor = executor;
|
||||
SharedPreferences postHistorySharedPreferences, String name, int postType, SortType sortType,
|
||||
PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
this.executor = executor;
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
this.sharedPreferences = sharedPreferences;
|
||||
this.postFeedScrolledPositionSharedPreferences = postFeedScrolledPositionSharedPreferences;
|
||||
this.postHistorySharedPreferences = postHistorySharedPreferences;
|
||||
this.name = name;
|
||||
this.postType = postType;
|
||||
this.sortType = sortType;
|
||||
@ -317,14 +330,15 @@ public class PostViewModel extends ViewModel {
|
||||
//User posts
|
||||
public Factory(Executor executor, Retrofit retrofit, String accessToken, String accountName,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
String username, int postType, SortType sortType, PostFilter postFilter, String where,
|
||||
List<ReadPost> readPostList) {
|
||||
SharedPreferences postHistorySharedPreferences, String username, int postType,
|
||||
SortType sortType, PostFilter postFilter, String where, List<ReadPost> readPostList) {
|
||||
this.executor = executor;
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
this.sharedPreferences = sharedPreferences;
|
||||
this.postFeedScrolledPositionSharedPreferences = postFeedScrolledPositionSharedPreferences;
|
||||
this.postHistorySharedPreferences = postHistorySharedPreferences;
|
||||
this.name = username;
|
||||
this.postType = postType;
|
||||
this.sortType = sortType;
|
||||
@ -335,14 +349,15 @@ public class PostViewModel extends ViewModel {
|
||||
|
||||
public Factory(Executor executor, Retrofit retrofit, String accessToken, String accountName,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
String name, String query, String trendingSource, int postType, SortType sortType,
|
||||
PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
SharedPreferences postHistorySharedPreferences, String name, String query, String trendingSource,
|
||||
int postType, SortType sortType, PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
this.executor = executor;
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
this.sharedPreferences = sharedPreferences;
|
||||
this.postFeedScrolledPositionSharedPreferences = postFeedScrolledPositionSharedPreferences;
|
||||
this.postHistorySharedPreferences = postHistorySharedPreferences;
|
||||
this.name = name;
|
||||
this.query = query;
|
||||
this.trendingSource = trendingSource;
|
||||
@ -369,23 +384,24 @@ public class PostViewModel extends ViewModel {
|
||||
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
|
||||
if (postType == PostPagingSource.TYPE_FRONT_PAGE) {
|
||||
return (T) new PostViewModel(executor, retrofit, accessToken, accountName, sharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, postType, sortType, postFilter, readPostList);
|
||||
postFeedScrolledPositionSharedPreferences, postHistorySharedPreferences, postType,
|
||||
sortType, postFilter, readPostList);
|
||||
} else if (postType == PostPagingSource.TYPE_SEARCH) {
|
||||
return (T) new PostViewModel(executor, retrofit, accessToken, accountName, sharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, name, query, trendingSource, postType, sortType,
|
||||
postFilter, readPostList);
|
||||
postFeedScrolledPositionSharedPreferences, postHistorySharedPreferences, name, query,
|
||||
trendingSource, postType, sortType, postFilter, readPostList);
|
||||
} else if (postType == PostPagingSource.TYPE_SUBREDDIT || postType == PostPagingSource.TYPE_MULTI_REDDIT) {
|
||||
return (T) new PostViewModel(executor, retrofit, accessToken, accountName, sharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, name, postType, sortType,
|
||||
postFilter, readPostList);
|
||||
postFeedScrolledPositionSharedPreferences, postHistorySharedPreferences, name,
|
||||
postType, sortType, postFilter, readPostList);
|
||||
} else if (postType == PostPagingSource.TYPE_ANONYMOUS_FRONT_PAGE) {
|
||||
return (T) new PostViewModel(executor, retrofit, null, null, sharedPreferences,
|
||||
null, name, postType, sortType,
|
||||
null, null, name, postType, sortType,
|
||||
postFilter, null);
|
||||
} else {
|
||||
return (T) new PostViewModel(executor, retrofit, accessToken, accountName, sharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, name, postType, sortType,
|
||||
postFilter, userWhere, readPostList);
|
||||
postFeedScrolledPositionSharedPreferences, postHistorySharedPreferences, name,
|
||||
postType, sortType, postFilter, userWhere, readPostList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user