diff --git a/app/src/main/java/com/keylesspalace/tusky/adapter/StatusBaseViewHolder.java b/app/src/main/java/com/keylesspalace/tusky/adapter/StatusBaseViewHolder.java index 49e70fc71..5a4dbe8e3 100644 --- a/app/src/main/java/com/keylesspalace/tusky/adapter/StatusBaseViewHolder.java +++ b/app/src/main/java/com/keylesspalace/tusky/adapter/StatusBaseViewHolder.java @@ -725,6 +725,7 @@ public abstract class StatusBaseViewHolder extends RecyclerView.ViewHolder { listener.onReblog(!buttonState, position); if(!buttonState) { reblogButton.playAnimation(); + reblogButton.setChecked(true); } return true; }); @@ -746,6 +747,7 @@ public abstract class StatusBaseViewHolder extends RecyclerView.ViewHolder { listener.onFavourite(!buttonState, position); if(!buttonState) { favouriteButton.playAnimation(); + favouriteButton.setChecked(true); } return true; }); diff --git a/app/src/main/java/com/keylesspalace/tusky/usecase/TimelineCases.kt b/app/src/main/java/com/keylesspalace/tusky/usecase/TimelineCases.kt index 85a43a9e8..5239578a0 100644 --- a/app/src/main/java/com/keylesspalace/tusky/usecase/TimelineCases.kt +++ b/app/src/main/java/com/keylesspalace/tusky/usecase/TimelineCases.kt @@ -51,7 +51,13 @@ class TimelineCases @Inject constructor( } else { mastodonApi.unreblogStatus(statusId) }.onSuccess { status -> - eventHub.dispatch(StatusChangedEvent(status)) + if (status.reblog != null) { + // when reblogging, the Mastodon Api does not return the reblogged status directly + // but the newly created status with reblog set to the reblogged status + eventHub.dispatch(StatusChangedEvent(status.reblog)) + } else { + eventHub.dispatch(StatusChangedEvent(status)) + } } }