mirror of
https://github.com/Docile-Alligator/Infinity-For-Reddit.git
synced 2026-04-02 04:57:47 +00:00
Save post in the anonymous mode in PostDetailRecyclerViewAdapter.
This commit is contained in:
@ -118,6 +118,9 @@ import ml.docilealligator.infinityforreddit.markdown.MarkdownUtils;
|
||||
import ml.docilealligator.infinityforreddit.post.FetchStreamableVideo;
|
||||
import ml.docilealligator.infinityforreddit.post.Post;
|
||||
import ml.docilealligator.infinityforreddit.post.PostType;
|
||||
import ml.docilealligator.infinityforreddit.readpost.ReadPostModification;
|
||||
import ml.docilealligator.infinityforreddit.readpost.ReadPostType;
|
||||
import ml.docilealligator.infinityforreddit.readpost.ReadPostsUtils;
|
||||
import ml.docilealligator.infinityforreddit.thing.SaveThing;
|
||||
import ml.docilealligator.infinityforreddit.thing.StreamableVideo;
|
||||
import ml.docilealligator.infinityforreddit.thing.VoteThing;
|
||||
@ -154,6 +157,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
private final Provider<StreamableAPI> mStreamableApiProvider;
|
||||
private final RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||
private final SharedPreferences mCurrentAccountSharedPreferences;
|
||||
private final SharedPreferences mPostHistorySharedPreferences;
|
||||
private final RequestManager mGlide;
|
||||
private final SaveMemoryCenterInisdeDownsampleStrategy mSaveMemoryCenterInsideDownsampleStrategy;
|
||||
private final EmoteCloseBracketInlineProcessor mEmoteCloseBracketInlineProcessor;
|
||||
@ -242,6 +246,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
SharedPreferences currentAccountSharedPreferences,
|
||||
SharedPreferences nsfwAndSpoilerSharedPreferences,
|
||||
SharedPreferences postDetailsSharedPreferences,
|
||||
SharedPreferences postHistorySharedPreferences,
|
||||
ExoCreator exoCreator,
|
||||
PostDetailRecyclerViewAdapterCallback postDetailRecyclerViewAdapterCallback) {
|
||||
mActivity = activity;
|
||||
@ -313,6 +318,8 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
mHideTheNumberOfVotes = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_VOTES, false);
|
||||
mHideTheNumberOfComments = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_COMMENTS, false);
|
||||
|
||||
mPostHistorySharedPreferences = postHistorySharedPreferences;
|
||||
|
||||
mPostDetailRecyclerViewAdapterCallback = postDetailRecyclerViewAdapterCallback;
|
||||
mScale = resources.getDisplayMetrics().density;
|
||||
|
||||
@ -1577,51 +1584,63 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
}
|
||||
|
||||
this.saveButton.setOnClickListener(view -> {
|
||||
if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
|
||||
Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
if (mPost.isSaved()) {
|
||||
this.saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
SaveThing.unsaveThing(mOauthRetrofit, mAccessToken, mPost.getFullName(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
mPost.setSaved(false);
|
||||
PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
Toast.makeText(mActivity, R.string.post_unsaved_success, Toast.LENGTH_SHORT).show();
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
if (Account.ANONYMOUS_ACCOUNT.equals(mAccountName)) {
|
||||
ReadPostModification.deleteReadPost(mRedditDataRoomDatabase, mExecutor, mActivity.accountName,
|
||||
mPost.getId(), ReadPostType.ANONYMOUS_SAVED_POSTS);
|
||||
mPost.setSaved(false);
|
||||
Toast.makeText(mActivity, R.string.post_unsaved_success, Toast.LENGTH_SHORT).show();
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
} else {
|
||||
SaveThing.unsaveThing(mOauthRetrofit, mAccessToken, mPost.getFullName(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
mPost.setSaved(false);
|
||||
PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
Toast.makeText(mActivity, R.string.post_unsaved_success, Toast.LENGTH_SHORT).show();
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
mPost.setSaved(true);
|
||||
PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
Toast.makeText(mActivity, R.string.post_unsaved_failed, Toast.LENGTH_SHORT).show();
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void failed() {
|
||||
mPost.setSaved(true);
|
||||
PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
Toast.makeText(mActivity, R.string.post_unsaved_failed, Toast.LENGTH_SHORT).show();
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
this.saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
SaveThing.saveThing(mOauthRetrofit, mAccessToken, mPost.getFullName(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
mPost.setSaved(true);
|
||||
PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
Toast.makeText(mActivity, R.string.post_saved_success, Toast.LENGTH_SHORT).show();
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
if (Account.ANONYMOUS_ACCOUNT.equals(mAccountName)) {
|
||||
ReadPostModification.insertReadPost(mRedditDataRoomDatabase, mExecutor, mActivity.accountName,
|
||||
mPost.getId(), ReadPostType.ANONYMOUS_SAVED_POSTS,
|
||||
ReadPostsUtils.GetReadPostsLimit(mActivity.accountName, mPostHistorySharedPreferences));
|
||||
mPost.setSaved(true);
|
||||
Toast.makeText(mActivity, R.string.post_saved_success, Toast.LENGTH_SHORT).show();
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
} else {
|
||||
SaveThing.saveThing(mOauthRetrofit, mAccessToken, mPost.getFullName(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
mPost.setSaved(true);
|
||||
PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
Toast.makeText(mActivity, R.string.post_saved_success, Toast.LENGTH_SHORT).show();
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
mPost.setSaved(false);
|
||||
PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
Toast.makeText(mActivity, R.string.post_saved_failed, Toast.LENGTH_SHORT).show();
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void failed() {
|
||||
mPost.setSaved(false);
|
||||
PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
Toast.makeText(mActivity, R.string.post_saved_failed, Toast.LENGTH_SHORT).show();
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -612,9 +612,11 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
mPostAdapter = new PostDetailRecyclerViewAdapter(mActivity,
|
||||
this, mExecutor, mCustomThemeWrapper, mOauthRetrofit, mRetrofit,
|
||||
mRedgifsRetrofit, mStreamableApiProvider, mRedditDataRoomDatabase, mGlide,
|
||||
mSeparatePostAndComments, mActivity.accessToken, mActivity.accountName, mPost, mLocale,
|
||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostDetailsSharedPreferences,
|
||||
mExoCreator, post -> EventBus.getDefault().post(new PostUpdateEventToPostList(mPost, postListPosition)));
|
||||
mSeparatePostAndComments, mActivity.accessToken, mActivity.accountName, mPost,
|
||||
mLocale, mSharedPreferences, mCurrentAccountSharedPreferences,
|
||||
mNsfwAndSpoilerSharedPreferences, mPostDetailsSharedPreferences,
|
||||
mPostHistorySharedPreferences, mExoCreator,
|
||||
post -> EventBus.getDefault().post(new PostUpdateEventToPostList(mPost, postListPosition)));
|
||||
mCommentsAdapter = new CommentsRecyclerViewAdapter(mActivity,
|
||||
this, mCustomThemeWrapper, mExecutor, mRetrofit, mOauthRetrofit,
|
||||
mActivity.accessToken, mActivity.accountName, mPost, mLocale, mSingleCommentId,
|
||||
@ -1359,7 +1361,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
mStreamableApiProvider, mRedditDataRoomDatabase, mGlide, mSeparatePostAndComments,
|
||||
mActivity.accessToken, mActivity.accountName, mPost, mLocale, mSharedPreferences,
|
||||
mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences,
|
||||
mPostDetailsSharedPreferences, mExoCreator,
|
||||
mPostDetailsSharedPreferences, mPostHistorySharedPreferences, mExoCreator,
|
||||
post1 -> EventBus.getDefault().post(new PostUpdateEventToPostList(mPost, postListPosition)));
|
||||
|
||||
mCommentsAdapter = new CommentsRecyclerViewAdapter(mActivity,
|
||||
|
||||
Reference in New Issue
Block a user