From 1bdfc4f6a6c8a90b127e9ef32ec09076983e82ba Mon Sep 17 00:00:00 2001 From: tom79 Date: Tue, 9 Jul 2019 18:08:04 +0200 Subject: [PATCH] Fix issue #231 --- .../android/drawers/StatusListAdapter.java | 20 ++++++++++++++++++- .../fragments/DisplayStatusFragment.java | 9 +++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java index 1596d5dda..0069b89b2 100644 --- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java @@ -96,6 +96,8 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.varunest.sparkbutton.SparkButton; +import org.json.JSONException; +import org.json.JSONObject; import java.util.ArrayList; import java.util.Calendar; @@ -3735,13 +3737,29 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct } Toasty.success(context, context.getString(R.string.timed_mute_date, status.getAccount().getAcct(), Helper.dateToString(date_mute)), Toast.LENGTH_LONG).show(); alertDialog.dismiss(); - notifyDataSetChanged(); + send_delete_statuses(targeted_id); } } }); alertDialog.show(); } + private void send_delete_statuses(String targetedId){ + //Delete in the current timeline + List statusesToRemove = new ArrayList<>(); + for(Status status: statuses){ + if( status.getAccount().getId().equals(targetedId)) + statusesToRemove.add(status); + } + statuses.removeAll(statusesToRemove); + statusListAdapter.notifyDataSetChanged(); + //Send an intent to delete in every timelines + Bundle b = new Bundle(); + b.putString("receive_action", targetedId); + Intent intentBC = new Intent(Helper.RECEIVE_ACTION); + intentBC.putExtras(b); + } + private void scheduleBoost(Status status){ final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); diff --git a/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java b/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java index bb58de374..bf9947ff7 100644 --- a/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java @@ -249,8 +249,17 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn Bundle b = intent.getExtras(); assert b != null; Status status = b.getParcelable("status"); + String delete_statuses_from = b.getString("delete_statuses_for_id", null); if( status != null && statusListAdapter != null) { statusListAdapter.notifyStatusWithActionChanged(status); + }else if( delete_statuses_from != null){ + List statusesToRemove = new ArrayList<>(); + for(Status status_temp: statuses){ + if( status_temp.getAccount().getId().equals(delete_statuses_from)) + statusesToRemove.add(status); + } + statuses.removeAll(statusesToRemove); + statusListAdapter.notifyDataSetChanged(); } } };