Browse Source

Fixed out of memory on viewing large original messages

main
M66B 6 years ago
parent
commit
f93e4ca813
2 changed files with 29 additions and 23 deletions
  1. +8
    -18
      app/src/main/java/eu/faircode/email/FragmentMessage.java
  2. +21
    -5
      app/src/main/java/eu/faircode/email/FragmentWebView.java

+ 8
- 18
app/src/main/java/eu/faircode/email/FragmentMessage.java View File

@ -796,26 +796,16 @@ public class FragmentMessage extends FragmentEx {
} }
private void onMenuShowHtml() { private void onMenuShowHtml() {
new SimpleTask<String>() {
@Override
protected String onLoad(Context context, Bundle args) throws Throwable {
return message.read(context);
}
@Override
protected void onLoaded(Bundle a, String html) {
Bundle args = new Bundle();
args.putString("html", html);
args.putString("from", MessageHelper.getFormattedAddresses(message.from, true));
Bundle args = new Bundle();
args.putLong("id", message.id);
args.putString("from", MessageHelper.getFormattedAddresses(message.from, true));
FragmentWebView fragment = new FragmentWebView();
fragment.setArguments(args);
FragmentWebView fragment = new FragmentWebView();
fragment.setArguments(args);
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("webview");
fragmentTransaction.commit();
}
}.load(this, new Bundle());
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("webview");
fragmentTransaction.commit();
} }
private void onMenuUnseen() { private void onMenuUnseen() {


+ 21
- 5
app/src/main/java/eu/faircode/email/FragmentWebView.java View File

@ -19,6 +19,7 @@ package eu.faircode.email;
Copyright 2018 by Marcel Bokhorst (M66B) Copyright 2018 by Marcel Bokhorst (M66B)
*/ */
import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
@ -82,11 +83,26 @@ public class FragmentWebView extends FragmentEx {
String url = args.getString("url"); String url = args.getString("url");
webview.loadUrl(url); webview.loadUrl(url);
setSubtitle(url); setSubtitle(url);
} else if (args.containsKey("html")) {
String html = args.getString("html");
String from = args.getString("from");
webview.loadDataWithBaseURL("email://", html, "text/html", "UTF-8", null);
setSubtitle(from);
} else if (args.containsKey("id")) {
new SimpleTask<String>() {
@Override
protected String onLoad(Context context, Bundle args) throws Throwable {
long id = args.getLong("id");
return EntityMessage.read(context, id);
}
@Override
protected void onLoaded(Bundle args, String html) {
String from = args.getString("from");
webview.loadDataWithBaseURL("email://", html, "text/html", "UTF-8", null);
setSubtitle(from);
}
@Override
protected void onException(Bundle args, Throwable ex) {
Helper.unexpectedError(getContext(), ex);
}
}.load(this, args);
} }
((ActivityBase) getActivity()).addBackPressedListener(new ActivityBase.IBackPressedListener() { ((ActivityBase) getActivity()).addBackPressedListener(new ActivityBase.IBackPressedListener() {


Loading…
Cancel
Save