diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java index 99e61436a..21c85ea68 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java @@ -636,6 +636,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList menu.findItem(R.id.block).setTitle(getString(relationship.blocking ? R.string.unblock_user : R.string.block_user, account.getShortUsername())); menu.findItem(R.id.report).setTitle(getString(R.string.report_user, account.getShortUsername())); menu.findItem(R.id.manage_user_lists).setVisible(relationship.following); + menu.findItem(R.id.soft_block).setVisible(relationship.followedBy && !relationship.following); if(relationship.following) { MenuItem hideBoosts = menu.findItem(R.id.hide_boosts); hideBoosts.setTitle(getString(relationship.showingReblogs ? R.string.hide_boosts_from_user : R.string.show_boosts_from_user, account.getShortUsername())); @@ -663,6 +664,8 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList confirmToggleMuted(); }else if(id==R.id.block){ confirmToggleBlocked(); + }else if(id==R.id.soft_block){ + confirmSoftBlockUser(); }else if(id==R.id.report){ Bundle args=new Bundle(); args.putString("account", accountID); @@ -973,6 +976,10 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList UiUtils.confirmToggleBlockUser(getActivity(), accountID, account, relationship.blocking, this::updateRelationship); } + private void confirmSoftBlockUser(){ + UiUtils.confirmSoftBlockUser(getActivity(), accountID, account, this::updateRelationship); + } + private void updateRelationship(Relationship r){ relationship=r; updateRelationship(); diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/account_list/BaseAccountListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/account_list/BaseAccountListFragment.java index 87f04f443..b8dd2017b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/account_list/BaseAccountListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/account_list/BaseAccountListFragment.java @@ -294,6 +294,7 @@ public abstract class BaseAccountListFragment extends BaseRecyclerFragment resultCallback){ + showConfirmationAlert(activity, + activity.getString(R.string.sk_remove_follower), + activity.getString(R.string.sk_remove_follower_confirm, account.displayName), + activity.getString(R.string.sk_do_remove_follower), + R.drawable.ic_fluent_person_delete_24_regular, + () -> new SetAccountBlocked(account.id, true).setCallback(new Callback<>() { + @Override + public void onSuccess(Relationship relationship) { + new SetAccountBlocked(account.id, false).setCallback(new Callback<>() { + @Override + public void onSuccess(Relationship relationship) { + Toast.makeText(activity, R.string.sk_remove_follower_success, Toast.LENGTH_SHORT).show(); + resultCallback.accept(relationship); + } + + @Override + public void onError(ErrorResponse error) { + error.showToast(activity); + resultCallback.accept(relationship); + } + }).exec(accountID); + } + + @Override + public void onError(ErrorResponse error) { + error.showToast(activity); + } + }).exec(accountID) + ); + } + public static void confirmToggleBlockDomain(Activity activity, String accountID, String domain, boolean currentlyBlocked, Runnable resultCallback){ showConfirmationAlert(activity, activity.getString(currentlyBlocked ? R.string.confirm_unblock_domain_title : R.string.confirm_block_domain_title), activity.getString(currentlyBlocked ? R.string.confirm_unblock : R.string.confirm_block, domain), diff --git a/mastodon/src/main/res/menu/profile.xml b/mastodon/src/main/res/menu/profile.xml index abf7b0e03..b857b148f 100644 --- a/mastodon/src/main/res/menu/profile.xml +++ b/mastodon/src/main/res/menu/profile.xml @@ -4,6 +4,7 @@ + diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml index ae6811678..86ec76cad 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -159,6 +159,10 @@ Local Federation Type something to start searching + Remove as follower + Remove %s as a follower by blocking and immediately unblocking them? + Remove + Successfully removed follower Add new poll option