Fix inbox count not updating after reading a message.

This commit is contained in:
Docile-Alligator 2022-05-14 19:26:26 +08:00
parent 4f7d8321fc
commit 67d30b90e4
2 changed files with 10 additions and 2 deletions

View File

@ -17,6 +17,8 @@ import androidx.paging.PagedListAdapter;
import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.RecyclerView;
import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
import butterknife.BindView;
@ -40,6 +42,7 @@ import ml.docilealligator.infinityforreddit.activities.LinkResolverActivity;
import ml.docilealligator.infinityforreddit.activities.ViewPrivateMessagesActivity;
import ml.docilealligator.infinityforreddit.activities.ViewUserDetailActivity;
import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
import ml.docilealligator.infinityforreddit.events.ChangeInboxCountEvent;
import ml.docilealligator.infinityforreddit.markdown.SpoilerParserPlugin;
import ml.docilealligator.infinityforreddit.markdown.SuperscriptInlineProcessor;
import ml.docilealligator.infinityforreddit.message.FetchMessage;
@ -171,7 +174,7 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl
if (markAllMessagesAsRead) {
message.setNew(false);
} else {
((DataViewHolder) holder).itemView.setBackgroundColor(
holder.itemView.setBackgroundColor(
mUnreadMessageBackgroundColor);
}
}
@ -209,6 +212,7 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl
new ReadMessage.ReadMessageListener() {
@Override
public void readSuccess() {
EventBus.getDefault().post(new ChangeInboxCountEvent(-1));
}
@Override

View File

@ -147,7 +147,11 @@ public class AccountSectionRecyclerViewAdapter extends RecyclerView.Adapter<Recy
}
public void setInboxCount(int inboxCount) {
this.inboxCount = inboxCount;
if (inboxCount < 0) {
this.inboxCount = Math.max(0, this.inboxCount + inboxCount);
} else {
this.inboxCount = inboxCount;
}
notifyDataSetChanged();
}