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