summaryrefslogtreecommitdiffstats
path: root/src/com/android/mail/ui
diff options
context:
space:
mode:
authorAndrew Sapperstein <asapperstein@google.com>2013-10-09 18:31:50 -0700
committerAndrew Sapperstein <asapperstein@google.com>2013-10-11 10:06:20 -0700
commit562c5ba7235948cf1d20a9afa40e67cd62f43cf7 (patch)
treea9f4b987f3fc76a7681850065659be35f2782af9 /src/com/android/mail/ui
parent926825ba228b25307cb23a6c384f24fc3637d627 (diff)
downloadandroid_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')
-rw-r--r--src/com/android/mail/ui/AbstractConversationViewFragment.java6
-rw-r--r--src/com/android/mail/ui/ConversationViewFragment.java19
-rw-r--r--src/com/android/mail/ui/SecureConversationViewController.java10
-rw-r--r--src/com/android/mail/ui/SecureConversationViewFragment.java2
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();
}
}