mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-29 20:37:12 +01:00
Continue adding support for post filter.
This commit is contained in:
parent
fbc47e6226
commit
12aa4a1040
@ -38,4 +38,7 @@ public interface FragmentCommunicator {
|
||||
|
||||
default void hideReadPosts() {
|
||||
}
|
||||
|
||||
default void changePostFilter(PostFilter postFilter) {
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,12 @@ package ml.docilealligator.infinityforreddit;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.util.Log;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.post.Post;
|
||||
|
||||
public class PostFilter implements Parcelable {
|
||||
public int maxVote = -1;
|
||||
@ -13,16 +19,115 @@ public class PostFilter implements Parcelable {
|
||||
public boolean allowNSFW;
|
||||
public boolean onlyNSFW;
|
||||
public boolean onlySpoiler;
|
||||
public String postTitleRegex;
|
||||
public String postTitleExcludesRegex;
|
||||
public String postTitleExcludesStrings;
|
||||
public String excludesSubreddits;
|
||||
public String excludesUsers;
|
||||
public String containsFlairs;
|
||||
public String excludesFlairs;
|
||||
public boolean containsTextType;
|
||||
public boolean containsLinkType;
|
||||
public boolean containsImageType;
|
||||
public boolean containsVideoType;
|
||||
public boolean containsTextType = true;
|
||||
public boolean containsLinkType = true;
|
||||
public boolean containsImageType = true;
|
||||
public boolean containsVideoType = true;
|
||||
public boolean containsGalleryType = true;
|
||||
|
||||
public static boolean isPostAllowed(Post post, PostFilter postFilter) {
|
||||
if (postFilter == null || post == null) {
|
||||
Log.i("asdasfd", "s " + post.getTitle());
|
||||
return true;
|
||||
}
|
||||
if (post.isNSFW() && !postFilter.allowNSFW) {
|
||||
return false;
|
||||
}
|
||||
if (postFilter.maxVote > 0 && post.getVoteType() + post.getScore() > postFilter.maxVote) {
|
||||
return false;
|
||||
}
|
||||
if (postFilter.minVote > 0 && post.getVoteType() + post.getScore() < postFilter.minVote) {
|
||||
return false;
|
||||
}
|
||||
if (postFilter.maxComments > 0 && post.getNComments() > postFilter.maxComments) {
|
||||
return false;
|
||||
}
|
||||
if (postFilter.minComments > 0 && post.getNComments() < postFilter.minComments) {
|
||||
return false;
|
||||
}
|
||||
if (postFilter.maxAwards > 0 && post.getNAwards() > postFilter.maxAwards) {
|
||||
return false;
|
||||
}
|
||||
if (postFilter.minAwards > 0 && post.getNAwards() < postFilter.minAwards) {
|
||||
return false;
|
||||
}
|
||||
if (postFilter.onlyNSFW && !post.isNSFW()) {
|
||||
return false;
|
||||
}
|
||||
if (postFilter.onlySpoiler && !post.isSpoiler()) {
|
||||
return false;
|
||||
}
|
||||
if (!postFilter.containsTextType && post.getPostType() == Post.TEXT_TYPE) {
|
||||
return false;
|
||||
}
|
||||
if (!postFilter.containsLinkType && (post.getPostType() == Post.LINK_TYPE || post.getPostType() == Post.NO_PREVIEW_LINK_TYPE)) {
|
||||
return false;
|
||||
}
|
||||
if (!postFilter.containsImageType && post.getPostType() == Post.IMAGE_TYPE) {
|
||||
return false;
|
||||
}
|
||||
if (!postFilter.containsVideoType && post.getPostType() == Post.VIDEO_TYPE) {
|
||||
return false;
|
||||
}
|
||||
if (!postFilter.containsGalleryType && post.getPostType() == Post.GALLERY_TYPE) {
|
||||
return false;
|
||||
}
|
||||
if (postFilter.postTitleExcludesRegex != null && !postFilter.postTitleExcludesRegex.equals("")) {
|
||||
Pattern spoilerPattern = Pattern.compile(postFilter.postTitleExcludesRegex);
|
||||
Matcher matcher = spoilerPattern.matcher(postFilter.postTitleExcludesRegex);
|
||||
if (matcher.find()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (postFilter.postTitleExcludesStrings != null && !postFilter.postTitleExcludesStrings.equals("")) {
|
||||
String[] titles = postFilter.postTitleExcludesStrings.split(",", 0);
|
||||
for (String t : titles) {
|
||||
if (post.getTitle().contains(t)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (postFilter.excludesSubreddits != null && !postFilter.excludesSubreddits.equals("")) {
|
||||
String[] subreddits = postFilter.excludesSubreddits.split(",", 0);
|
||||
for (String s : subreddits) {
|
||||
if (post.getSubredditName().equals(s)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (postFilter.excludesUsers != null && !postFilter.excludesUsers.equals("")) {
|
||||
String[] users = postFilter.excludesUsers.split(",", 0);
|
||||
for (String u : users) {
|
||||
if (post.getAuthor().equals(u)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (postFilter.excludesFlairs != null && !postFilter.excludesFlairs.equals("")) {
|
||||
String[] flairs = postFilter.excludesFlairs.split(",", 0);
|
||||
for (String f : flairs) {
|
||||
if (post.getFlair().equals(f)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (postFilter.containsFlairs != null && !postFilter.containsFlairs.equals("")) {
|
||||
String[] flairs = postFilter.containsFlairs.split(",", 0);
|
||||
for (String f : flairs) {
|
||||
if (post.getFlair().equals(f)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public PostFilter() {
|
||||
|
||||
@ -38,7 +143,7 @@ public class PostFilter implements Parcelable {
|
||||
allowNSFW = in.readByte() != 0;
|
||||
onlyNSFW = in.readByte() != 0;
|
||||
onlySpoiler = in.readByte() != 0;
|
||||
postTitleRegex = in.readString();
|
||||
postTitleExcludesRegex = in.readString();
|
||||
postTitleExcludesStrings = in.readString();
|
||||
excludesSubreddits = in.readString();
|
||||
excludesUsers = in.readString();
|
||||
@ -48,6 +153,7 @@ public class PostFilter implements Parcelable {
|
||||
containsLinkType = in.readByte() != 0;
|
||||
containsImageType = in.readByte() != 0;
|
||||
containsVideoType = in.readByte() != 0;
|
||||
containsGalleryType = in.readByte() != 0;
|
||||
}
|
||||
|
||||
public static final Creator<PostFilter> CREATOR = new Creator<PostFilter>() {
|
||||
@ -78,7 +184,7 @@ public class PostFilter implements Parcelable {
|
||||
parcel.writeByte((byte) (allowNSFW ? 1 : 0));
|
||||
parcel.writeByte((byte) (onlyNSFW ? 1 : 0));
|
||||
parcel.writeByte((byte) (onlySpoiler ? 1 : 0));
|
||||
parcel.writeString(postTitleRegex);
|
||||
parcel.writeString(postTitleExcludesRegex);
|
||||
parcel.writeString(postTitleExcludesStrings);
|
||||
parcel.writeString(excludesSubreddits);
|
||||
parcel.writeString(excludesUsers);
|
||||
@ -88,5 +194,6 @@ public class PostFilter implements Parcelable {
|
||||
parcel.writeByte((byte) (containsLinkType ? 1 : 0));
|
||||
parcel.writeByte((byte) (containsImageType ? 1 : 0));
|
||||
parcel.writeByte((byte) (containsVideoType ? 1 : 0));
|
||||
parcel.writeByte((byte) (containsGalleryType ? 1 : 0));
|
||||
}
|
||||
}
|
||||
|
@ -198,7 +198,6 @@ public class AccountPostsActivity extends BaseActivity implements SortTypeSelect
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_USER);
|
||||
bundle.putString(PostFragment.EXTRA_USER_NAME, mAccountName);
|
||||
bundle.putString(PostFragment.EXTRA_USER_WHERE, mUserWhere);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
bundle.putBoolean(PostFragment.EXTRA_DISABLE_READ_POSTS, true);
|
||||
|
@ -358,7 +358,6 @@ public class AccountSavedThingActivity extends BaseActivity implements ActivityT
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_USER);
|
||||
bundle.putString(PostFragment.EXTRA_USER_NAME, mAccountName);
|
||||
bundle.putString(PostFragment.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_SAVED);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
bundle.putBoolean(PostFragment.EXTRA_DISABLE_READ_POSTS, true);
|
||||
|
@ -70,6 +70,12 @@ public class CustomizePostFilterActivity extends BaseActivity {
|
||||
TextView postTypeVideoTextView;
|
||||
@BindView(R.id.post_type_video_check_box_customize_post_filter_activity)
|
||||
MaterialCheckBox postTypeVideoCheckBox;
|
||||
@BindView(R.id.post_type_gallery_linear_layout_customize_post_filter_activity)
|
||||
LinearLayout postTypeGalleryLinearLayout;
|
||||
@BindView(R.id.post_type_gallery_text_view_customize_post_filter_activity)
|
||||
TextView postTypeGalleryTextView;
|
||||
@BindView(R.id.post_type_gallery_check_box_customize_post_filter_activity)
|
||||
MaterialCheckBox postTypeGalleryCheckBox;
|
||||
@BindView(R.id.title_excludes_strings_text_input_layout_customize_post_filter_activity)
|
||||
TextInputLayout titleExcludesStringsTextInputLayout;
|
||||
@BindView(R.id.title_excludes_strings_text_input_edit_text_customize_post_filter_activity)
|
||||
@ -187,6 +193,7 @@ public class CustomizePostFilterActivity extends BaseActivity {
|
||||
postTypeLinkTextView.setTextColor(primaryTextColor);
|
||||
postTypeImageTextView.setTextColor(primaryTextColor);
|
||||
postTypeVideoTextView.setTextColor(primaryTextColor);
|
||||
postTypeGalleryTextView.setTextColor(primaryTextColor);
|
||||
titleExcludesStringsTextInputLayout.setBoxStrokeColor(primaryTextColor);
|
||||
titleExcludesStringsTextInputLayout.setDefaultHintTextColor(ColorStateList.valueOf(primaryTextColor));
|
||||
titleExcludesStringsTextInputEditText.setTextColor(primaryTextColor);
|
||||
@ -239,13 +246,13 @@ public class CustomizePostFilterActivity extends BaseActivity {
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.action_save_customize_post_filter_activity) {
|
||||
PostFilter postFilter = new PostFilter();
|
||||
postFilter.maxVote = maxVoteTextInputEditText.getText() == null ? -1 : Integer.parseInt(maxVoteTextInputEditText.getText().toString());
|
||||
postFilter.minVote = minVoteTextInputEditText.getText() == null ? -1 : Integer.parseInt(minVoteTextInputEditText.getText().toString());
|
||||
postFilter.maxComments = maxCommentsTextInputEditText.getText() == null ? -1 : Integer.parseInt(maxCommentsTextInputEditText.getText().toString());
|
||||
postFilter.minComments = minCommentsTextInputEditText.getText() == null ? -1 : Integer.parseInt(minCommentsTextInputEditText.getText().toString());
|
||||
postFilter.maxAwards = maxAwardsTextInputEditText.getText() == null ? -1 : Integer.parseInt(maxAwardsTextInputEditText.getText().toString());
|
||||
postFilter.minAwards = minAwardsTextInputEditText.getText() == null ? -1 : Integer.parseInt(minAwardsTextInputEditText.getText().toString());
|
||||
postFilter.postTitleRegex = titleExcludesRegexTextInputEditText.getText().toString();
|
||||
postFilter.maxVote = maxVoteTextInputEditText.getText() == null || maxVoteTextInputEditText.getText().toString().equals("") ? -1 : Integer.parseInt(maxVoteTextInputEditText.getText().toString());
|
||||
postFilter.minVote = minVoteTextInputEditText.getText() == null || minVoteTextInputEditText.getText().toString().equals("") ? -1 : Integer.parseInt(minVoteTextInputEditText.getText().toString());
|
||||
postFilter.maxComments = maxCommentsTextInputEditText.getText() == null || maxCommentsTextInputEditText.getText().toString().equals("") ? -1 : Integer.parseInt(maxCommentsTextInputEditText.getText().toString());
|
||||
postFilter.minComments = minCommentsTextInputEditText.getText() == null || minCommentsTextInputEditText.getText().toString().equals("") ? -1 : Integer.parseInt(minCommentsTextInputEditText.getText().toString());
|
||||
postFilter.maxAwards = maxAwardsTextInputEditText.getText() == null || maxAwardsTextInputEditText.getText().toString().equals("") ? -1 : Integer.parseInt(maxAwardsTextInputEditText.getText().toString());
|
||||
postFilter.minAwards = minAwardsTextInputEditText.getText() == null || minAwardsTextInputEditText.getText().toString().equals("") ? -1 : Integer.parseInt(minAwardsTextInputEditText.getText().toString());
|
||||
postFilter.postTitleExcludesRegex = titleExcludesRegexTextInputEditText.getText().toString();
|
||||
postFilter.postTitleExcludesStrings = titleExcludesStringsTextInputEditText.getText().toString();
|
||||
postFilter.excludesSubreddits = excludesSubredditsTextInputEditText.getText().toString();
|
||||
postFilter.excludesUsers = excludesUsersTextInputEditText.getText().toString();
|
||||
@ -255,6 +262,7 @@ public class CustomizePostFilterActivity extends BaseActivity {
|
||||
postFilter.containsLinkType = postTypeLinkCheckBox.isChecked();
|
||||
postFilter.containsImageType = postTypeImageCheckBox.isChecked();
|
||||
postFilter.containsVideoType = postTypeVideoCheckBox.isChecked();
|
||||
postFilter.containsGalleryType = postTypeGalleryCheckBox.isChecked();
|
||||
|
||||
Intent returnIntent = new Intent();
|
||||
returnIntent.putExtra(RETURN_EXTRA_POST_FILTER, postFilter);
|
||||
|
@ -12,6 +12,7 @@ import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
|
||||
@ -32,6 +33,7 @@ import ml.docilealligator.infinityforreddit.ActivityToolbarInterface;
|
||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||
import ml.docilealligator.infinityforreddit.Infinity;
|
||||
import ml.docilealligator.infinityforreddit.MarkPostAsReadInterface;
|
||||
import ml.docilealligator.infinityforreddit.PostFilter;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
import ml.docilealligator.infinityforreddit.SortType;
|
||||
@ -66,6 +68,7 @@ public class FilteredThingActivity extends BaseActivity implements SortTypeSelec
|
||||
private static final String ACCESS_TOKEN_STATE = "ATS";
|
||||
private static final String ACCOUNT_NAME_STATE = "ANS";
|
||||
private static final String FRAGMENT_OUT_STATE = "FOS";
|
||||
private static final int CUSTOMIZE_POST_FILTER_ACTIVITY_REQUEST_CODE = 1000;
|
||||
|
||||
@BindView(R.id.coordinator_layout_filtered_thing_activity)
|
||||
CoordinatorLayout coordinatorLayout;
|
||||
@ -159,6 +162,47 @@ public class FilteredThingActivity extends BaseActivity implements SortTypeSelec
|
||||
name = getIntent().getStringExtra(EXTRA_NAME);
|
||||
postType = getIntent().getIntExtra(EXTRA_POST_TYPE, PostDataSource.TYPE_FRONT_PAGE);
|
||||
int filter = getIntent().getIntExtra(EXTRA_FILTER, Post.TEXT_TYPE);
|
||||
switch (filter) {
|
||||
case Post.NSFW_TYPE:
|
||||
toolbar.setSubtitle(R.string.nsfw);
|
||||
break;
|
||||
case Post.TEXT_TYPE:
|
||||
toolbar.setSubtitle(R.string.text);
|
||||
break;
|
||||
case Post.LINK_TYPE:
|
||||
case Post.NO_PREVIEW_LINK_TYPE:
|
||||
toolbar.setSubtitle(R.string.link);
|
||||
break;
|
||||
case Post.IMAGE_TYPE:
|
||||
toolbar.setSubtitle(R.string.image);
|
||||
break;
|
||||
case Post.VIDEO_TYPE:
|
||||
toolbar.setSubtitle(R.string.video);
|
||||
break;
|
||||
case Post.GIF_TYPE:
|
||||
toolbar.setSubtitle(R.string.gif);
|
||||
break;
|
||||
case Post.GALLERY_TYPE:
|
||||
toolbar.setSubtitle(R.string.gallery);
|
||||
}
|
||||
PostFilter postFilter = new PostFilter();
|
||||
switch (filter) {
|
||||
case Post.TEXT_TYPE:
|
||||
postFilter.containsTextType = true;
|
||||
break;
|
||||
case Post.LINK_TYPE:
|
||||
postFilter.containsLinkType = true;
|
||||
break;
|
||||
case Post.IMAGE_TYPE:
|
||||
postFilter.containsImageType = true;
|
||||
break;
|
||||
case Post.VIDEO_TYPE:
|
||||
postFilter.containsVideoType = true;
|
||||
break;
|
||||
case Post.GALLERY_TYPE:
|
||||
postFilter.containsGalleryType = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (postType == PostDataSource.TYPE_USER) {
|
||||
userWhere = getIntent().getStringExtra(EXTRA_USER_WHERE);
|
||||
@ -174,14 +218,14 @@ public class FilteredThingActivity extends BaseActivity implements SortTypeSelec
|
||||
mAccountName = savedInstanceState.getString(ACCOUNT_NAME_STATE);
|
||||
|
||||
if (!mNullAccessToken && mAccessToken == null) {
|
||||
getCurrentAccountAndBindView(filter);
|
||||
getCurrentAccountAndBindView(postFilter);
|
||||
} else {
|
||||
mFragment = (PostFragment) getSupportFragmentManager().getFragment(savedInstanceState, FRAGMENT_OUT_STATE);
|
||||
getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout_filtered_posts_activity, mFragment).commit();
|
||||
bindView(filter, false);
|
||||
bindView(postFilter, false);
|
||||
}
|
||||
} else {
|
||||
getCurrentAccountAndBindView(filter);
|
||||
getCurrentAccountAndBindView(postFilter);
|
||||
}
|
||||
|
||||
postLayoutBottomSheetFragment = new PostLayoutBottomSheetFragment();
|
||||
@ -213,7 +257,7 @@ public class FilteredThingActivity extends BaseActivity implements SortTypeSelec
|
||||
applyFABTheme(fab);
|
||||
}
|
||||
|
||||
private void getCurrentAccountAndBindView(int filter) {
|
||||
private void getCurrentAccountAndBindView(PostFilter postFilter) {
|
||||
new GetCurrentAccountAsyncTask(mRedditDataRoomDatabase.accountDao(), account -> {
|
||||
if (account == null) {
|
||||
mNullAccessToken = true;
|
||||
@ -221,11 +265,11 @@ public class FilteredThingActivity extends BaseActivity implements SortTypeSelec
|
||||
mAccessToken = account.getAccessToken();
|
||||
mAccountName = account.getUsername();
|
||||
}
|
||||
bindView(filter, true);
|
||||
bindView(postFilter, true);
|
||||
}).execute();
|
||||
}
|
||||
|
||||
private void bindView(int filter, boolean initializeFragment) {
|
||||
private void bindView(PostFilter postFilter, boolean initializeFragment) {
|
||||
switch (postType) {
|
||||
case PostDataSource.TYPE_FRONT_PAGE:
|
||||
getSupportActionBar().setTitle(name);
|
||||
@ -285,35 +329,11 @@ public class FilteredThingActivity extends BaseActivity implements SortTypeSelec
|
||||
|
||||
sortTimeBottomSheetFragment = new SortTimeBottomSheetFragment();
|
||||
|
||||
switch (filter) {
|
||||
case Post.NSFW_TYPE:
|
||||
toolbar.setSubtitle(R.string.nsfw);
|
||||
break;
|
||||
case Post.TEXT_TYPE:
|
||||
toolbar.setSubtitle(R.string.text);
|
||||
break;
|
||||
case Post.LINK_TYPE:
|
||||
case Post.NO_PREVIEW_LINK_TYPE:
|
||||
toolbar.setSubtitle(R.string.link);
|
||||
break;
|
||||
case Post.IMAGE_TYPE:
|
||||
toolbar.setSubtitle(R.string.image);
|
||||
break;
|
||||
case Post.VIDEO_TYPE:
|
||||
toolbar.setSubtitle(R.string.video);
|
||||
break;
|
||||
case Post.GIF_TYPE:
|
||||
toolbar.setSubtitle(R.string.gif);
|
||||
break;
|
||||
case Post.GALLERY_TYPE:
|
||||
toolbar.setSubtitle(R.string.gallery);
|
||||
}
|
||||
|
||||
if (initializeFragment) {
|
||||
mFragment = new PostFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, postType);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, filter);
|
||||
bundle.putParcelable(PostFragment.EXTRA_FILTER, postFilter);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
if (postType == PostDataSource.TYPE_USER) {
|
||||
@ -331,7 +351,7 @@ public class FilteredThingActivity extends BaseActivity implements SortTypeSelec
|
||||
|
||||
fab.setOnClickListener(view -> {
|
||||
Intent intent = new Intent(this, CustomizePostFilterActivity.class);
|
||||
startActivity(intent);
|
||||
startActivityForResult(intent, CUSTOMIZE_POST_FILTER_ACTIVITY_REQUEST_CODE);
|
||||
});
|
||||
|
||||
if (mAccessToken != null) {
|
||||
@ -426,6 +446,16 @@ public class FilteredThingActivity extends BaseActivity implements SortTypeSelec
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == CUSTOMIZE_POST_FILTER_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {
|
||||
if (mFragment != null) {
|
||||
((PostFragment) mFragment).changePostFilter(data.getParcelableExtra(CustomizePostFilterActivity.RETURN_EXTRA_POST_FILTER));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(@NonNull Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
|
@ -1317,7 +1317,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_SUBREDDIT);
|
||||
bundle.putString(PostFragment.EXTRA_NAME, "popular");
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
fragment.setArguments(bundle);
|
||||
@ -1327,7 +1326,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_SUBREDDIT);
|
||||
bundle.putString(PostFragment.EXTRA_NAME, "all");
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
fragment.setArguments(bundle);
|
||||
@ -1379,7 +1377,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
PostFragment fragment = new PostFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_FRONT_PAGE);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
fragment.setArguments(bundle);
|
||||
@ -1389,7 +1386,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_SUBREDDIT);
|
||||
bundle.putString(PostFragment.EXTRA_NAME, "all");
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
fragment.setArguments(bundle);
|
||||
@ -1399,7 +1395,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_SUBREDDIT);
|
||||
bundle.putString(PostFragment.EXTRA_NAME, name);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
fragment.setArguments(bundle);
|
||||
@ -1409,7 +1404,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(PostFragment.EXTRA_NAME, name);
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_MULTI_REDDIT);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
fragment.setArguments(bundle);
|
||||
@ -1420,7 +1414,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_USER);
|
||||
bundle.putString(PostFragment.EXTRA_USER_NAME, name);
|
||||
bundle.putString(PostFragment.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_SUBMITTED);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
fragment.setArguments(bundle);
|
||||
@ -1430,7 +1423,6 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_SUBREDDIT);
|
||||
bundle.putString(PostFragment.EXTRA_NAME, "popular");
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
fragment.setArguments(bundle);
|
||||
|
@ -395,7 +395,6 @@ public class SearchResultActivity extends BaseActivity implements SortTypeSelect
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_SEARCH);
|
||||
bundle.putString(PostFragment.EXTRA_NAME, mSubredditName);
|
||||
bundle.putString(PostFragment.EXTRA_QUERY, mQuery);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
mFragment.setArguments(bundle);
|
||||
|
@ -200,7 +200,6 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(PostFragment.EXTRA_NAME, multiPath);
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_MULTI_REDDIT);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
mFragment.setArguments(bundle);
|
||||
|
@ -1230,7 +1230,6 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(PostFragment.EXTRA_NAME, subredditName);
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_SUBREDDIT);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
fragment.setArguments(bundle);
|
||||
|
@ -1306,7 +1306,6 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
|
||||
bundle.putInt(PostFragment.EXTRA_POST_TYPE, PostDataSource.TYPE_USER);
|
||||
bundle.putString(PostFragment.EXTRA_USER_NAME, username);
|
||||
bundle.putString(PostFragment.EXTRA_USER_WHERE, PostDataSource.USER_WHERE_SUBMITTED);
|
||||
bundle.putInt(PostFragment.EXTRA_FILTER, PostFragment.EXTRA_NO_FILTER);
|
||||
bundle.putString(PostFragment.EXTRA_ACCESS_TOKEN, mAccessToken);
|
||||
bundle.putString(PostFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||
fragment.setArguments(bundle);
|
||||
|
@ -412,7 +412,7 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
||||
String subredditName = subredditNamePrefixed.substring(2);
|
||||
String authorPrefixed = "u/" + post.getAuthor();
|
||||
String flair = post.getFlair();
|
||||
int nAwards = post.getnAwards();
|
||||
int nAwards = post.getNAwards();
|
||||
|
||||
((PostBaseViewHolder) holder).subredditTextView.setText(subredditNamePrefixed);
|
||||
((PostBaseViewHolder) holder).userTextView.setText(authorPrefixed);
|
||||
@ -736,7 +736,7 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
||||
boolean nsfw = post.isNSFW();
|
||||
boolean spoiler = post.isSpoiler();
|
||||
String flair = post.getFlair();
|
||||
int nAwards = post.getnAwards();
|
||||
int nAwards = post.getNAwards();
|
||||
boolean isArchived = post.isArchived();
|
||||
|
||||
if (mDisplaySubredditName) {
|
||||
|
@ -129,7 +129,6 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
public static final String EXTRA_QUERY = "EQ";
|
||||
public static final String EXTRA_POST_TYPE = "EPT";
|
||||
public static final String EXTRA_FILTER = "EF";
|
||||
public static final int EXTRA_NO_FILTER = -2;
|
||||
public static final String EXTRA_ACCESS_TOKEN = "EAT";
|
||||
public static final String EXTRA_ACCOUNT_NAME = "EAN";
|
||||
public static final String EXTRA_DISABLE_READ_POSTS = "EDRP";
|
||||
@ -444,9 +443,11 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
postType = getArguments().getInt(EXTRA_POST_TYPE);
|
||||
|
||||
//TODO: Initialize PostFilter
|
||||
postFilter = getArguments().getParcelable(EXTRA_FILTER);
|
||||
if (postFilter == null) {
|
||||
postFilter = new PostFilter();
|
||||
}
|
||||
|
||||
int filter = getArguments().getInt(EXTRA_FILTER);
|
||||
String accessToken = getArguments().getString(EXTRA_ACCESS_TOKEN);
|
||||
accountName = getArguments().getString(EXTRA_ACCOUNT_NAME);
|
||||
postFilter.allowNSFW = mNsfwAndSpoilerSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.NSFW_BASE, false);
|
||||
@ -692,7 +693,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
if (accountName != null && !accountName.equals("")) {
|
||||
if (readPosts == null) {
|
||||
if (getArguments().getBoolean(EXTRA_DISABLE_READ_POSTS, false)) {
|
||||
initializeAndBindPostViewModel(accessToken, locale, filter);
|
||||
initializeAndBindPostViewModel(accessToken, locale);
|
||||
} else {
|
||||
FetchReadPosts.fetchReadPosts(mRedditDataRoomDatabase, accountName,
|
||||
postType == PostDataSource.TYPE_SUBREDDIT && subredditName != null && (subredditName.equals("all") || subredditName.equals("popular")),
|
||||
@ -700,15 +701,15 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
||||
this.readPosts = readPosts;
|
||||
this.subredditFilterList = subredditFilters;
|
||||
initializeAndBindPostViewModel(accessToken, locale, filter);
|
||||
initializeAndBindPostViewModel(accessToken, locale);
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
initializeAndBindPostViewModel(accessToken, locale, filter);
|
||||
initializeAndBindPostViewModel(accessToken, locale);
|
||||
}
|
||||
} else {
|
||||
initializeAndBindPostViewModelForAnonymous(accessToken, locale, filter);
|
||||
initializeAndBindPostViewModelForAnonymous(accessToken, locale);
|
||||
}
|
||||
|
||||
vibrateWhenActionTriggered = mSharedPreferences.getBoolean(SharedPreferencesUtils.VIBRATE_WHEN_ACTION_TRIGGERED, true);
|
||||
@ -820,57 +821,57 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
return rootView;
|
||||
}
|
||||
|
||||
private void initializeAndBindPostViewModel(String accessToken, Locale locale, int filter) {
|
||||
private void initializeAndBindPostViewModel(String accessToken, Locale locale) {
|
||||
if (postType == PostDataSource.TYPE_SEARCH) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, subredditName, query, postType, sortType,
|
||||
postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||
postFilter, readPosts)).get(PostViewModel.class);
|
||||
} else if (postType == PostDataSource.TYPE_SUBREDDIT) {
|
||||
if (subredditName.equals("all") || subredditName.equals("popular")) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||
postFilter, filter, readPosts, subredditFilterList)).get(PostViewModel.class);
|
||||
postFilter, readPosts, subredditFilterList)).get(PostViewModel.class);
|
||||
} else {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||
postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||
postFilter, readPosts)).get(PostViewModel.class);
|
||||
}
|
||||
} else if (postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, multiRedditPath, postType, sortType,
|
||||
postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||
postFilter, readPosts)).get(PostViewModel.class);
|
||||
} else if (postType == PostDataSource.TYPE_USER) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, username, postType, sortType, postFilter,
|
||||
where, filter, readPosts)).get(PostViewModel.class);
|
||||
where, readPosts)).get(PostViewModel.class);
|
||||
} else {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences, postFeedScrolledPositionSharedPreferences,
|
||||
postType, sortType, postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||
postType, sortType, postFilter, readPosts)).get(PostViewModel.class);
|
||||
}
|
||||
|
||||
bindPostViewModel();
|
||||
}
|
||||
|
||||
private void initializeAndBindPostViewModelForAnonymous(String accessToken, Locale locale, int filter) {
|
||||
private void initializeAndBindPostViewModelForAnonymous(String accessToken, Locale locale) {
|
||||
//For anonymous user
|
||||
if (postType == PostDataSource.TYPE_SEARCH) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, subredditName, query, postType, sortType,
|
||||
postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||
postFilter, readPosts)).get(PostViewModel.class);
|
||||
} else if (postType == PostDataSource.TYPE_SUBREDDIT) {
|
||||
if (subredditName.equals("all") || subredditName.equals("popular")) {
|
||||
if (subredditFilterList != null) {
|
||||
mPostViewModel = new ViewModelProvider(this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||
postFilter, filter, readPosts, subredditFilterList)).get(PostViewModel.class);
|
||||
postFilter, readPosts, subredditFilterList)).get(PostViewModel.class);
|
||||
} else {
|
||||
FetchSubredditFilters.fetchSubredditFilters(mRedditDataRoomDatabase, subredditFilters -> {
|
||||
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
||||
@ -878,7 +879,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, subredditName, postType,
|
||||
sortType, postFilter, filter, readPosts, subredditFilterList)).get(PostViewModel.class);
|
||||
sortType, postFilter, readPosts, subredditFilterList)).get(PostViewModel.class);
|
||||
|
||||
bindPostViewModel();
|
||||
}
|
||||
@ -888,22 +889,22 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType, postFilter,
|
||||
filter, readPosts)).get(PostViewModel.class);
|
||||
readPosts)).get(PostViewModel.class);
|
||||
}
|
||||
} else if (postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, multiRedditPath, postType, sortType, postFilter,
|
||||
filter, readPosts)).get(PostViewModel.class);
|
||||
readPosts)).get(PostViewModel.class);
|
||||
} else if (postType == PostDataSource.TYPE_USER) {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, username, postType, sortType, postFilter,
|
||||
where, filter, readPosts)).get(PostViewModel.class);
|
||||
where, readPosts)).get(PostViewModel.class);
|
||||
} else {
|
||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mOauthRetrofit, accessToken,
|
||||
accountName, locale, mSharedPreferences, postFeedScrolledPositionSharedPreferences,
|
||||
postType, sortType, postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||
postType, sortType, postFilter, readPosts)).get(PostViewModel.class);
|
||||
}
|
||||
|
||||
if (mPostViewModel != null) {
|
||||
@ -1202,6 +1203,13 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changePostFilter(PostFilter postFilter) {
|
||||
if (mPostViewModel != null) {
|
||||
mPostViewModel.changePostFilter(postFilter);
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onPostUpdateEvent(PostUpdateEventToPostList event) {
|
||||
PagedList<Post> posts = mAdapter.getCurrentList();
|
||||
|
@ -14,7 +14,6 @@ import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.PostFilter;
|
||||
import ml.docilealligator.infinityforreddit.fragments.PostFragment;
|
||||
import ml.docilealligator.infinityforreddit.readpost.ReadPost;
|
||||
import ml.docilealligator.infinityforreddit.subredditfilter.SubredditFilter;
|
||||
import ml.docilealligator.infinityforreddit.utils.JSONUtils;
|
||||
@ -25,14 +24,14 @@ import ml.docilealligator.infinityforreddit.utils.Utils;
|
||||
*/
|
||||
|
||||
public class ParsePost {
|
||||
public static void parsePosts(String response, int nPosts, int filter, PostFilter postFilter, List<ReadPost> readPostList,
|
||||
public static void parsePosts(String response, int nPosts, PostFilter postFilter, List<ReadPost> readPostList,
|
||||
ParsePostsListingListener parsePostsListingListener) {
|
||||
new ParsePostDataAsyncTask(response, nPosts, filter, postFilter, readPostList, parsePostsListingListener).execute();
|
||||
new ParsePostDataAsyncTask(response, nPosts, postFilter, readPostList, parsePostsListingListener).execute();
|
||||
}
|
||||
|
||||
public static void parsePosts(String response, int nPosts, int filter, PostFilter postFilter, List<ReadPost> readPostList,
|
||||
public static void parsePosts(String response, int nPosts, PostFilter postFilter, List<ReadPost> readPostList,
|
||||
List<SubredditFilter> subredditFilterList, ParsePostsListingListener parsePostsListingListener) {
|
||||
new ParsePostDataAsyncTask(response, nPosts, filter, postFilter, readPostList, subredditFilterList, parsePostsListingListener).execute();
|
||||
new ParsePostDataAsyncTask(response, nPosts, postFilter, readPostList, subredditFilterList, parsePostsListingListener).execute();
|
||||
}
|
||||
|
||||
public static void parsePost(String response, ParsePostListener parsePostListener) {
|
||||
@ -493,7 +492,6 @@ public class ParsePost {
|
||||
private static class ParsePostDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||
private JSONArray allData;
|
||||
private int nPosts;
|
||||
private int filter;
|
||||
private PostFilter postFilter;
|
||||
private List<ReadPost> readPostList;
|
||||
private List<SubredditFilter> subredditFilterList;
|
||||
@ -504,7 +502,7 @@ public class ParsePost {
|
||||
private String lastItem;
|
||||
private boolean parseFailed;
|
||||
|
||||
ParsePostDataAsyncTask(String response, int nPosts, int filter, PostFilter postFilter, List<ReadPost> readPostList,
|
||||
ParsePostDataAsyncTask(String response, int nPosts, PostFilter postFilter, List<ReadPost> readPostList,
|
||||
ParsePostsListingListener parsePostsListingListener) {
|
||||
this.parsePostsListingListener = parsePostsListingListener;
|
||||
try {
|
||||
@ -512,7 +510,6 @@ public class ParsePost {
|
||||
allData = jsonResponse.getJSONObject(JSONUtils.DATA_KEY).getJSONArray(JSONUtils.CHILDREN_KEY);
|
||||
lastItem = jsonResponse.getJSONObject(JSONUtils.DATA_KEY).getString(JSONUtils.AFTER_KEY);
|
||||
this.nPosts = nPosts;
|
||||
this.filter = filter;
|
||||
this.postFilter = postFilter;
|
||||
this.readPostList = readPostList;
|
||||
newPosts = new LinkedHashSet<>();
|
||||
@ -523,9 +520,9 @@ public class ParsePost {
|
||||
}
|
||||
}
|
||||
|
||||
ParsePostDataAsyncTask(String response, int nPosts, int filter, PostFilter postFilter, List<ReadPost> readPostList,
|
||||
ParsePostDataAsyncTask(String response, int nPosts, PostFilter postFilter, List<ReadPost> readPostList,
|
||||
List<SubredditFilter> subredditFilterList, ParsePostsListingListener parsePostsListingListener) {
|
||||
this(response, nPosts, filter, postFilter, readPostList, parsePostsListingListener);
|
||||
this(response, nPosts, postFilter, readPostList, parsePostsListingListener);
|
||||
this.subredditFilterList = subredditFilterList;
|
||||
}
|
||||
|
||||
@ -592,16 +589,8 @@ public class ParsePost {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (availablePost && !(!postFilter.allowNSFW && post.isNSFW())) {
|
||||
if (filter == PostFragment.EXTRA_NO_FILTER) {
|
||||
if (availablePost && PostFilter.isPostAllowed(post, postFilter)) {
|
||||
newPosts.add(post);
|
||||
} else if (filter == post.getPostType()) {
|
||||
newPosts.add(post);
|
||||
} else if (filter == Post.LINK_TYPE && post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
|
||||
newPosts.add(post);
|
||||
} else if (filter == Post.NSFW_TYPE && post.isNSFW()) {
|
||||
newPosts.add(post);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
|
@ -359,7 +359,7 @@ public class Post implements Parcelable {
|
||||
awards += newAwardsHTML;
|
||||
}
|
||||
|
||||
public int getnAwards() {
|
||||
public int getNAwards() {
|
||||
return nAwards;
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,6 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
private int postType;
|
||||
private SortType sortType;
|
||||
private PostFilter postFilter;
|
||||
private int filter;
|
||||
private List<ReadPost> readPostList;
|
||||
private List<SubredditFilter> subredditFilterList;
|
||||
private String userWhere;
|
||||
@ -66,7 +65,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences,
|
||||
SharedPreferences postFeedScrolledPositionSharedPreferences, int postType,
|
||||
SortType sortType, PostFilter postFilter, int filter, List<ReadPost> readPostList) {
|
||||
SortType sortType, PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
@ -79,14 +78,13 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
this.postType = postType;
|
||||
this.sortType = sortType == null ? new SortType(SortType.Type.BEST) : sortType;
|
||||
this.postFilter = postFilter;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
postLinkedHashSet = new LinkedHashSet<>();
|
||||
}
|
||||
|
||||
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
String path, int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||
String path, int postType, SortType sortType, PostFilter postFilter,
|
||||
List<ReadPost> readPostList, List<SubredditFilter> subredditFilterList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
@ -121,7 +119,6 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
this.sortType = sortType;
|
||||
}
|
||||
this.postFilter = postFilter;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
this.subredditFilterList = subredditFilterList;
|
||||
postLinkedHashSet = new LinkedHashSet<>();
|
||||
@ -130,7 +127,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
String subredditOrUserName, int postType, SortType sortType, PostFilter postFilter,
|
||||
String where, int filter, List<ReadPost> readPostList) {
|
||||
String where, List<ReadPost> readPostList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
@ -145,7 +142,6 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
this.sortType = sortType == null ? new SortType(SortType.Type.NEW) : sortType;
|
||||
this.postFilter = postFilter;
|
||||
userWhere = where;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
postLinkedHashSet = new LinkedHashSet<>();
|
||||
}
|
||||
@ -153,7 +149,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
String subredditOrUserName, String query, int postType, SortType sortType, PostFilter postFilter,
|
||||
int filter, List<ReadPost> readPostList) {
|
||||
List<ReadPost> readPostList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
@ -168,7 +164,6 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
this.postType = postType;
|
||||
this.sortType = sortType == null ? new SortType(SortType.Type.RELEVANCE) : sortType;
|
||||
this.postFilter = postFilter;
|
||||
this.filter = filter;
|
||||
postLinkedHashSet = new LinkedHashSet<>();
|
||||
this.readPostList = readPostList;
|
||||
}
|
||||
@ -261,7 +256,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
ParsePost.parsePosts(response.body(), -1, filter, postFilter, readPostList,
|
||||
ParsePost.parsePosts(response.body(), -1, postFilter, readPostList,
|
||||
new ParsePost.ParsePostsListingListener() {
|
||||
@Override
|
||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||
@ -324,7 +319,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
ParsePost.parsePosts(response.body(), -1, filter, postFilter, readPostList,
|
||||
ParsePost.parsePosts(response.body(), -1, postFilter, readPostList,
|
||||
new ParsePost.ParsePostsListingListener() {
|
||||
@Override
|
||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||
@ -384,7 +379,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
ParsePost.parsePosts(response.body(), -1, filter, postFilter, readPostList, subredditFilterList,
|
||||
ParsePost.parsePosts(response.body(), -1, postFilter, readPostList, subredditFilterList,
|
||||
new ParsePost.ParsePostsListingListener() {
|
||||
@Override
|
||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||
@ -458,7 +453,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
ParsePost.parsePosts(response.body(), -1, filter, postFilter, readPostList, subredditFilterList,
|
||||
ParsePost.parsePosts(response.body(), -1, postFilter, readPostList, subredditFilterList,
|
||||
new ParsePost.ParsePostsListingListener() {
|
||||
@Override
|
||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||
@ -519,7 +514,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
ParsePost.parsePosts(response.body(), -1, filter, postFilter, readPostList,
|
||||
ParsePost.parsePosts(response.body(), -1, postFilter, readPostList,
|
||||
new ParsePost.ParsePostsListingListener() {
|
||||
@Override
|
||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||
@ -590,7 +585,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
ParsePost.parsePosts(response.body(), -1, filter, postFilter, readPostList,
|
||||
ParsePost.parsePosts(response.body(), -1, postFilter, readPostList,
|
||||
new ParsePost.ParsePostsListingListener() {
|
||||
@Override
|
||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||
@ -673,7 +668,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
ParsePost.parsePosts(response.body(), -1, filter, postFilter, readPostList,
|
||||
ParsePost.parsePosts(response.body(), -1, postFilter, readPostList,
|
||||
new ParsePost.ParsePostsListingListener() {
|
||||
@Override
|
||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||
@ -764,7 +759,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
ParsePost.parsePosts(response.body(), -1, filter, postFilter, readPostList,
|
||||
ParsePost.parsePosts(response.body(), -1, postFilter, readPostList,
|
||||
new ParsePost.ParsePostsListingListener() {
|
||||
@Override
|
||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||
@ -824,7 +819,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
ParsePost.parsePosts(response.body(), -1, filter, postFilter, readPostList,
|
||||
ParsePost.parsePosts(response.body(), -1, postFilter, readPostList,
|
||||
new ParsePost.ParsePostsListingListener() {
|
||||
@Override
|
||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||
@ -895,7 +890,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
ParsePost.parsePosts(response.body(), -1, filter, postFilter, readPostList,
|
||||
ParsePost.parsePosts(response.body(), -1, postFilter, readPostList,
|
||||
new ParsePost.ParsePostsListingListener() {
|
||||
@Override
|
||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||
|
@ -28,7 +28,6 @@ class PostDataSourceFactory extends DataSource.Factory {
|
||||
private SortType sortType;
|
||||
private PostFilter postFilter;
|
||||
private String userWhere;
|
||||
private int filter;
|
||||
private List<ReadPost> readPostList;
|
||||
private List<SubredditFilter> subredditFilterList;
|
||||
|
||||
@ -38,7 +37,7 @@ class PostDataSourceFactory extends DataSource.Factory {
|
||||
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences,
|
||||
SharedPreferences postFeedScrolledPositionSharedPreferences, int postType,
|
||||
SortType sortType, PostFilter postFilter, int filter, List<ReadPost> readPostList) {
|
||||
SortType sortType, PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
@ -49,14 +48,13 @@ class PostDataSourceFactory extends DataSource.Factory {
|
||||
this.postType = postType;
|
||||
this.sortType = sortType;
|
||||
this.postFilter = postFilter;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
}
|
||||
|
||||
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
String subredditName, int postType, SortType sortType, PostFilter postFilter,
|
||||
int filter, List<ReadPost> readPostList, List<SubredditFilter> subredditFilterList) {
|
||||
List<ReadPost> readPostList, List<SubredditFilter> subredditFilterList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
@ -68,7 +66,6 @@ class PostDataSourceFactory extends DataSource.Factory {
|
||||
this.postType = postType;
|
||||
this.sortType = sortType;
|
||||
this.postFilter = postFilter;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
this.subredditFilterList = subredditFilterList;
|
||||
}
|
||||
@ -76,7 +73,7 @@ class PostDataSourceFactory extends DataSource.Factory {
|
||||
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
String subredditName, int postType, SortType sortType, PostFilter postFilter,
|
||||
String where, int filter, List<ReadPost> readPostList) {
|
||||
String where, List<ReadPost> readPostList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
@ -89,14 +86,13 @@ class PostDataSourceFactory extends DataSource.Factory {
|
||||
this.sortType = sortType;
|
||||
this.postFilter = postFilter;
|
||||
userWhere = where;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
}
|
||||
|
||||
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
String subredditName, String query, int postType, SortType sortType, PostFilter postFilter,
|
||||
int filter, List<ReadPost> readPostList) {
|
||||
List<ReadPost> readPostList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
@ -109,7 +105,6 @@ class PostDataSourceFactory extends DataSource.Factory {
|
||||
this.postType = postType;
|
||||
this.sortType = sortType;
|
||||
this.postFilter = postFilter;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
}
|
||||
|
||||
@ -119,19 +114,19 @@ class PostDataSourceFactory extends DataSource.Factory {
|
||||
if (postType == PostDataSource.TYPE_FRONT_PAGE) {
|
||||
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
||||
sharedPreferences, postFeedScrolledPositionSharedPreferences, postType, sortType,
|
||||
postFilter, filter, readPostList);
|
||||
postFilter, readPostList);
|
||||
} else if (postType == PostDataSource.TYPE_SEARCH) {
|
||||
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
||||
sharedPreferences, postFeedScrolledPositionSharedPreferences, subredditName, query,
|
||||
postType, sortType, postFilter, filter, readPostList);
|
||||
postType, sortType, postFilter, readPostList);
|
||||
} else if (postType == PostDataSource.TYPE_SUBREDDIT || postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
||||
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
||||
sharedPreferences, postFeedScrolledPositionSharedPreferences, subredditName, postType,
|
||||
sortType, postFilter, filter, readPostList, subredditFilterList);
|
||||
sortType, postFilter, readPostList, subredditFilterList);
|
||||
} else {
|
||||
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
||||
sharedPreferences, postFeedScrolledPositionSharedPreferences, subredditName, postType,
|
||||
sortType, postFilter, userWhere, filter, readPostList);
|
||||
sortType, postFilter, userWhere, readPostList);
|
||||
}
|
||||
|
||||
postDataSourceLiveData.postValue(postDataSource);
|
||||
|
@ -35,9 +35,9 @@ public class PostViewModel extends ViewModel {
|
||||
|
||||
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences cache, int postType,
|
||||
SortType sortType, PostFilter postFilter, int filter, List<ReadPost> readPostList) {
|
||||
SortType sortType, PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
||||
sharedPreferences, cache, postType, sortType, postFilter, filter, readPostList);
|
||||
sharedPreferences, cache, postType, sortType, postFilter, readPostList);
|
||||
|
||||
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||
PostDataSource::getInitialLoadStateLiveData);
|
||||
@ -68,10 +68,10 @@ public class PostViewModel extends ViewModel {
|
||||
|
||||
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences cache, String subredditName,
|
||||
int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||
int postType, SortType sortType, PostFilter postFilter,
|
||||
List<ReadPost> readPostList, List<SubredditFilter> subredditFilterList) {
|
||||
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
||||
sharedPreferences, cache, subredditName, postType, sortType, postFilter, filter,
|
||||
sharedPreferences, cache, subredditName, postType, sortType, postFilter,
|
||||
readPostList, subredditFilterList);
|
||||
|
||||
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||
@ -103,11 +103,10 @@ public class PostViewModel extends ViewModel {
|
||||
|
||||
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences cache, String subredditName,
|
||||
int postType, SortType sortType, PostFilter postFilter, String where, int filter,
|
||||
int postType, SortType sortType, PostFilter postFilter, String where,
|
||||
List<ReadPost> readPostList) {
|
||||
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
||||
sharedPreferences, cache, subredditName, postType, sortType, postFilter, where, filter,
|
||||
readPostList);
|
||||
sharedPreferences, cache, subredditName, postType, sortType, postFilter, where, readPostList);
|
||||
|
||||
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||
PostDataSource::getInitialLoadStateLiveData);
|
||||
@ -138,10 +137,9 @@ public class PostViewModel extends ViewModel {
|
||||
|
||||
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences cache, String subredditName,
|
||||
String query, int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||
List<ReadPost> readPostList) {
|
||||
String query, int postType, SortType sortType, PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
||||
sharedPreferences, cache, subredditName, query, postType, sortType, postFilter, filter,
|
||||
sharedPreferences, cache, subredditName, query, postType, sortType, postFilter,
|
||||
readPostList);
|
||||
|
||||
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||
@ -216,14 +214,12 @@ public class PostViewModel extends ViewModel {
|
||||
private SortType sortType;
|
||||
private PostFilter postFilter;
|
||||
private String userWhere;
|
||||
private int filter;
|
||||
private List<ReadPost> readPostList;
|
||||
private List<SubredditFilter> subredditFilterList;
|
||||
|
||||
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||
int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||
List<ReadPost> readPostList) {
|
||||
int postType, SortType sortType, PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
@ -233,15 +229,13 @@ public class PostViewModel extends ViewModel {
|
||||
this.postType = postType;
|
||||
this.sortType = sortType;
|
||||
this.postFilter = postFilter;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
}
|
||||
|
||||
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences,
|
||||
SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
||||
int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||
List<ReadPost> readPostList) {
|
||||
int postType, SortType sortType, PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
@ -252,7 +246,6 @@ public class PostViewModel extends ViewModel {
|
||||
this.postType = postType;
|
||||
this.sortType = sortType;
|
||||
this.postFilter = postFilter;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
}
|
||||
|
||||
@ -260,7 +253,7 @@ public class PostViewModel extends ViewModel {
|
||||
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences,
|
||||
SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
||||
int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||
int postType, SortType sortType, PostFilter postFilter,
|
||||
List<ReadPost> readPostList, List<SubredditFilter> subredditFilterList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
@ -272,7 +265,6 @@ public class PostViewModel extends ViewModel {
|
||||
this.postType = postType;
|
||||
this.sortType = sortType;
|
||||
this.postFilter = postFilter;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
this.subredditFilterList = subredditFilterList;
|
||||
}
|
||||
@ -280,8 +272,7 @@ public class PostViewModel extends ViewModel {
|
||||
//User posts
|
||||
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
||||
int postType, SortType sortType, PostFilter postFilter, String where, int filter,
|
||||
List<ReadPost> readPostList) {
|
||||
int postType, SortType sortType, PostFilter postFilter, String where, List<ReadPost> readPostList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
@ -293,14 +284,12 @@ public class PostViewModel extends ViewModel {
|
||||
this.sortType = sortType;
|
||||
this.postFilter = postFilter;
|
||||
userWhere = where;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
}
|
||||
|
||||
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
||||
String query, int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||
List<ReadPost> readPostList) {
|
||||
String query, int postType, SortType sortType, PostFilter postFilter, List<ReadPost> readPostList) {
|
||||
this.retrofit = retrofit;
|
||||
this.accessToken = accessToken;
|
||||
this.accountName = accountName;
|
||||
@ -312,7 +301,6 @@ public class PostViewModel extends ViewModel {
|
||||
this.postType = postType;
|
||||
this.sortType = sortType;
|
||||
this.postFilter = postFilter;
|
||||
this.filter = filter;
|
||||
this.readPostList = readPostList;
|
||||
}
|
||||
|
||||
@ -321,19 +309,19 @@ public class PostViewModel extends ViewModel {
|
||||
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
|
||||
if (postType == PostDataSource.TYPE_FRONT_PAGE) {
|
||||
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, postType, sortType, postFilter, filter, readPostList);
|
||||
postFeedScrolledPositionSharedPreferences, postType, sortType, postFilter, readPostList);
|
||||
} else if (postType == PostDataSource.TYPE_SEARCH) {
|
||||
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, subredditName, query, postType, sortType,
|
||||
postFilter, filter, readPostList);
|
||||
postFilter, readPostList);
|
||||
} else if (postType == PostDataSource.TYPE_SUBREDDIT || postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
||||
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||
postFilter, filter, readPostList, subredditFilterList);
|
||||
postFilter, readPostList, subredditFilterList);
|
||||
} else {
|
||||
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||
postFilter, userWhere, filter, readPostList);
|
||||
postFilter, userWhere, readPostList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -163,6 +163,36 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/post_type_gallery_linear_layout_customize_post_filter_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="32dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:background="?attr/selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/post_type_gallery_text_view_customize_post_filter_activity"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/post_type_gallery"
|
||||
android:fontFamily="?attr/font_default"
|
||||
android:textSize="?attr/font_default" />
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/post_type_gallery_check_box_customize_post_filter_activity"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/title_excludes_strings_text_input_layout_customize_post_filter_activity"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -199,6 +199,7 @@
|
||||
<string name="bottom_sheet_post_link">Link</string>
|
||||
<string name="bottom_sheet_post_image">Image</string>
|
||||
<string name="bottom_sheet_post_video">Video</string>
|
||||
<string name="post_type_gallery">Gallery</string>
|
||||
|
||||
<string name="select_from_gallery">Select a picture</string>
|
||||
<string name="select_again">Select again</string>
|
||||
|
@ -44,11 +44,10 @@
|
||||
<Preference
|
||||
app:key="security"
|
||||
app:title="@string/settings_security_title"
|
||||
android:icon="@drawable/ic_security_24dp"
|
||||
app:icon="@drawable/ic_security_24dp"
|
||||
app:fragment="ml.docilealligator.infinityforreddit.settings.SecurityPreferenceFragment" />
|
||||
|
||||
<Preference
|
||||
app:key="security"
|
||||
app:title="@string/settings_data_saving_mode"
|
||||
app:icon="@drawable/ic_data_saving_mode_24dp"
|
||||
app:fragment="ml.docilealligator.infinityforreddit.settings.DataSavingModePreferenceFragment" />
|
||||
|
Loading…
Reference in New Issue
Block a user