Fixed threaded messages actions

This commit is contained in:
M66B
2018-09-28 10:34:38 +00:00
parent 757154ffff
commit 2b807d5253
2 changed files with 36 additions and 4 deletions

View File

@@ -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;
}