From cc64a1b6a2fdc9ff7321934869c7771cc28c3e27 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Sat, 31 Aug 2024 17:47:16 +0200 Subject: [PATCH] fix(HashtagTimeline): update follow menu icon Fixes an issue, where the menu follow icon was not correctly updated, and would always show the follow state. --- .../android/fragments/HashtagTimelineFragment.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/HashtagTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/HashtagTimelineFragment.java index a982737dc6..b5bf46d827 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/HashtagTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HashtagTimelineFragment.java @@ -105,6 +105,11 @@ private void updateMuteState(boolean newMute) { muteMenuItem.setIcon(newMute ? R.drawable.ic_fluent_speaker_2_24_regular : R.drawable.ic_fluent_speaker_off_24_regular); } + private void updateFollowState(boolean following) { + followMenuItem.setTitle(getString(following ? R.string.unfollow_user : R.string.follow_user, "#"+hashtagName)); + followMenuItem.setIcon(following ? R.drawable.ic_fluent_person_delete_24_filled : R.drawable.ic_fluent_person_add_24_regular); + } + private void showMuteDialog(boolean mute) { UiUtils.showConfirmationAlert(getContext(), mute ? R.string.mo_unmute_hashtag : R.string.mo_mute_hashtag, @@ -148,8 +153,6 @@ public void onError(ErrorResponse error){ }).exec(accountID); } - - @Override protected TimelineDefinition makeTimelineDefinition() { return TimelineDefinition.ofHashtag(hashtagName); @@ -292,6 +295,7 @@ private void createOptionsMenu(){ followMenuItem=optionsMenu.findItem(R.id.follow_hashtag); pinMenuItem=optionsMenu.findItem(R.id.pin); followMenuItem.setVisible(toolbarContentVisible); + updateFollowState(hashtag.following); // pinMenuItem.setShowAsAction(toolbarContentVisible ? MenuItem.SHOW_AS_ACTION_NEVER : MenuItem.SHOW_AS_ACTION_ALWAYS); super.updatePinButton(pinMenuItem); @@ -388,8 +392,7 @@ private void updateHeader(){ followButton.setTextVisible(true); followProgress.setVisibility(View.GONE); if(followMenuItem!=null){ - followMenuItem.setTitle(getString(hashtag.following ? R.string.unfollow_user : R.string.follow_user, "#"+hashtagName)); - followMenuItem.setIcon(hashtag.following ? R.drawable.ic_fluent_person_delete_24_filled : R.drawable.ic_fluent_person_add_24_regular); + updateFollowState(hashtag.following); } if(muteMenuItem!=null){ muteMenuItem.setTitle(getString(filter.isPresent() ? R.string.unmute_user : R.string.mute_user, "#" + hashtag)); @@ -429,6 +432,7 @@ public void onSuccess(Hashtag result){ return; hashtag=result; updateHeader(); + updateFollowState(result.following); followRequestRunning=false; }