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