From 8c7d0efb8c0b6aeec5183304a7398ab451d29e49 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 21 Aug 2018 16:29:23 +0000 Subject: [PATCH] Allow deleting operations --- .../eu/faircode/email/AdapterOperation.java | 34 +++++++++++++++++-- .../eu/faircode/email/FragmentOperations.java | 2 +- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterOperation.java b/app/src/main/java/eu/faircode/email/AdapterOperation.java index 52a07ddcc5..211d84518b 100644 --- a/app/src/main/java/eu/faircode/email/AdapterOperation.java +++ b/app/src/main/java/eu/faircode/email/AdapterOperation.java @@ -21,6 +21,7 @@ package eu.faircode.email; import android.content.Context; import android.content.Intent; +import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -34,6 +35,7 @@ import java.util.Date; import java.util.List; import androidx.annotation.NonNull; +import androidx.lifecycle.LifecycleOwner; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.recyclerview.widget.DiffUtil; import androidx.recyclerview.widget.ListUpdateCallback; @@ -41,13 +43,14 @@ import androidx.recyclerview.widget.RecyclerView; public class AdapterOperation extends RecyclerView.Adapter { private Context context; + private LifecycleOwner owner; private List all = new ArrayList<>(); private List filtered = new ArrayList<>(); private DateFormat df = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.LONG); - public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener { View itemView; TextView tvMessage; TextView tvName; @@ -64,10 +67,12 @@ public class AdapterOperation extends RecyclerView.Adapter() { + @Override + protected Void onLoad(Context context, Bundle args) throws Throwable { + DB.getInstance(context).operation().deleteOperation(args.getLong("id")); + EntityOperation.process(context); + return null; + } + }.load(context, owner, args); + + return true; + } } - AdapterOperation(Context context) { + AdapterOperation(Context context, LifecycleOwner owner) { this.context = context; + this.owner = owner; setHasStableIds(true); } diff --git a/app/src/main/java/eu/faircode/email/FragmentOperations.java b/app/src/main/java/eu/faircode/email/FragmentOperations.java index ef0867f4a0..5906cd4d66 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOperations.java +++ b/app/src/main/java/eu/faircode/email/FragmentOperations.java @@ -58,7 +58,7 @@ public class FragmentOperations extends FragmentEx { LinearLayoutManager llm = new LinearLayoutManager(getContext()); rvOperation.setLayoutManager(llm); - adapter = new AdapterOperation(getContext()); + adapter = new AdapterOperation(getContext(), getViewLifecycleOwner()); rvOperation.setAdapter(adapter); // Initialize