diff --git a/mastodon/src/main/java/org/joinmastodon/android/events/StatusCountersUpdatedEvent.java b/mastodon/src/main/java/org/joinmastodon/android/events/StatusCountersUpdatedEvent.java index 1b006b09c..2e26e9b50 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/events/StatusCountersUpdatedEvent.java +++ b/mastodon/src/main/java/org/joinmastodon/android/events/StatusCountersUpdatedEvent.java @@ -5,7 +5,7 @@ import org.joinmastodon.android.model.Status; public class StatusCountersUpdatedEvent{ public String id; public int favorites, reblogs, replies; - public boolean favorited, reblogged; + public boolean favorited, reblogged, pinned; public StatusCountersUpdatedEvent(Status s){ id=s.id; @@ -14,5 +14,6 @@ public class StatusCountersUpdatedEvent{ replies=s.repliesCount; favorited=s.favourited; reblogged=s.reblogged; + pinned=s.pinned; } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/AccountTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/AccountTimelineFragment.java index fe1c004cd..ea9abbdd1 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/AccountTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/AccountTimelineFragment.java @@ -78,6 +78,7 @@ public class AccountTimelineFragment extends StatusListFragment{ protected void onStatusCreated(StatusCreatedEvent ev){ if(!AccountSessionManager.getInstance().isSelf(accountID, ev.status.account)) return; + if(filter==GetAccountStatuses.Filter.PINNED) return; if(filter==GetAccountStatuses.Filter.DEFAULT){ // Keep replies to self, discard all other replies if(ev.status.inReplyToAccountId!=null && !ev.status.inReplyToAccountId.equals(AccountSessionManager.getInstance().getAccount(accountID).self.id)) diff --git a/mastodon/src/main/java/org/joinmastodon/android/model/Status.java b/mastodon/src/main/java/org/joinmastodon/android/model/Status.java index aa6459dfe..f2f0542b1 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/model/Status.java +++ b/mastodon/src/main/java/org/joinmastodon/android/model/Status.java @@ -126,6 +126,7 @@ public class Status extends BaseModel implements DisplayItemsParent{ repliesCount=ev.replies; favourited=ev.favorited; reblogged=ev.reblogged; + pinned=ev.pinned; } public Status getContentStatus(){ diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java index b0f332063..3cffaa4cc 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java @@ -43,6 +43,7 @@ import org.joinmastodon.android.api.requests.statuses.DeleteStatus; import org.joinmastodon.android.api.requests.statuses.GetStatusByID; import org.joinmastodon.android.api.requests.statuses.SetStatusPinned; import org.joinmastodon.android.api.session.AccountSessionManager; +import org.joinmastodon.android.events.StatusCountersUpdatedEvent; import org.joinmastodon.android.events.StatusDeletedEvent; import org.joinmastodon.android.events.StatusUnpinnedEvent; import org.joinmastodon.android.fragments.HashtagTimelineFragment; @@ -361,6 +362,7 @@ public class UiUtils{ @Override public void onSuccess(Status result) { resultCallback.accept(result); + E.post(new StatusCountersUpdatedEvent(result)); if (!result.pinned) E.post(new StatusUnpinnedEvent(status.id, accountID)); }