Fix issue #482 - Warn when the app fails to add account into a list

This commit is contained in:
Thomas 2022-11-19 11:58:58 +01:00
parent 26bc658bee
commit 9298f22b5d
4 changed files with 24 additions and 6 deletions

View File

@ -857,14 +857,22 @@ public class ProfileActivity extends BaseActivity {
relationship = newRelationShip;
updateAccount();
if (isChecked) {
timelinesVM.addAccountsList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, listsId[which], userIds);
timelinesVM.addAccountsList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, listsId[which], userIds).observe(ProfileActivity.this, success -> {
if (!success) {
Toasty.error(ProfileActivity.this, getString(R.string.toast_error_add_to_list), Toast.LENGTH_LONG).show();
}
});
} else {
timelinesVM.deleteAccountsList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, listsId[which], userIds);
}
});
} else {
if (isChecked) {
timelinesVM.addAccountsList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, listsId[which], userIds);
timelinesVM.addAccountsList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, listsId[which], userIds).observe(ProfileActivity.this, success -> {
if (!success) {
Toasty.error(ProfileActivity.this, getString(R.string.toast_error_add_to_list), Toast.LENGTH_LONG).show();
}
});
} else {
timelinesVM.deleteAccountsList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, listsId[which], userIds);
}

View File

@ -179,7 +179,7 @@ public interface MastodonTimelinesService {
//Add account in a list
@FormUrlEncoded
@POST("lists/{id}/accounts")
Call<Void> addAccountsList(
Call<Boolean> addAccountsList(
@Header("Authorization") String token,
@Path("id") String id,
@Field("account_ids[]") List<String> account_ids

View File

@ -74,6 +74,7 @@ public class TimelinesVM extends AndroidViewModel {
private MutableLiveData<List<Account>> accountListMutableLiveData;
private MutableLiveData<Boolean> booleanMutableLiveData;
private MutableLiveData<List<StatusDraft>> statusDraftListMutableLiveData;
private MutableLiveData<Status> statusMutableLiveData;
private MutableLiveData<Statuses> statusesMutableLiveData;
@ -838,18 +839,26 @@ public class TimelinesVM extends AndroidViewModel {
* @param listId ID of the list
* @param accountIds Array of account IDs to add to the list.
*/
public void addAccountsList(@NonNull String instance, String token, @NonNull String listId, @NonNull List<String> accountIds) {
public LiveData<Boolean> addAccountsList(@NonNull String instance, String token, @NonNull String listId, @NonNull List<String> accountIds) {
MastodonTimelinesService mastodonTimelinesService = init(instance);
booleanMutableLiveData = new MutableLiveData<>();
new Thread(() -> {
Call<Void> addAccountsListCall = mastodonTimelinesService.addAccountsList(token, listId, accountIds);
Call<Boolean> addAccountsListCall = mastodonTimelinesService.addAccountsList(token, listId, accountIds);
Boolean reply = null;
if (addAccountsListCall != null) {
try {
addAccountsListCall.execute();
Response<Boolean> response = addAccountsListCall.execute();
reply = response.isSuccessful();
} catch (Exception e) {
e.printStackTrace();
}
}
Handler mainHandler = new Handler(Looper.getMainLooper());
Boolean finalReply = reply;
Runnable myRunnable = () -> booleanMutableLiveData.setValue(finalReply);
mainHandler.post(myRunnable);
}).start();
return booleanMutableLiveData;
}
/**

View File

@ -1898,4 +1898,5 @@
<string name="add_keyword">Add keyword</string>
<string name="show_anyway">Show anyway</string>
<string name="filtered_by">Filtered: %1$s</string>
<string name="toast_error_add_to_list">The app failed to add the account into the list!</string>
</resources>