diff --git a/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java b/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java index 0d6219316..1ab34d21c 100644 --- a/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java @@ -150,9 +150,7 @@ public class MastodonListActivity extends BaseBarActivity implements MastodonLis timelinesVM.getAccountsInList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, mastodonList.id, null, null, 0) .observe(MastodonListActivity.this, accounts -> { if (accounts != null && accounts.size() > 0) { - for (Account account : accounts) { - accountsVM.muteHome(MainActivity.currentAccount, account); - } + accountsVM.muteAccountsHome(MainActivity.currentAccount, accounts); } }); dialog.dismiss(); diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java index b8032f6a0..cd55af296 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java @@ -813,7 +813,6 @@ public class AccountsVM extends AndroidViewModel { public LiveData muteHome(@NonNull BaseAccount forAccount, @NonNull Account target) { accountMutableLiveData = new MutableLiveData<>(); new Thread(() -> { - try { new MutedAccounts(getApplication().getApplicationContext()).muteAccount(forAccount, target); addMutedAccount(target); @@ -828,6 +827,32 @@ public class AccountsVM extends AndroidViewModel { return accountMutableLiveData; } + + /** + * Mute the given account in db + * + * @return {@link LiveData} containing the {@link Account} to the given account + */ + public LiveData> muteAccountsHome(@NonNull BaseAccount forAccount, @NonNull List targets) { + accountListMutableLiveData = new MutableLiveData<>(); + new Thread(() -> { + try { + for (Account target : targets) { + new MutedAccounts(getApplication().getApplicationContext()).muteAccount(forAccount, target); + sendAction(getApplication().getApplicationContext(), Helper.ARG_STATUS_ACCOUNT_ID_DELETED, null, target.id); + addMutedAccount(target); + } + } catch (DBException e) { + e.printStackTrace(); + } + Handler mainHandler = new Handler(Looper.getMainLooper()); + Runnable myRunnable = () -> accountListMutableLiveData.setValue(targets); + mainHandler.post(myRunnable); + }).start(); + return accountListMutableLiveData; + } + + /** * Unmute the given account in db *