diff options
author | Andrew Sapperstein <asapperstein@google.com> | 2013-10-09 18:31:50 -0700 |
---|---|---|
committer | Andrew Sapperstein <asapperstein@google.com> | 2013-10-11 10:06:20 -0700 |
commit | 562c5ba7235948cf1d20a9afa40e67cd62f43cf7 (patch) | |
tree | a9f4b987f3fc76a7681850065659be35f2782af9 /src/com/android/mail/ui | |
parent | 926825ba228b25307cb23a6c384f24fc3637d627 (diff) | |
download | android_packages_apps_UnifiedEmail-562c5ba7235948cf1d20a9afa40e67cd62f43cf7.tar.gz android_packages_apps_UnifiedEmail-562c5ba7235948cf1d20a9afa40e67cd62f43cf7.tar.bz2 android_packages_apps_UnifiedEmail-562c5ba7235948cf1d20a9afa40e67cd62f43cf7.zip |
Print single message and offscreen webview.
b/10712542.
Also supports Eml printing and secure printing (though
that's email only and has some buggy rendering).
Also fixes the no subject crash. b/11136365
Change-Id: Ie5f6e7d7e1762c115df3169b6e62dc439545f08c
Diffstat (limited to 'src/com/android/mail/ui')
4 files changed, 17 insertions, 20 deletions
diff --git a/src/com/android/mail/ui/AbstractConversationViewFragment.java b/src/com/android/mail/ui/AbstractConversationViewFragment.java index fc5218fc1..3e481906f 100644 --- a/src/com/android/mail/ui/AbstractConversationViewFragment.java +++ b/src/com/android/mail/ui/AbstractConversationViewFragment.java @@ -221,9 +221,13 @@ public abstract class AbstractConversationViewFragment extends Fragment implemen * (such as one that does not rely on account and/or conversation. */ protected void setBaseUri() { + mBaseUri = buildBaseUri(mAccount, mConversation); + } + + public static String buildBaseUri(Account account, Conversation conversation) { // Since the uri specified in the conversation base uri may not be unique, we specify a // base uri that us guaranteed to be unique for this conversation. - mBaseUri = "x-thread://" + mAccount.getEmailAddress().hashCode() + "/" + mConversation.id; + return "x-thread://" + account.getEmailAddress().hashCode() + "/" + conversation.id; } @Override diff --git a/src/com/android/mail/ui/ConversationViewFragment.java b/src/com/android/mail/ui/ConversationViewFragment.java index 63ade3979..e42b6e602 100644 --- a/src/com/android/mail/ui/ConversationViewFragment.java +++ b/src/com/android/mail/ui/ConversationViewFragment.java @@ -27,9 +27,6 @@ import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.SystemClock; -import android.print.PrintAttributes; -import android.print.PrintJob; -import android.print.PrintManager; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.ScaleGestureDetector; @@ -67,7 +64,7 @@ import com.android.mail.browse.SuperCollapsedBlock; import com.android.mail.browse.WebViewContextMenu; import com.android.mail.content.ObjectCursor; import com.android.mail.preferences.AccountPreferences; -import com.android.mail.print.Printer; +import com.android.mail.print.PrintUtils; import com.android.mail.providers.Account; import com.android.mail.providers.Address; import com.android.mail.providers.Conversation; @@ -1580,17 +1577,7 @@ public class ConversationViewFragment extends AbstractConversationViewFragment i } protected void printConversation() { - // TODO - offscreen webview stuff so that we don't clobber - final String convHtml = - Printer.print(getContext(), mAccount, getMessageCursor(), - mAddressCache, true /* userJavascript */); - mWebView.getSettings().setBlockNetworkImage(false); - mWebView.loadDataWithBaseURL( - mConversation.getBaseUri(mBaseUri), convHtml, "text/html", "utf-8", null); - final PrintManager printManager = - (PrintManager) getContext().getSystemService(Context.PRINT_SERVICE); - printManager.print(mConversation.subject, - mWebView.createPrintDocumentAdapter(), - new PrintAttributes.Builder().build()); + PrintUtils.printConversation(getContext(), getMessageCursor(), mAddressCache, + mConversation.getBaseUri(mBaseUri), true /* useJavascript */); } } diff --git a/src/com/android/mail/ui/SecureConversationViewController.java b/src/com/android/mail/ui/SecureConversationViewController.java index 19a57e362..c65ea5a2f 100644 --- a/src/com/android/mail/ui/SecureConversationViewController.java +++ b/src/com/android/mail/ui/SecureConversationViewController.java @@ -37,6 +37,8 @@ import com.android.mail.browse.MessageFooterView; import com.android.mail.browse.MessageHeaderView; import com.android.mail.browse.MessageScrollView; import com.android.mail.browse.MessageWebView; +import com.android.mail.print.PrintUtils; +import com.android.mail.providers.Conversation; import com.android.mail.providers.Message; import com.android.mail.utils.ConversationViewUtils; @@ -185,8 +187,12 @@ public class SecureConversationViewController implements mConversationHeaderView.setSubject(subject); } - public void printConversation() { - // TODO - implement this + public void printMessage() { + final Conversation conversation = mMessage.getConversation(); + PrintUtils.printMessage(mCallbacks.getContext(), mMessage, + conversation != null ? conversation.subject : mMessage.subject, + mCallbacks.getAddressCache(), mCallbacks.getBaseUri(), false /* useJavascript */); + } // Start MessageHeaderViewCallbacks implementations diff --git a/src/com/android/mail/ui/SecureConversationViewFragment.java b/src/com/android/mail/ui/SecureConversationViewFragment.java index 9ee32e46c..051940c47 100644 --- a/src/com/android/mail/ui/SecureConversationViewFragment.java +++ b/src/com/android/mail/ui/SecureConversationViewFragment.java @@ -267,6 +267,6 @@ public class SecureConversationViewFragment extends AbstractConversationViewFrag } protected void printConversation() { - mViewController.printConversation(); + mViewController.printMessage(); } } |