mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-07 01:23:38 +02:00
Fixed threaded messages actions
This commit is contained in:
@@ -42,6 +42,7 @@ import android.widget.TextView;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
@@ -241,12 +242,14 @@ public class FragmentMessages extends FragmentEx {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", message.id);
|
||||
args.putInt("direction", direction);
|
||||
args.putBoolean("single", !message.threaded);
|
||||
|
||||
new SimpleTask<String[]>() {
|
||||
@Override
|
||||
protected String[] onLoad(Context context, Bundle args) {
|
||||
long id = args.getLong("id");
|
||||
int direction = args.getInt("direction");
|
||||
boolean single = args.getBoolean("single");
|
||||
EntityFolder target = null;
|
||||
|
||||
// Get target folder and hide message
|
||||
@@ -266,7 +269,14 @@ public class FragmentMessages extends FragmentEx {
|
||||
target = db.folder().getFolderByType(message.account, EntityFolder.TRASH);
|
||||
}
|
||||
|
||||
db.message().setMessageUiHide(message.id, true);
|
||||
List<EntityMessage> messages = new ArrayList<>();
|
||||
if (single)
|
||||
messages.add(message);
|
||||
else
|
||||
messages.addAll(db.message().getMessageByThread(message.account, message.thread));
|
||||
|
||||
for (EntityMessage m : messages)
|
||||
db.message().setMessageUiHide(m.id, true);
|
||||
|
||||
db.setTransactionSuccessful();
|
||||
} finally {
|
||||
@@ -295,8 +305,30 @@ public class FragmentMessages extends FragmentEx {
|
||||
@Override
|
||||
protected Void onLoad(Context context, Bundle args) {
|
||||
long id = args.getLong("id");
|
||||
Log.i(Helper.TAG, "Undo move id=" + id);
|
||||
DB.getInstance(context).message().setMessageUiHide(id, false);
|
||||
boolean single = args.getBoolean("single");
|
||||
|
||||
DB db = DB.getInstance(context);
|
||||
try {
|
||||
db.beginTransaction();
|
||||
|
||||
EntityMessage message = db.message().getMessage(id);
|
||||
|
||||
List<EntityMessage> messages = new ArrayList<>();
|
||||
if (single)
|
||||
messages.add(message);
|
||||
else
|
||||
messages.addAll(db.message().getMessageByThread(message.account, message.thread));
|
||||
|
||||
for (EntityMessage m : messages) {
|
||||
Log.i(Helper.TAG, "Undo move id=" + m.id);
|
||||
DB.getInstance(context).message().setMessageUiHide(m.id, false);
|
||||
}
|
||||
|
||||
db.setTransactionSuccessful();
|
||||
} finally {
|
||||
db.endTransaction();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user