diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java index 37f4c264..12f0fb38 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java @@ -59,6 +59,7 @@ import ml.docilealligator.infinityforreddit.events.ChangeDefaultPostLayoutEvent; import ml.docilealligator.infinityforreddit.events.ChangeNetworkStatusEvent; import ml.docilealligator.infinityforreddit.events.ChangeSavePostFeedScrolledPositionEvent; import ml.docilealligator.infinityforreddit.events.NeedForPostListFromPostFragmentEvent; +import ml.docilealligator.infinityforreddit.events.PostUpdateEventToPostDetailFragment; import ml.docilealligator.infinityforreddit.events.PostUpdateEventToPostList; import ml.docilealligator.infinityforreddit.events.ProvidePostListToViewPostDetailActivityEvent; import ml.docilealligator.infinityforreddit.post.Post; @@ -882,6 +883,7 @@ public class PostFragment extends PostFragmentBase implements FragmentCommunicat mPostViewModel.moderationEventLiveData.observe(getViewLifecycleOwner(), moderationEvent -> { EventBus.getDefault().post(new PostUpdateEventToPostList(moderationEvent.getPost(), moderationEvent.getPosition())); + EventBus.getDefault().post(new PostUpdateEventToPostDetailFragment(moderationEvent.getPost())); Toast.makeText(activity, moderationEvent.getToastMessageResId(), Toast.LENGTH_SHORT).show(); }); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragmentBase.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragmentBase.java index ad54adcc..e54adb02 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragmentBase.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragmentBase.java @@ -623,6 +623,10 @@ public abstract class PostFragmentBase extends Fragment { post.setFlair(event.post.getFlair()); post.setSaved(event.post.isSaved()); post.setIsStickied(event.post.isStickied()); + post.setApproved(event.post.isApproved()); + post.setApprovedAtUTC(event.post.getApprovedAtUTC()); + post.setApprovedBy(event.post.getApprovedBy()); + post.setRemoved(event.post.isRemoved(), event.post.isSpam()); post.setIsLocked(event.post.isLocked()); post.setIsModerator(event.post.isModerator()); if (event.post.isRead()) { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java index 34d27035..e28fea7c 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java @@ -1944,6 +1944,15 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic if (mPost.getId().equals(event.post.getId())) { mPost.setVoteType(event.post.getVoteType()); mPost.setSaved(event.post.isSaved()); + mPost.setNSFW(event.post.isNSFW()); + mPost.setSpoiler(event.post.isSpoiler()); + mPost.setIsStickied(event.post.isStickied()); + mPost.setApproved(event.post.isApproved()); + mPost.setApprovedAtUTC(event.post.getApprovedAtUTC()); + mPost.setApprovedBy(event.post.getApprovedBy()); + mPost.setRemoved(event.post.isRemoved(), event.post.isSpam()); + mPost.setIsLocked(event.post.isLocked()); + mPost.setIsModerator(event.post.isModerator()); if (mMenu != null) { if (event.post.isSaved()) { mMenu.findItem(R.id.action_save_view_post_detail_fragment).setIcon(mSavedIcon); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostViewModel.java b/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostViewModel.java index 02b0b2d2..370087b6 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostViewModel.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostViewModel.java @@ -501,6 +501,10 @@ public class PostViewModel extends ViewModel { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { if (response.isSuccessful()) { + post.setApproved(true); + post.setApprovedBy(accountName); + post.setApprovedAtUTC(System.currentTimeMillis()); + post.setRemoved(false, false); moderationEventLiveData.postValue(new PostModerationEvent.Approved(post, position)); } else { moderationEventLiveData.postValue(new PostModerationEvent.ApproveFailed(post, position)); @@ -522,6 +526,10 @@ public class PostViewModel extends ViewModel { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { if (response.isSuccessful()) { + post.setApproved(false); + post.setApprovedBy(null); + post.setApprovedAtUTC(0); + post.setRemoved(true, isSpam); moderationEventLiveData.postValue(isSpam ? new PostModerationEvent.MarkedAsSpam(post, position): new PostModerationEvent.Removed(post, position)); } else { moderationEventLiveData.postValue(isSpam ? new PostModerationEvent.MarkAsSpamFailed(post, position) : new PostModerationEvent.RemoveFailed(post, position)); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/viewmodels/ViewPostDetailFragmentViewModel.kt b/app/src/main/java/ml/docilealligator/infinityforreddit/viewmodels/ViewPostDetailFragmentViewModel.kt index 265e8382..07dc25a9 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/viewmodels/ViewPostDetailFragmentViewModel.kt +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/viewmodels/ViewPostDetailFragmentViewModel.kt @@ -58,6 +58,10 @@ class ViewPostDetailFragmentViewModel( .enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { + post.isApproved = true + post.approvedBy = accountName + post.approvedAtUTC = System.currentTimeMillis() + post.setRemoved(false, false) postModerationEventLiveData.postValue(Approved(post, position)) } else { postModerationEventLiveData.postValue(ApproveFailed(post, position)) @@ -79,6 +83,10 @@ class ViewPostDetailFragmentViewModel( .enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { + post.isApproved = false + post.approvedBy = null + post.approvedAtUTC = 0 + post.setRemoved(true, isSpam) postModerationEventLiveData.postValue( if (isSpam) MarkedAsSpam( post,