Loading app/src/main/java/app/fedilab/android/activities/ProfileActivity.java +10 −2 Original line number Diff line number Diff line Loading @@ -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); } Loading app/src/main/java/app/fedilab/android/client/endpoints/MastodonTimelinesService.java +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java +12 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } /** Loading app/src/main/res/values/strings.xml +1 −0 Original line number Diff line number Diff line Loading @@ -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> No newline at end of file Loading
app/src/main/java/app/fedilab/android/activities/ProfileActivity.java +10 −2 Original line number Diff line number Diff line Loading @@ -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); } Loading
app/src/main/java/app/fedilab/android/client/endpoints/MastodonTimelinesService.java +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java +12 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } /** Loading
app/src/main/res/values/strings.xml +1 −0 Original line number Diff line number Diff line Loading @@ -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> No newline at end of file