mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-15 21:43:27 +02:00
Auto raw message save/send
This commit is contained in:
@@ -970,6 +970,16 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
bindExpanded(message, false);
|
||||
else
|
||||
clearExpanded(message);
|
||||
|
||||
if (properties.getValue("raw_save", message.id)) {
|
||||
properties.setValue("raw_save", message.id, false);
|
||||
onMenuRawSave(message);
|
||||
}
|
||||
|
||||
if (properties.getValue("raw_send", message.id)) {
|
||||
properties.setValue("raw_send", message.id, false);
|
||||
onMenuRawSend(message);
|
||||
}
|
||||
}
|
||||
|
||||
private void clearExpanded(TupleMessageEx message) {
|
||||
@@ -3129,14 +3139,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
popupMenu.getMenu().findItem(R.id.menu_show_headers).setEnabled(message.uid != null);
|
||||
popupMenu.getMenu().findItem(R.id.menu_show_headers).setVisible(message.accountProtocol == EntityAccount.TYPE_IMAP);
|
||||
|
||||
popupMenu.getMenu().findItem(R.id.menu_raw_download).setEnabled(
|
||||
message.uid != null && (message.raw == null || !message.raw));
|
||||
popupMenu.getMenu().findItem(R.id.menu_raw_save).setEnabled(
|
||||
message.uid != null && (message.raw != null && message.raw));
|
||||
popupMenu.getMenu().findItem(R.id.menu_raw_send).setEnabled(
|
||||
message.uid != null && (message.raw != null && message.raw));
|
||||
popupMenu.getMenu().findItem(R.id.menu_raw_save).setEnabled(message.uid != null);
|
||||
popupMenu.getMenu().findItem(R.id.menu_raw_send).setEnabled(message.uid != null);
|
||||
|
||||
popupMenu.getMenu().findItem(R.id.menu_raw_download).setVisible(message.accountProtocol == EntityAccount.TYPE_IMAP);
|
||||
popupMenu.getMenu().findItem(R.id.menu_raw_save).setVisible(message.accountProtocol == EntityAccount.TYPE_IMAP);
|
||||
popupMenu.getMenu().findItem(R.id.menu_raw_send).setVisible(message.accountProtocol == EntityAccount.TYPE_IMAP);
|
||||
|
||||
@@ -3183,9 +3188,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
case R.id.menu_show_headers:
|
||||
onMenuShowHeaders(message);
|
||||
return true;
|
||||
case R.id.menu_raw_download:
|
||||
onMenuRawDownload(message);
|
||||
return true;
|
||||
case R.id.menu_raw_save:
|
||||
onMenuRawSave(message);
|
||||
return true;
|
||||
@@ -3668,7 +3670,35 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
bindExpanded(message, false);
|
||||
}
|
||||
|
||||
private void onMenuRawDownload(TupleMessageEx message) {
|
||||
private void onMenuRawSave(TupleMessageEx message) {
|
||||
if (message.raw == null || !message.raw) {
|
||||
properties.setValue("raw_save", message.id, true);
|
||||
rawDownload(message);
|
||||
} else {
|
||||
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context);
|
||||
lbm.sendBroadcast(
|
||||
new Intent(FragmentMessages.ACTION_STORE_RAW)
|
||||
.putExtra("id", message.id));
|
||||
}
|
||||
}
|
||||
|
||||
private void onMenuRawSend(TupleMessageEx message) {
|
||||
if (message.raw == null || !message.raw) {
|
||||
properties.setValue("raw_send", message.id, true);
|
||||
rawDownload(message);
|
||||
} else {
|
||||
File file = message.getRawFile(context);
|
||||
Uri uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, file);
|
||||
|
||||
Intent send = new Intent(Intent.ACTION_SEND);
|
||||
send.putExtra(Intent.EXTRA_STREAM, uri);
|
||||
send.setType("message/rfc822");
|
||||
send.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
context.startActivity(send);
|
||||
}
|
||||
}
|
||||
|
||||
private void rawDownload(TupleMessageEx message) {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", message.id);
|
||||
|
||||
@@ -3701,7 +3731,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
|
||||
@Override
|
||||
protected void onExecuted(Bundle args, Void data) {
|
||||
ToastEx.makeText(context, R.string.title_executing, Toast.LENGTH_LONG).show();
|
||||
ToastEx.makeText(context, R.string.title_download_message, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -3711,24 +3741,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
}.execute(context, owner, args, "message:raw");
|
||||
}
|
||||
|
||||
private void onMenuRawSave(TupleMessageEx message) {
|
||||
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context);
|
||||
lbm.sendBroadcast(
|
||||
new Intent(FragmentMessages.ACTION_STORE_RAW)
|
||||
.putExtra("id", message.id));
|
||||
}
|
||||
|
||||
private void onMenuRawSend(TupleMessageEx message) {
|
||||
File file = message.getRawFile(context);
|
||||
Uri uri = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID, file);
|
||||
|
||||
Intent send = new Intent(Intent.ACTION_SEND);
|
||||
send.putExtra(Intent.EXTRA_STREAM, uri);
|
||||
send.setType("message/rfc822");
|
||||
send.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
context.startActivity(send);
|
||||
}
|
||||
|
||||
ItemDetailsLookup.ItemDetails<Long> getItemDetails(@NonNull MotionEvent motionEvent) {
|
||||
return new ItemDetailsMessage(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user