mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-11-07 03:07:26 +01:00
Continue supporting post filter.
This commit is contained in:
parent
72fd7917af
commit
c5cedba370
@ -1,21 +1,92 @@
|
|||||||
package ml.docilealligator.infinityforreddit;
|
package ml.docilealligator.infinityforreddit;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
public class PostFilter {
|
public class PostFilter implements Parcelable {
|
||||||
public int maxVote = -1;
|
public int maxVote = -1;
|
||||||
public int minVote = -1;
|
public int minVote = -1;
|
||||||
public int maxComments = -1;
|
public int maxComments = -1;
|
||||||
public int minComments = -1;
|
public int minComments = -1;
|
||||||
public int maxAwards = -1;
|
public int maxAwards = -1;
|
||||||
public int minAwards = -1;
|
public int minAwards = -1;
|
||||||
|
public boolean allowNSFW;
|
||||||
public boolean onlyNSFW;
|
public boolean onlyNSFW;
|
||||||
public boolean onlySpoiler;
|
public boolean onlySpoiler;
|
||||||
public String postTitleRegex;
|
public String postTitleRegex;
|
||||||
public ArrayList<String> postTitleExcludesStrings;
|
public String postTitleExcludesStrings;
|
||||||
public ArrayList<String> excludesSubreddits;
|
public String excludesSubreddits;
|
||||||
public ArrayList<String> excludesUsers;
|
public String excludesUsers;
|
||||||
public ArrayList<Flair> containsFlairs;
|
public String containsFlairs;
|
||||||
public ArrayList<Flair> excludesFlairs;
|
public String excludesFlairs;
|
||||||
public ArrayList<Integer> containsPostTypes;
|
public boolean containsTextType;
|
||||||
|
public boolean containsLinkType;
|
||||||
|
public boolean containsImageType;
|
||||||
|
public boolean containsVideoType;
|
||||||
|
|
||||||
|
public PostFilter() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected PostFilter(Parcel in) {
|
||||||
|
maxVote = in.readInt();
|
||||||
|
minVote = in.readInt();
|
||||||
|
maxComments = in.readInt();
|
||||||
|
minComments = in.readInt();
|
||||||
|
maxAwards = in.readInt();
|
||||||
|
minAwards = in.readInt();
|
||||||
|
allowNSFW = in.readByte() != 0;
|
||||||
|
onlyNSFW = in.readByte() != 0;
|
||||||
|
onlySpoiler = in.readByte() != 0;
|
||||||
|
postTitleRegex = in.readString();
|
||||||
|
postTitleExcludesStrings = in.readString();
|
||||||
|
excludesSubreddits = in.readString();
|
||||||
|
excludesUsers = in.readString();
|
||||||
|
containsFlairs = in.readString();
|
||||||
|
excludesFlairs = in.readString();
|
||||||
|
containsTextType = in.readByte() != 0;
|
||||||
|
containsLinkType = in.readByte() != 0;
|
||||||
|
containsImageType = in.readByte() != 0;
|
||||||
|
containsVideoType = in.readByte() != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Creator<PostFilter> CREATOR = new Creator<PostFilter>() {
|
||||||
|
@Override
|
||||||
|
public PostFilter createFromParcel(Parcel in) {
|
||||||
|
return new PostFilter(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PostFilter[] newArray(int size) {
|
||||||
|
return new PostFilter[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel parcel, int i) {
|
||||||
|
parcel.writeInt(maxVote);
|
||||||
|
parcel.writeInt(minVote);
|
||||||
|
parcel.writeInt(maxComments);
|
||||||
|
parcel.writeInt(minComments);
|
||||||
|
parcel.writeInt(maxAwards);
|
||||||
|
parcel.writeInt(minAwards);
|
||||||
|
parcel.writeByte((byte) (allowNSFW ? 1 : 0));
|
||||||
|
parcel.writeByte((byte) (onlyNSFW ? 1 : 0));
|
||||||
|
parcel.writeByte((byte) (onlySpoiler ? 1 : 0));
|
||||||
|
parcel.writeString(postTitleRegex);
|
||||||
|
parcel.writeString(postTitleExcludesStrings);
|
||||||
|
parcel.writeString(excludesSubreddits);
|
||||||
|
parcel.writeString(excludesUsers);
|
||||||
|
parcel.writeString(containsFlairs);
|
||||||
|
parcel.writeString(excludesFlairs);
|
||||||
|
parcel.writeByte((byte) (containsTextType ? 1 : 0));
|
||||||
|
parcel.writeByte((byte) (containsLinkType ? 1 : 0));
|
||||||
|
parcel.writeByte((byte) (containsImageType ? 1 : 0));
|
||||||
|
parcel.writeByte((byte) (containsVideoType ? 1 : 0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package ml.docilealligator.infinityforreddit.activities;
|
package ml.docilealligator.infinityforreddit.activities;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.ColorStateList;
|
import android.content.res.ColorStateList;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
@ -26,6 +28,7 @@ import javax.inject.Named;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
|
import ml.docilealligator.infinityforreddit.PostFilter;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
|
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
|
||||||
@ -33,6 +36,8 @@ import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
|
|||||||
|
|
||||||
public class CustomizePostFilterActivity extends BaseActivity {
|
public class CustomizePostFilterActivity extends BaseActivity {
|
||||||
|
|
||||||
|
public static final String RETURN_EXTRA_POST_FILTER = "REPF";
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_customize_post_filter_activity)
|
@BindView(R.id.coordinator_layout_customize_post_filter_activity)
|
||||||
CoordinatorLayout coordinatorLayout;
|
CoordinatorLayout coordinatorLayout;
|
||||||
@BindView(R.id.appbar_layout_customize_post_filter_activity)
|
@BindView(R.id.appbar_layout_customize_post_filter_activity)
|
||||||
@ -233,7 +238,30 @@ public class CustomizePostFilterActivity extends BaseActivity {
|
|||||||
finish();
|
finish();
|
||||||
return true;
|
return true;
|
||||||
} else if (item.getItemId() == R.id.action_save_customize_post_filter_activity) {
|
} 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.postTitleExcludesStrings = titleExcludesStringsTextInputEditText.getText().toString();
|
||||||
|
postFilter.excludesSubreddits = excludesSubredditsTextInputEditText.getText().toString();
|
||||||
|
postFilter.excludesUsers = excludesUsersTextInputEditText.getText().toString();
|
||||||
|
postFilter.excludesFlairs = excludesUsersTextInputEditText.getText().toString();
|
||||||
|
postFilter.containsFlairs = containsFlairsTextInputEditText.getText().toString();
|
||||||
|
postFilter.containsTextType = postTypeTextCheckBox.isChecked();
|
||||||
|
postFilter.containsLinkType = postTypeLinkCheckBox.isChecked();
|
||||||
|
postFilter.containsImageType = postTypeImageCheckBox.isChecked();
|
||||||
|
postFilter.containsVideoType = postTypeVideoCheckBox.isChecked();
|
||||||
|
|
||||||
|
Intent returnIntent = new Intent();
|
||||||
|
returnIntent.putExtra(RETURN_EXTRA_POST_FILTER, postFilter);
|
||||||
|
setResult(Activity.RESULT_OK, returnIntent);
|
||||||
|
finish();
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -65,6 +65,7 @@ import ml.docilealligator.infinityforreddit.ActivityToolbarInterface;
|
|||||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.NetworkState;
|
import ml.docilealligator.infinityforreddit.NetworkState;
|
||||||
|
import ml.docilealligator.infinityforreddit.PostFilter;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.SortType;
|
import ml.docilealligator.infinityforreddit.SortType;
|
||||||
@ -209,6 +210,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
private int maxPosition = -1;
|
private int maxPosition = -1;
|
||||||
private int postLayout;
|
private int postLayout;
|
||||||
private SortType sortType;
|
private SortType sortType;
|
||||||
|
private PostFilter postFilter;
|
||||||
private ColorDrawable backgroundSwipeRight;
|
private ColorDrawable backgroundSwipeRight;
|
||||||
private ColorDrawable backgroundSwipeLeft;
|
private ColorDrawable backgroundSwipeLeft;
|
||||||
private Drawable drawableSwipeRight;
|
private Drawable drawableSwipeRight;
|
||||||
@ -441,10 +443,13 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
|
|
||||||
postType = getArguments().getInt(EXTRA_POST_TYPE);
|
postType = getArguments().getInt(EXTRA_POST_TYPE);
|
||||||
|
|
||||||
|
//TODO: Initialize PostFilter
|
||||||
|
postFilter = new PostFilter();
|
||||||
|
|
||||||
int filter = getArguments().getInt(EXTRA_FILTER);
|
int filter = getArguments().getInt(EXTRA_FILTER);
|
||||||
String accessToken = getArguments().getString(EXTRA_ACCESS_TOKEN);
|
String accessToken = getArguments().getString(EXTRA_ACCESS_TOKEN);
|
||||||
accountName = getArguments().getString(EXTRA_ACCOUNT_NAME);
|
accountName = getArguments().getString(EXTRA_ACCOUNT_NAME);
|
||||||
boolean nsfw = mNsfwAndSpoilerSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.NSFW_BASE, false);
|
postFilter.allowNSFW = mNsfwAndSpoilerSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.NSFW_BASE, false);
|
||||||
int defaultPostLayout = Integer.parseInt(mSharedPreferences.getString(SharedPreferencesUtils.DEFAULT_POST_LAYOUT_KEY, "0"));
|
int defaultPostLayout = Integer.parseInt(mSharedPreferences.getString(SharedPreferencesUtils.DEFAULT_POST_LAYOUT_KEY, "0"));
|
||||||
savePostFeedScrolledPosition = mSharedPreferences.getBoolean(SharedPreferencesUtils.SAVE_FRONT_PAGE_SCROLLED_POSITION, false);
|
savePostFeedScrolledPosition = mSharedPreferences.getBoolean(SharedPreferencesUtils.SAVE_FRONT_PAGE_SCROLLED_POSITION, false);
|
||||||
Locale locale = getResources().getConfiguration().locale;
|
Locale locale = getResources().getConfiguration().locale;
|
||||||
@ -687,7 +692,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
if (accountName != null && !accountName.equals("")) {
|
if (accountName != null && !accountName.equals("")) {
|
||||||
if (readPosts == null) {
|
if (readPosts == null) {
|
||||||
if (getArguments().getBoolean(EXTRA_DISABLE_READ_POSTS, false)) {
|
if (getArguments().getBoolean(EXTRA_DISABLE_READ_POSTS, false)) {
|
||||||
initializeAndBindPostViewModel(accessToken, locale, filter, nsfw);
|
initializeAndBindPostViewModel(accessToken, locale, filter);
|
||||||
} else {
|
} else {
|
||||||
FetchReadPosts.fetchReadPosts(mRedditDataRoomDatabase, accountName,
|
FetchReadPosts.fetchReadPosts(mRedditDataRoomDatabase, accountName,
|
||||||
postType == PostDataSource.TYPE_SUBREDDIT && subredditName != null && (subredditName.equals("all") || subredditName.equals("popular")),
|
postType == PostDataSource.TYPE_SUBREDDIT && subredditName != null && (subredditName.equals("all") || subredditName.equals("popular")),
|
||||||
@ -695,15 +700,15 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
||||||
this.readPosts = readPosts;
|
this.readPosts = readPosts;
|
||||||
this.subredditFilterList = subredditFilters;
|
this.subredditFilterList = subredditFilters;
|
||||||
initializeAndBindPostViewModel(accessToken, locale, filter, nsfw);
|
initializeAndBindPostViewModel(accessToken, locale, filter);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
initializeAndBindPostViewModel(accessToken, locale, filter, nsfw);
|
initializeAndBindPostViewModel(accessToken, locale, filter);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
initializeAndBindPostViewModelForAnonymous(accessToken, locale, filter, nsfw);
|
initializeAndBindPostViewModelForAnonymous(accessToken, locale, filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
vibrateWhenActionTriggered = mSharedPreferences.getBoolean(SharedPreferencesUtils.VIBRATE_WHEN_ACTION_TRIGGERED, true);
|
vibrateWhenActionTriggered = mSharedPreferences.getBoolean(SharedPreferencesUtils.VIBRATE_WHEN_ACTION_TRIGGERED, true);
|
||||||
@ -815,57 +820,65 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeAndBindPostViewModel(String accessToken, Locale locale, int filter, boolean nsfw) {
|
private void initializeAndBindPostViewModel(String accessToken, Locale locale, int filter) {
|
||||||
if (postType == PostDataSource.TYPE_SEARCH) {
|
if (postType == PostDataSource.TYPE_SEARCH) {
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences,
|
accountName, locale, mSharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, subredditName, query, postType, sortType, filter, nsfw, readPosts)).get(PostViewModel.class);
|
postFeedScrolledPositionSharedPreferences, subredditName, query, postType, sortType,
|
||||||
|
postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||||
} else if (postType == PostDataSource.TYPE_SUBREDDIT) {
|
} else if (postType == PostDataSource.TYPE_SUBREDDIT) {
|
||||||
if (subredditName.equals("all") || subredditName.equals("popular")) {
|
if (subredditName.equals("all") || subredditName.equals("popular")) {
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences,
|
accountName, locale, mSharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType, filter, nsfw, readPosts, subredditFilterList)).get(PostViewModel.class);
|
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||||
|
postFilter, filter, readPosts, subredditFilterList)).get(PostViewModel.class);
|
||||||
} else {
|
} else {
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences,
|
accountName, locale, mSharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType, filter, nsfw, readPosts)).get(PostViewModel.class);
|
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||||
|
postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||||
}
|
}
|
||||||
} else if (postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
} else if (postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences,
|
accountName, locale, mSharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, multiRedditPath, postType, sortType, filter, nsfw, readPosts)).get(PostViewModel.class);
|
postFeedScrolledPositionSharedPreferences, multiRedditPath, postType, sortType,
|
||||||
|
postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||||
} else if (postType == PostDataSource.TYPE_USER) {
|
} else if (postType == PostDataSource.TYPE_USER) {
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences,
|
accountName, locale, mSharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, username, postType, sortType, where, filter, nsfw, readPosts)).get(PostViewModel.class);
|
postFeedScrolledPositionSharedPreferences, username, postType, sortType, postFilter,
|
||||||
|
where, filter, readPosts)).get(PostViewModel.class);
|
||||||
} else {
|
} else {
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences, postFeedScrolledPositionSharedPreferences,
|
accountName, locale, mSharedPreferences, postFeedScrolledPositionSharedPreferences,
|
||||||
postType, sortType, filter, nsfw, readPosts)).get(PostViewModel.class);
|
postType, sortType, postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
bindPostViewModel();
|
bindPostViewModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeAndBindPostViewModelForAnonymous(String accessToken, Locale locale, int filter, boolean nsfw) {
|
private void initializeAndBindPostViewModelForAnonymous(String accessToken, Locale locale, int filter) {
|
||||||
//For anonymous user
|
//For anonymous user
|
||||||
if (postType == PostDataSource.TYPE_SEARCH) {
|
if (postType == PostDataSource.TYPE_SEARCH) {
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences,
|
accountName, locale, mSharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, subredditName, query, postType, sortType, filter, nsfw, readPosts)).get(PostViewModel.class);
|
postFeedScrolledPositionSharedPreferences, subredditName, query, postType, sortType,
|
||||||
|
postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||||
} else if (postType == PostDataSource.TYPE_SUBREDDIT) {
|
} else if (postType == PostDataSource.TYPE_SUBREDDIT) {
|
||||||
if (subredditName.equals("all") || subredditName.equals("popular")) {
|
if (subredditName.equals("all") || subredditName.equals("popular")) {
|
||||||
if (subredditFilterList != null) {
|
if (subredditFilterList != null) {
|
||||||
mPostViewModel = new ViewModelProvider(this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences,
|
accountName, locale, mSharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType, filter, nsfw, readPosts, subredditFilterList)).get(PostViewModel.class);
|
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||||
|
postFilter, filter, readPosts, subredditFilterList)).get(PostViewModel.class);
|
||||||
} else {
|
} else {
|
||||||
FetchSubredditFilters.fetchSubredditFilters(mRedditDataRoomDatabase, subredditFilters -> {
|
FetchSubredditFilters.fetchSubredditFilters(mRedditDataRoomDatabase, subredditFilters -> {
|
||||||
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
if (activity != null && !activity.isFinishing() && !activity.isDestroyed()) {
|
||||||
subredditFilterList = subredditFilters;
|
subredditFilterList = subredditFilters;
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences,
|
accountName, locale, mSharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType, filter, nsfw, readPosts, subredditFilterList)).get(PostViewModel.class);
|
postFeedScrolledPositionSharedPreferences, subredditName, postType,
|
||||||
|
sortType, postFilter, filter, readPosts, subredditFilterList)).get(PostViewModel.class);
|
||||||
|
|
||||||
bindPostViewModel();
|
bindPostViewModel();
|
||||||
}
|
}
|
||||||
@ -874,20 +887,23 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
} else {
|
} else {
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences,
|
accountName, locale, mSharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType, filter, nsfw, readPosts)).get(PostViewModel.class);
|
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType, postFilter,
|
||||||
|
filter, readPosts)).get(PostViewModel.class);
|
||||||
}
|
}
|
||||||
} else if (postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
} else if (postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences,
|
accountName, locale, mSharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, multiRedditPath, postType, sortType, filter, nsfw, readPosts)).get(PostViewModel.class);
|
postFeedScrolledPositionSharedPreferences, multiRedditPath, postType, sortType, postFilter,
|
||||||
|
filter, readPosts)).get(PostViewModel.class);
|
||||||
} else if (postType == PostDataSource.TYPE_USER) {
|
} else if (postType == PostDataSource.TYPE_USER) {
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(accessToken == null ? mRetrofit : mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences,
|
accountName, locale, mSharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, username, postType, sortType, where, filter, nsfw, readPosts)).get(PostViewModel.class);
|
postFeedScrolledPositionSharedPreferences, username, postType, sortType, postFilter,
|
||||||
|
where, filter, readPosts)).get(PostViewModel.class);
|
||||||
} else {
|
} else {
|
||||||
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mOauthRetrofit, accessToken,
|
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mOauthRetrofit, accessToken,
|
||||||
accountName, locale, mSharedPreferences, postFeedScrolledPositionSharedPreferences,
|
accountName, locale, mSharedPreferences, postFeedScrolledPositionSharedPreferences,
|
||||||
postType, sortType, filter, nsfw, readPosts)).get(PostViewModel.class);
|
postType, sortType, postFilter, filter, readPosts)).get(PostViewModel.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mPostViewModel != null) {
|
if (mPostViewModel != null) {
|
||||||
@ -1060,7 +1076,8 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void changeNSFW(boolean nsfw) {
|
public void changeNSFW(boolean nsfw) {
|
||||||
mPostViewModel.changeNSFW(nsfw);
|
postFilter.allowNSFW = nsfw;
|
||||||
|
mPostViewModel.changePostFilter(postFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -12,6 +12,7 @@ import java.util.List;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import ml.docilealligator.infinityforreddit.NetworkState;
|
import ml.docilealligator.infinityforreddit.NetworkState;
|
||||||
|
import ml.docilealligator.infinityforreddit.PostFilter;
|
||||||
import ml.docilealligator.infinityforreddit.SortType;
|
import ml.docilealligator.infinityforreddit.SortType;
|
||||||
import ml.docilealligator.infinityforreddit.apis.RedditAPI;
|
import ml.docilealligator.infinityforreddit.apis.RedditAPI;
|
||||||
import ml.docilealligator.infinityforreddit.readpost.ReadPost;
|
import ml.docilealligator.infinityforreddit.readpost.ReadPost;
|
||||||
@ -47,7 +48,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
private String query;
|
private String query;
|
||||||
private int postType;
|
private int postType;
|
||||||
private SortType sortType;
|
private SortType sortType;
|
||||||
private boolean nsfw;
|
private PostFilter postFilter;
|
||||||
private int filter;
|
private int filter;
|
||||||
private List<ReadPost> readPostList;
|
private List<ReadPost> readPostList;
|
||||||
private List<SubredditFilter> subredditFilterList;
|
private List<SubredditFilter> subredditFilterList;
|
||||||
@ -63,8 +64,9 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
private LoadCallback<String, Post> callback;
|
private LoadCallback<String, Post> callback;
|
||||||
|
|
||||||
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences, int postType,
|
SharedPreferences sharedPreferences,
|
||||||
SortType sortType, int filter, boolean nsfw, List<ReadPost> readPostList) {
|
SharedPreferences postFeedScrolledPositionSharedPreferences, int postType,
|
||||||
|
SortType sortType, PostFilter postFilter, int filter, List<ReadPost> readPostList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -76,16 +78,16 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
hasPostLiveData = new MutableLiveData<>();
|
hasPostLiveData = new MutableLiveData<>();
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType == null ? new SortType(SortType.Type.BEST) : sortType;
|
this.sortType = sortType == null ? new SortType(SortType.Type.BEST) : sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
postLinkedHashSet = new LinkedHashSet<>();
|
postLinkedHashSet = new LinkedHashSet<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||||
String path, int postType, SortType sortType, int filter, boolean nsfw, List<ReadPost> readPostList,
|
String path, int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||||
List<SubredditFilter> subredditFilterList) {
|
List<ReadPost> readPostList, List<SubredditFilter> subredditFilterList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -118,16 +120,17 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
} else {
|
} else {
|
||||||
this.sortType = sortType;
|
this.sortType = sortType;
|
||||||
}
|
}
|
||||||
|
this.postFilter = postFilter;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
this.subredditFilterList = subredditFilterList;
|
this.subredditFilterList = subredditFilterList;
|
||||||
postLinkedHashSet = new LinkedHashSet<>();
|
postLinkedHashSet = new LinkedHashSet<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditOrUserName,
|
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||||
int postType, SortType sortType, String where, int filter, boolean nsfw, List<ReadPost> readPostList) {
|
String subredditOrUserName, int postType, SortType sortType, PostFilter postFilter,
|
||||||
|
String where, int filter, List<ReadPost> readPostList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -140,17 +143,17 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
hasPostLiveData = new MutableLiveData<>();
|
hasPostLiveData = new MutableLiveData<>();
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType == null ? new SortType(SortType.Type.NEW) : sortType;
|
this.sortType = sortType == null ? new SortType(SortType.Type.NEW) : sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
userWhere = where;
|
userWhere = where;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
postLinkedHashSet = new LinkedHashSet<>();
|
postLinkedHashSet = new LinkedHashSet<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
PostDataSource(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||||
String subredditOrUserName, String query, int postType, SortType sortType, int filter,
|
String subredditOrUserName, String query, int postType, SortType sortType, PostFilter postFilter,
|
||||||
boolean nsfw, List<ReadPost> readPostList) {
|
int filter, List<ReadPost> readPostList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -164,8 +167,8 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
hasPostLiveData = new MutableLiveData<>();
|
hasPostLiveData = new MutableLiveData<>();
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType == null ? new SortType(SortType.Type.RELEVANCE) : sortType;
|
this.sortType = sortType == null ? new SortType(SortType.Type.RELEVANCE) : sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
postLinkedHashSet = new LinkedHashSet<>();
|
postLinkedHashSet = new LinkedHashSet<>();
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
}
|
}
|
||||||
@ -258,7 +261,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
ParsePost.parsePosts(response.body(), -1, filter, nsfw, readPostList,
|
ParsePost.parsePosts(response.body(), -1, filter, postFilter.allowNSFW, readPostList,
|
||||||
new ParsePost.ParsePostsListingListener() {
|
new ParsePost.ParsePostsListingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||||
@ -321,7 +324,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
ParsePost.parsePosts(response.body(), -1, filter, nsfw, readPostList,
|
ParsePost.parsePosts(response.body(), -1, filter, postFilter.allowNSFW, readPostList,
|
||||||
new ParsePost.ParsePostsListingListener() {
|
new ParsePost.ParsePostsListingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||||
@ -381,7 +384,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
ParsePost.parsePosts(response.body(), -1, filter, nsfw, readPostList, subredditFilterList,
|
ParsePost.parsePosts(response.body(), -1, filter, postFilter.allowNSFW, readPostList, subredditFilterList,
|
||||||
new ParsePost.ParsePostsListingListener() {
|
new ParsePost.ParsePostsListingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||||
@ -455,7 +458,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
ParsePost.parsePosts(response.body(), -1, filter, nsfw, readPostList, subredditFilterList,
|
ParsePost.parsePosts(response.body(), -1, filter, postFilter.allowNSFW, readPostList, subredditFilterList,
|
||||||
new ParsePost.ParsePostsListingListener() {
|
new ParsePost.ParsePostsListingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||||
@ -516,7 +519,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
ParsePost.parsePosts(response.body(), -1, filter, nsfw, readPostList,
|
ParsePost.parsePosts(response.body(), -1, filter, postFilter.allowNSFW, readPostList,
|
||||||
new ParsePost.ParsePostsListingListener() {
|
new ParsePost.ParsePostsListingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||||
@ -587,7 +590,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
ParsePost.parsePosts(response.body(), -1, filter, nsfw, readPostList,
|
ParsePost.parsePosts(response.body(), -1, filter, postFilter.allowNSFW, readPostList,
|
||||||
new ParsePost.ParsePostsListingListener() {
|
new ParsePost.ParsePostsListingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||||
@ -670,7 +673,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
ParsePost.parsePosts(response.body(), -1, filter, nsfw, readPostList,
|
ParsePost.parsePosts(response.body(), -1, filter, postFilter.allowNSFW, readPostList,
|
||||||
new ParsePost.ParsePostsListingListener() {
|
new ParsePost.ParsePostsListingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||||
@ -761,7 +764,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
ParsePost.parsePosts(response.body(), -1, filter, nsfw, readPostList,
|
ParsePost.parsePosts(response.body(), -1, filter, postFilter.allowNSFW, readPostList,
|
||||||
new ParsePost.ParsePostsListingListener() {
|
new ParsePost.ParsePostsListingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||||
@ -821,7 +824,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
ParsePost.parsePosts(response.body(), -1, filter, nsfw, readPostList,
|
ParsePost.parsePosts(response.body(), -1, filter, postFilter.allowNSFW, readPostList,
|
||||||
new ParsePost.ParsePostsListingListener() {
|
new ParsePost.ParsePostsListingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||||
@ -892,7 +895,7 @@ public class PostDataSource extends PageKeyedDataSource<String, Post> {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
ParsePost.parsePosts(response.body(), -1, filter, nsfw, readPostList,
|
ParsePost.parsePosts(response.body(), -1, filter, postFilter.allowNSFW, readPostList,
|
||||||
new ParsePost.ParsePostsListingListener() {
|
new ParsePost.ParsePostsListingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
public void onParsePostsListingSuccess(LinkedHashSet<Post> newPosts, String lastItem) {
|
||||||
|
@ -9,6 +9,7 @@ import androidx.paging.DataSource;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import ml.docilealligator.infinityforreddit.PostFilter;
|
||||||
import ml.docilealligator.infinityforreddit.SortType;
|
import ml.docilealligator.infinityforreddit.SortType;
|
||||||
import ml.docilealligator.infinityforreddit.readpost.ReadPost;
|
import ml.docilealligator.infinityforreddit.readpost.ReadPost;
|
||||||
import ml.docilealligator.infinityforreddit.subredditfilter.SubredditFilter;
|
import ml.docilealligator.infinityforreddit.subredditfilter.SubredditFilter;
|
||||||
@ -25,9 +26,9 @@ class PostDataSourceFactory extends DataSource.Factory {
|
|||||||
private String query;
|
private String query;
|
||||||
private int postType;
|
private int postType;
|
||||||
private SortType sortType;
|
private SortType sortType;
|
||||||
|
private PostFilter postFilter;
|
||||||
private String userWhere;
|
private String userWhere;
|
||||||
private int filter;
|
private int filter;
|
||||||
private boolean nsfw;
|
|
||||||
private List<ReadPost> readPostList;
|
private List<ReadPost> readPostList;
|
||||||
private List<SubredditFilter> subredditFilterList;
|
private List<SubredditFilter> subredditFilterList;
|
||||||
|
|
||||||
@ -37,7 +38,7 @@ class PostDataSourceFactory extends DataSource.Factory {
|
|||||||
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences,
|
SharedPreferences sharedPreferences,
|
||||||
SharedPreferences postFeedScrolledPositionSharedPreferences, int postType,
|
SharedPreferences postFeedScrolledPositionSharedPreferences, int postType,
|
||||||
SortType sortType, int filter, boolean nsfw, List<ReadPost> readPostList) {
|
SortType sortType, PostFilter postFilter, int filter, List<ReadPost> readPostList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -47,15 +48,15 @@ class PostDataSourceFactory extends DataSource.Factory {
|
|||||||
postDataSourceLiveData = new MutableLiveData<>();
|
postDataSourceLiveData = new MutableLiveData<>();
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType;
|
this.sortType = sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
}
|
}
|
||||||
|
|
||||||
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||||
String subredditName, int postType, SortType sortType, int filter, boolean nsfw,
|
String subredditName, int postType, SortType sortType, PostFilter postFilter,
|
||||||
List<ReadPost> readPostList, List<SubredditFilter> subredditFilterList) {
|
int filter, List<ReadPost> readPostList, List<SubredditFilter> subredditFilterList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -66,16 +67,16 @@ class PostDataSourceFactory extends DataSource.Factory {
|
|||||||
postDataSourceLiveData = new MutableLiveData<>();
|
postDataSourceLiveData = new MutableLiveData<>();
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType;
|
this.sortType = sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
this.subredditFilterList = subredditFilterList;
|
this.subredditFilterList = subredditFilterList;
|
||||||
}
|
}
|
||||||
|
|
||||||
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||||
String subredditName, int postType, SortType sortType, String where, int filter,
|
String subredditName, int postType, SortType sortType, PostFilter postFilter,
|
||||||
boolean nsfw, List<ReadPost> readPostList) {
|
String where, int filter, List<ReadPost> readPostList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -86,16 +87,16 @@ class PostDataSourceFactory extends DataSource.Factory {
|
|||||||
postDataSourceLiveData = new MutableLiveData<>();
|
postDataSourceLiveData = new MutableLiveData<>();
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType;
|
this.sortType = sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
userWhere = where;
|
userWhere = where;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
}
|
}
|
||||||
|
|
||||||
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
PostDataSourceFactory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||||
String subredditName, String query, int postType, SortType sortType, int filter,
|
String subredditName, String query, int postType, SortType sortType, PostFilter postFilter,
|
||||||
boolean nsfw, List<ReadPost> readPostList) {
|
int filter, List<ReadPost> readPostList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -107,8 +108,8 @@ class PostDataSourceFactory extends DataSource.Factory {
|
|||||||
postDataSourceLiveData = new MutableLiveData<>();
|
postDataSourceLiveData = new MutableLiveData<>();
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType;
|
this.sortType = sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,20 +118,20 @@ class PostDataSourceFactory extends DataSource.Factory {
|
|||||||
public DataSource<String, Post> create() {
|
public DataSource<String, Post> create() {
|
||||||
if (postType == PostDataSource.TYPE_FRONT_PAGE) {
|
if (postType == PostDataSource.TYPE_FRONT_PAGE) {
|
||||||
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
||||||
sharedPreferences, postFeedScrolledPositionSharedPreferences, postType, sortType, filter,
|
sharedPreferences, postFeedScrolledPositionSharedPreferences, postType, sortType,
|
||||||
nsfw, readPostList);
|
postFilter, filter, readPostList);
|
||||||
} else if (postType == PostDataSource.TYPE_SEARCH) {
|
} else if (postType == PostDataSource.TYPE_SEARCH) {
|
||||||
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
||||||
sharedPreferences, postFeedScrolledPositionSharedPreferences, subredditName, query,
|
sharedPreferences, postFeedScrolledPositionSharedPreferences, subredditName, query,
|
||||||
postType, sortType, filter, nsfw, readPostList);
|
postType, sortType, postFilter, filter, readPostList);
|
||||||
} else if (postType == PostDataSource.TYPE_SUBREDDIT || postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
} else if (postType == PostDataSource.TYPE_SUBREDDIT || postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
||||||
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
||||||
sharedPreferences, postFeedScrolledPositionSharedPreferences, subredditName, postType,
|
sharedPreferences, postFeedScrolledPositionSharedPreferences, subredditName, postType,
|
||||||
sortType, filter, nsfw, readPostList, subredditFilterList);
|
sortType, postFilter, filter, readPostList, subredditFilterList);
|
||||||
} else {
|
} else {
|
||||||
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
postDataSource = new PostDataSource(retrofit, accessToken, accountName, locale,
|
||||||
sharedPreferences, postFeedScrolledPositionSharedPreferences, subredditName, postType,
|
sharedPreferences, postFeedScrolledPositionSharedPreferences, subredditName, postType,
|
||||||
sortType, userWhere, filter, nsfw, readPostList);
|
sortType, postFilter, userWhere, filter, readPostList);
|
||||||
}
|
}
|
||||||
|
|
||||||
postDataSourceLiveData.postValue(postDataSource);
|
postDataSourceLiveData.postValue(postDataSource);
|
||||||
@ -145,8 +146,8 @@ class PostDataSourceFactory extends DataSource.Factory {
|
|||||||
return postDataSource;
|
return postDataSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
void changeNSFWAndSortType(boolean nsfw, SortType sortType) {
|
void changeSortTypeAndPostFilter(SortType sortType, PostFilter postFilter) {
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.sortType = sortType;
|
this.sortType = sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import java.util.List;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import ml.docilealligator.infinityforreddit.NetworkState;
|
import ml.docilealligator.infinityforreddit.NetworkState;
|
||||||
|
import ml.docilealligator.infinityforreddit.PostFilter;
|
||||||
import ml.docilealligator.infinityforreddit.SortType;
|
import ml.docilealligator.infinityforreddit.SortType;
|
||||||
import ml.docilealligator.infinityforreddit.readpost.ReadPost;
|
import ml.docilealligator.infinityforreddit.readpost.ReadPost;
|
||||||
import ml.docilealligator.infinityforreddit.subredditfilter.SubredditFilter;
|
import ml.docilealligator.infinityforreddit.subredditfilter.SubredditFilter;
|
||||||
@ -28,15 +29,15 @@ public class PostViewModel extends ViewModel {
|
|||||||
private LiveData<NetworkState> initialLoadingState;
|
private LiveData<NetworkState> initialLoadingState;
|
||||||
private LiveData<Boolean> hasPostLiveData;
|
private LiveData<Boolean> hasPostLiveData;
|
||||||
private LiveData<PagedList<Post>> posts;
|
private LiveData<PagedList<Post>> posts;
|
||||||
private MutableLiveData<Boolean> nsfwLiveData;
|
|
||||||
private MutableLiveData<SortType> sortTypeLiveData;
|
private MutableLiveData<SortType> sortTypeLiveData;
|
||||||
|
private MutableLiveData<PostFilter> postFilterLiveData;
|
||||||
private NSFWAndSortTypeLiveData nsfwAndSortTypeLiveData;
|
private NSFWAndSortTypeLiveData nsfwAndSortTypeLiveData;
|
||||||
|
|
||||||
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences cache, int postType,
|
SharedPreferences sharedPreferences, SharedPreferences cache, int postType,
|
||||||
SortType sortType, int filter, boolean nsfw, List<ReadPost> readPostList) {
|
SortType sortType, PostFilter postFilter, int filter, List<ReadPost> readPostList) {
|
||||||
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
||||||
sharedPreferences, cache, postType, sortType, filter, nsfw, readPostList);
|
sharedPreferences, cache, postType, sortType, postFilter, filter, readPostList);
|
||||||
|
|
||||||
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||||
PostDataSource::getInitialLoadStateLiveData);
|
PostDataSource::getInitialLoadStateLiveData);
|
||||||
@ -45,12 +46,12 @@ public class PostViewModel extends ViewModel {
|
|||||||
hasPostLiveData = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
hasPostLiveData = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||||
PostDataSource::hasPostLiveData);
|
PostDataSource::hasPostLiveData);
|
||||||
|
|
||||||
nsfwLiveData = new MutableLiveData<>();
|
|
||||||
nsfwLiveData.postValue(nsfw);
|
|
||||||
sortTypeLiveData = new MutableLiveData<>();
|
sortTypeLiveData = new MutableLiveData<>();
|
||||||
sortTypeLiveData.postValue(sortType);
|
sortTypeLiveData.postValue(sortType);
|
||||||
|
postFilterLiveData = new MutableLiveData<>();
|
||||||
|
postFilterLiveData.postValue(postFilter);
|
||||||
|
|
||||||
nsfwAndSortTypeLiveData = new NSFWAndSortTypeLiveData(nsfwLiveData, sortTypeLiveData);
|
nsfwAndSortTypeLiveData = new NSFWAndSortTypeLiveData(sortTypeLiveData, postFilterLiveData);
|
||||||
|
|
||||||
PagedList.Config pagedListConfig =
|
PagedList.Config pagedListConfig =
|
||||||
(new PagedList.Config.Builder())
|
(new PagedList.Config.Builder())
|
||||||
@ -59,18 +60,19 @@ public class PostViewModel extends ViewModel {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
posts = Transformations.switchMap(nsfwAndSortTypeLiveData, nsfwAndSort -> {
|
posts = Transformations.switchMap(nsfwAndSortTypeLiveData, nsfwAndSort -> {
|
||||||
postDataSourceFactory.changeNSFWAndSortType(nsfwLiveData.getValue(), sortTypeLiveData.getValue());
|
postDataSourceFactory.changeSortTypeAndPostFilter(
|
||||||
|
sortTypeLiveData.getValue(), postFilterLiveData.getValue());
|
||||||
return (new LivePagedListBuilder(postDataSourceFactory, pagedListConfig)).build();
|
return (new LivePagedListBuilder(postDataSourceFactory, pagedListConfig)).build();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences cache, String subredditName,
|
SharedPreferences sharedPreferences, SharedPreferences cache, String subredditName,
|
||||||
int postType, SortType sortType, int filter, boolean nsfw, List<ReadPost> readPostList,
|
int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||||
List<SubredditFilter> subredditFilterList) {
|
List<ReadPost> readPostList, List<SubredditFilter> subredditFilterList) {
|
||||||
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
||||||
sharedPreferences, cache, subredditName, postType, sortType, filter, nsfw, readPostList,
|
sharedPreferences, cache, subredditName, postType, sortType, postFilter, filter,
|
||||||
subredditFilterList);
|
readPostList, subredditFilterList);
|
||||||
|
|
||||||
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||||
PostDataSource::getInitialLoadStateLiveData);
|
PostDataSource::getInitialLoadStateLiveData);
|
||||||
@ -79,12 +81,12 @@ public class PostViewModel extends ViewModel {
|
|||||||
hasPostLiveData = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
hasPostLiveData = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||||
PostDataSource::hasPostLiveData);
|
PostDataSource::hasPostLiveData);
|
||||||
|
|
||||||
nsfwLiveData = new MutableLiveData<>();
|
|
||||||
nsfwLiveData.postValue(nsfw);
|
|
||||||
sortTypeLiveData = new MutableLiveData<>();
|
sortTypeLiveData = new MutableLiveData<>();
|
||||||
sortTypeLiveData.postValue(sortType);
|
sortTypeLiveData.postValue(sortType);
|
||||||
|
postFilterLiveData = new MutableLiveData<>();
|
||||||
|
postFilterLiveData.postValue(postFilter);
|
||||||
|
|
||||||
nsfwAndSortTypeLiveData = new NSFWAndSortTypeLiveData(nsfwLiveData, sortTypeLiveData);
|
nsfwAndSortTypeLiveData = new NSFWAndSortTypeLiveData(sortTypeLiveData, postFilterLiveData);
|
||||||
|
|
||||||
PagedList.Config pagedListConfig =
|
PagedList.Config pagedListConfig =
|
||||||
(new PagedList.Config.Builder())
|
(new PagedList.Config.Builder())
|
||||||
@ -93,17 +95,19 @@ public class PostViewModel extends ViewModel {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
posts = Transformations.switchMap(nsfwAndSortTypeLiveData, nsfwAndSort -> {
|
posts = Transformations.switchMap(nsfwAndSortTypeLiveData, nsfwAndSort -> {
|
||||||
postDataSourceFactory.changeNSFWAndSortType(nsfwLiveData.getValue(), sortTypeLiveData.getValue());
|
postDataSourceFactory.changeSortTypeAndPostFilter(
|
||||||
|
sortTypeLiveData.getValue(), postFilterLiveData.getValue());
|
||||||
return (new LivePagedListBuilder(postDataSourceFactory, pagedListConfig)).build();
|
return (new LivePagedListBuilder(postDataSourceFactory, pagedListConfig)).build();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences cache, String subredditName,
|
SharedPreferences sharedPreferences, SharedPreferences cache, String subredditName,
|
||||||
int postType, SortType sortType, String where, int filter, boolean nsfw,
|
int postType, SortType sortType, PostFilter postFilter, String where, int filter,
|
||||||
List<ReadPost> readPostList) {
|
List<ReadPost> readPostList) {
|
||||||
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
||||||
sharedPreferences, cache, subredditName, postType, sortType, where, filter, nsfw, readPostList);
|
sharedPreferences, cache, subredditName, postType, sortType, postFilter, where, filter,
|
||||||
|
readPostList);
|
||||||
|
|
||||||
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||||
PostDataSource::getInitialLoadStateLiveData);
|
PostDataSource::getInitialLoadStateLiveData);
|
||||||
@ -112,12 +116,12 @@ public class PostViewModel extends ViewModel {
|
|||||||
hasPostLiveData = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
hasPostLiveData = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||||
PostDataSource::hasPostLiveData);
|
PostDataSource::hasPostLiveData);
|
||||||
|
|
||||||
nsfwLiveData = new MutableLiveData<>();
|
|
||||||
nsfwLiveData.postValue(nsfw);
|
|
||||||
sortTypeLiveData = new MutableLiveData<>();
|
sortTypeLiveData = new MutableLiveData<>();
|
||||||
sortTypeLiveData.postValue(sortType);
|
sortTypeLiveData.postValue(sortType);
|
||||||
|
postFilterLiveData = new MutableLiveData<>();
|
||||||
|
postFilterLiveData.postValue(postFilter);
|
||||||
|
|
||||||
nsfwAndSortTypeLiveData = new NSFWAndSortTypeLiveData(nsfwLiveData, sortTypeLiveData);
|
nsfwAndSortTypeLiveData = new NSFWAndSortTypeLiveData(sortTypeLiveData, postFilterLiveData);
|
||||||
|
|
||||||
PagedList.Config pagedListConfig =
|
PagedList.Config pagedListConfig =
|
||||||
(new PagedList.Config.Builder())
|
(new PagedList.Config.Builder())
|
||||||
@ -126,17 +130,19 @@ public class PostViewModel extends ViewModel {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
posts = Transformations.switchMap(nsfwAndSortTypeLiveData, nsfwAndSort -> {
|
posts = Transformations.switchMap(nsfwAndSortTypeLiveData, nsfwAndSort -> {
|
||||||
postDataSourceFactory.changeNSFWAndSortType(nsfwLiveData.getValue(), sortTypeLiveData.getValue());
|
postDataSourceFactory.changeSortTypeAndPostFilter(
|
||||||
|
sortTypeLiveData.getValue(), postFilterLiveData.getValue());
|
||||||
return (new LivePagedListBuilder(postDataSourceFactory, pagedListConfig)).build();
|
return (new LivePagedListBuilder(postDataSourceFactory, pagedListConfig)).build();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
public PostViewModel(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences cache, String subredditName,
|
SharedPreferences sharedPreferences, SharedPreferences cache, String subredditName,
|
||||||
String query, int postType, SortType sortType, int filter, boolean nsfw,
|
String query, int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||||
List<ReadPost> readPostList) {
|
List<ReadPost> readPostList) {
|
||||||
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
postDataSourceFactory = new PostDataSourceFactory(retrofit, accessToken, accountName, locale,
|
||||||
sharedPreferences, cache, subredditName, query, postType, sortType, filter, nsfw, readPostList);
|
sharedPreferences, cache, subredditName, query, postType, sortType, postFilter, filter,
|
||||||
|
readPostList);
|
||||||
|
|
||||||
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
initialLoadingState = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||||
PostDataSource::getInitialLoadStateLiveData);
|
PostDataSource::getInitialLoadStateLiveData);
|
||||||
@ -145,12 +151,12 @@ public class PostViewModel extends ViewModel {
|
|||||||
hasPostLiveData = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
hasPostLiveData = Transformations.switchMap(postDataSourceFactory.getPostDataSourceLiveData(),
|
||||||
PostDataSource::hasPostLiveData);
|
PostDataSource::hasPostLiveData);
|
||||||
|
|
||||||
nsfwLiveData = new MutableLiveData<>();
|
|
||||||
nsfwLiveData.postValue(nsfw);
|
|
||||||
sortTypeLiveData = new MutableLiveData<>();
|
sortTypeLiveData = new MutableLiveData<>();
|
||||||
sortTypeLiveData.postValue(sortType);
|
sortTypeLiveData.postValue(sortType);
|
||||||
|
postFilterLiveData = new MutableLiveData<>();
|
||||||
|
postFilterLiveData.postValue(postFilter);
|
||||||
|
|
||||||
nsfwAndSortTypeLiveData = new NSFWAndSortTypeLiveData(nsfwLiveData, sortTypeLiveData);
|
nsfwAndSortTypeLiveData = new NSFWAndSortTypeLiveData(sortTypeLiveData, postFilterLiveData);
|
||||||
|
|
||||||
PagedList.Config pagedListConfig =
|
PagedList.Config pagedListConfig =
|
||||||
(new PagedList.Config.Builder())
|
(new PagedList.Config.Builder())
|
||||||
@ -159,7 +165,8 @@ public class PostViewModel extends ViewModel {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
posts = Transformations.switchMap(nsfwAndSortTypeLiveData, nsfwAndSort -> {
|
posts = Transformations.switchMap(nsfwAndSortTypeLiveData, nsfwAndSort -> {
|
||||||
postDataSourceFactory.changeNSFWAndSortType(nsfwLiveData.getValue(), sortTypeLiveData.getValue());
|
postDataSourceFactory.changeSortTypeAndPostFilter(sortTypeLiveData.getValue(),
|
||||||
|
postFilterLiveData.getValue());
|
||||||
return (new LivePagedListBuilder(postDataSourceFactory, pagedListConfig)).build();
|
return (new LivePagedListBuilder(postDataSourceFactory, pagedListConfig)).build();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -192,8 +199,8 @@ public class PostViewModel extends ViewModel {
|
|||||||
sortTypeLiveData.postValue(sortType);
|
sortTypeLiveData.postValue(sortType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void changeNSFW(boolean nsfw) {
|
public void changePostFilter(PostFilter postFilter) {
|
||||||
nsfwLiveData.postValue(nsfw);
|
postFilterLiveData.postValue(postFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Factory extends ViewModelProvider.NewInstanceFactory {
|
public static class Factory extends ViewModelProvider.NewInstanceFactory {
|
||||||
@ -207,15 +214,16 @@ public class PostViewModel extends ViewModel {
|
|||||||
private String query;
|
private String query;
|
||||||
private int postType;
|
private int postType;
|
||||||
private SortType sortType;
|
private SortType sortType;
|
||||||
|
private PostFilter postFilter;
|
||||||
private String userWhere;
|
private String userWhere;
|
||||||
private int filter;
|
private int filter;
|
||||||
private boolean nsfw;
|
|
||||||
private List<ReadPost> readPostList;
|
private List<ReadPost> readPostList;
|
||||||
private List<SubredditFilter> subredditFilterList;
|
private List<SubredditFilter> subredditFilterList;
|
||||||
|
|
||||||
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences,
|
||||||
int postType, SortType sortType, int filter, boolean nsfw, List<ReadPost> readPostList) {
|
int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||||
|
List<ReadPost> readPostList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -224,14 +232,16 @@ public class PostViewModel extends ViewModel {
|
|||||||
this.postFeedScrolledPositionSharedPreferences = postFeedScrolledPositionSharedPreferences;
|
this.postFeedScrolledPositionSharedPreferences = postFeedScrolledPositionSharedPreferences;
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType;
|
this.sortType = sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
SharedPreferences sharedPreferences,
|
||||||
int postType, SortType sortType, int filter, boolean nsfw, List<ReadPost> readPostList) {
|
SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
||||||
|
int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||||
|
List<ReadPost> readPostList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -241,16 +251,17 @@ public class PostViewModel extends ViewModel {
|
|||||||
this.subredditName = subredditName;
|
this.subredditName = subredditName;
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType;
|
this.sortType = sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
}
|
}
|
||||||
|
|
||||||
//With subreddit filter
|
//With subreddit filter
|
||||||
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
SharedPreferences sharedPreferences,
|
||||||
int postType, SortType sortType, int filter, boolean nsfw, List<ReadPost> readPostList,
|
SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
||||||
List<SubredditFilter> subredditFilterList) {
|
int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||||
|
List<ReadPost> readPostList, List<SubredditFilter> subredditFilterList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -260,8 +271,8 @@ public class PostViewModel extends ViewModel {
|
|||||||
this.subredditName = subredditName;
|
this.subredditName = subredditName;
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType;
|
this.sortType = sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
this.subredditFilterList = subredditFilterList;
|
this.subredditFilterList = subredditFilterList;
|
||||||
}
|
}
|
||||||
@ -269,7 +280,8 @@ public class PostViewModel extends ViewModel {
|
|||||||
//User posts
|
//User posts
|
||||||
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
||||||
int postType, SortType sortType, String where, int filter, boolean nsfw, List<ReadPost> readPostList) {
|
int postType, SortType sortType, PostFilter postFilter, String where, int filter,
|
||||||
|
List<ReadPost> readPostList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -279,15 +291,16 @@ public class PostViewModel extends ViewModel {
|
|||||||
this.subredditName = subredditName;
|
this.subredditName = subredditName;
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType;
|
this.sortType = sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
userWhere = where;
|
userWhere = where;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
public Factory(Retrofit retrofit, String accessToken, String accountName, Locale locale,
|
||||||
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
SharedPreferences sharedPreferences, SharedPreferences postFeedScrolledPositionSharedPreferences, String subredditName,
|
||||||
String query, int postType, SortType sortType, int filter, boolean nsfw, List<ReadPost> readPostList) {
|
String query, int postType, SortType sortType, PostFilter postFilter, int filter,
|
||||||
|
List<ReadPost> readPostList) {
|
||||||
this.retrofit = retrofit;
|
this.retrofit = retrofit;
|
||||||
this.accessToken = accessToken;
|
this.accessToken = accessToken;
|
||||||
this.accountName = accountName;
|
this.accountName = accountName;
|
||||||
@ -298,8 +311,8 @@ public class PostViewModel extends ViewModel {
|
|||||||
this.query = query;
|
this.query = query;
|
||||||
this.postType = postType;
|
this.postType = postType;
|
||||||
this.sortType = sortType;
|
this.sortType = sortType;
|
||||||
|
this.postFilter = postFilter;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.nsfw = nsfw;
|
|
||||||
this.readPostList = readPostList;
|
this.readPostList = readPostList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,27 +321,27 @@ public class PostViewModel extends ViewModel {
|
|||||||
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
|
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
|
||||||
if (postType == PostDataSource.TYPE_FRONT_PAGE) {
|
if (postType == PostDataSource.TYPE_FRONT_PAGE) {
|
||||||
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, postType, sortType, filter, nsfw, readPostList);
|
postFeedScrolledPositionSharedPreferences, postType, sortType, postFilter, filter, readPostList);
|
||||||
} else if (postType == PostDataSource.TYPE_SEARCH) {
|
} else if (postType == PostDataSource.TYPE_SEARCH) {
|
||||||
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, subredditName, query, postType, sortType,
|
postFeedScrolledPositionSharedPreferences, subredditName, query, postType, sortType,
|
||||||
filter, nsfw, readPostList);
|
postFilter, filter, readPostList);
|
||||||
} else if (postType == PostDataSource.TYPE_SUBREDDIT || postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
} else if (postType == PostDataSource.TYPE_SUBREDDIT || postType == PostDataSource.TYPE_MULTI_REDDIT) {
|
||||||
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||||
filter, nsfw, readPostList, subredditFilterList);
|
postFilter, filter, readPostList, subredditFilterList);
|
||||||
} else {
|
} else {
|
||||||
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
return (T) new PostViewModel(retrofit, accessToken, accountName, locale, sharedPreferences,
|
||||||
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
postFeedScrolledPositionSharedPreferences, subredditName, postType, sortType,
|
||||||
userWhere, filter, nsfw, readPostList);
|
postFilter, userWhere, filter, readPostList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class NSFWAndSortTypeLiveData extends MediatorLiveData<Pair<Boolean, SortType>> {
|
private static class NSFWAndSortTypeLiveData extends MediatorLiveData<Pair<PostFilter, SortType>> {
|
||||||
public NSFWAndSortTypeLiveData(LiveData<Boolean> nsfw, LiveData<SortType> sortType) {
|
public NSFWAndSortTypeLiveData(LiveData<SortType> sortTypeLiveData, LiveData<PostFilter> postFilterLiveData) {
|
||||||
addSource(nsfw, accessToken1 -> setValue(Pair.create(accessToken1, sortType.getValue())));
|
addSource(sortTypeLiveData, sortType -> setValue(Pair.create(postFilterLiveData.getValue(), sortType)));
|
||||||
addSource(sortType, sortType1 -> setValue(Pair.create(nsfw.getValue(), sortType1)));
|
addSource(postFilterLiveData, postFilter -> setValue(Pair.create(postFilter, sortTypeLiveData.getValue())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,9 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:text="@string/bottom_sheet_post_text" />
|
android:text="@string/bottom_sheet_post_text"
|
||||||
|
android:fontFamily="?attr/font_default"
|
||||||
|
android:textSize="?attr/font_default" />
|
||||||
|
|
||||||
<com.google.android.material.checkbox.MaterialCheckBox
|
<com.google.android.material.checkbox.MaterialCheckBox
|
||||||
android:id="@+id/post_type_text_check_box_customize_post_filter_activity"
|
android:id="@+id/post_type_text_check_box_customize_post_filter_activity"
|
||||||
@ -89,7 +91,9 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:text="@string/bottom_sheet_post_link" />
|
android:text="@string/bottom_sheet_post_link"
|
||||||
|
android:fontFamily="?attr/font_default"
|
||||||
|
android:textSize="?attr/font_default" />
|
||||||
|
|
||||||
<com.google.android.material.checkbox.MaterialCheckBox
|
<com.google.android.material.checkbox.MaterialCheckBox
|
||||||
android:id="@+id/post_type_link_check_box_customize_post_filter_activity"
|
android:id="@+id/post_type_link_check_box_customize_post_filter_activity"
|
||||||
@ -117,7 +121,9 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:text="@string/bottom_sheet_post_image" />
|
android:text="@string/bottom_sheet_post_image"
|
||||||
|
android:fontFamily="?attr/font_default"
|
||||||
|
android:textSize="?attr/font_default" />
|
||||||
|
|
||||||
<com.google.android.material.checkbox.MaterialCheckBox
|
<com.google.android.material.checkbox.MaterialCheckBox
|
||||||
android:id="@+id/post_type_image_check_box_customize_post_filter_activity"
|
android:id="@+id/post_type_image_check_box_customize_post_filter_activity"
|
||||||
@ -145,7 +151,9 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:text="@string/bottom_sheet_post_video" />
|
android:text="@string/bottom_sheet_post_video"
|
||||||
|
android:fontFamily="?attr/font_default"
|
||||||
|
android:textSize="?attr/font_default" />
|
||||||
|
|
||||||
<com.google.android.material.checkbox.MaterialCheckBox
|
<com.google.android.material.checkbox.MaterialCheckBox
|
||||||
android:id="@+id/post_type_video_check_box_customize_post_filter_activity"
|
android:id="@+id/post_type_video_check_box_customize_post_filter_activity"
|
||||||
@ -289,6 +297,7 @@
|
|||||||
android:id="@+id/min_vote_text_input_edit_text_customize_post_filter_activity"
|
android:id="@+id/min_vote_text_input_edit_text_customize_post_filter_activity"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="numberSigned"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:hint="@string/min_vote_hint" />
|
android:hint="@string/min_vote_hint" />
|
||||||
@ -309,6 +318,7 @@
|
|||||||
android:id="@+id/max_vote_text_input_edit_text_customize_post_filter_activity"
|
android:id="@+id/max_vote_text_input_edit_text_customize_post_filter_activity"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="numberSigned"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:hint="@string/max_vote_hint" />
|
android:hint="@string/max_vote_hint" />
|
||||||
@ -329,6 +339,7 @@
|
|||||||
android:id="@+id/min_comments_text_input_edit_text_customize_post_filter_activity"
|
android:id="@+id/min_comments_text_input_edit_text_customize_post_filter_activity"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="numberSigned"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:hint="@string/min_comments_hint" />
|
android:hint="@string/min_comments_hint" />
|
||||||
@ -349,6 +360,7 @@
|
|||||||
android:id="@+id/max_comments_text_input_edit_text_customize_post_filter_activity"
|
android:id="@+id/max_comments_text_input_edit_text_customize_post_filter_activity"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="numberSigned"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:hint="@string/max_comments_hint" />
|
android:hint="@string/max_comments_hint" />
|
||||||
@ -369,6 +381,7 @@
|
|||||||
android:id="@+id/min_awards_text_input_edit_text_customize_post_filter_activity"
|
android:id="@+id/min_awards_text_input_edit_text_customize_post_filter_activity"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="numberSigned"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:hint="@string/min_awards_hint" />
|
android:hint="@string/min_awards_hint" />
|
||||||
@ -389,6 +402,7 @@
|
|||||||
android:id="@+id/max_awards_text_input_edit_text_customize_post_filter_activity"
|
android:id="@+id/max_awards_text_input_edit_text_customize_post_filter_activity"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="numberSigned"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:hint="@string/max_awards_hint" />
|
android:hint="@string/max_awards_hint" />
|
||||||
|
Loading…
Reference in New Issue
Block a user