Fix auto downloading of remote images when printing according to the user settings.
Affected: Printing of messages Ticket: MAILAND-977
This commit is contained in:
parent
4e12383cdf
commit
fddd310cb6
|
@ -410,13 +410,7 @@ internal class MessageDetailsActivity :
|
|||
}
|
||||
}
|
||||
R.id.action_report_phishing -> showReportPhishingDialog(message)
|
||||
R.id.action_print -> {
|
||||
MessagePrinter(
|
||||
primaryBaseActivity,
|
||||
primaryBaseActivity.resources,
|
||||
primaryBaseActivity.getSystemService(Context.PRINT_SERVICE) as PrintManager
|
||||
).printMessage(message!!, viewModel.bodyString ?: "")
|
||||
}
|
||||
R.id.action_print -> viewModel.printMessage(primaryBaseActivity)
|
||||
}
|
||||
if (job != null) {
|
||||
mJobManager.addJobInBackground(job)
|
||||
|
|
|
@ -29,6 +29,7 @@ import android.webkit.WebViewClient
|
|||
import androidx.annotation.RequiresApi
|
||||
import androidx.annotation.StringRes
|
||||
import ch.protonmail.android.R
|
||||
import ch.protonmail.android.activities.BaseActivity
|
||||
import ch.protonmail.android.api.models.MessageRecipient
|
||||
import ch.protonmail.android.api.models.room.messages.Message
|
||||
import ch.protonmail.android.utils.DateUtil
|
||||
|
@ -38,9 +39,12 @@ import ch.protonmail.android.utils.extensions.showToast
|
|||
/**
|
||||
* Created by Kamil Rajtar on 09.08.18.
|
||||
*/
|
||||
internal class MessagePrinter(private val context: Context,
|
||||
private val resources: Resources,
|
||||
private val printManager: PrintManager) {
|
||||
internal class MessagePrinter(
|
||||
private val context: Context,
|
||||
private val resources: Resources,
|
||||
private val printManager: PrintManager,
|
||||
private val loadRemoteImages: Boolean
|
||||
) {
|
||||
|
||||
private fun StringBuilder.appendRecipientsList(recipients: List<MessageRecipient>, @StringRes header: Int) {
|
||||
if (recipients.isEmpty()) {
|
||||
|
@ -58,6 +62,7 @@ internal class MessagePrinter(private val context: Context,
|
|||
fun printMessage(message: Message, bodyString: String) {
|
||||
val webView = WebView(context)
|
||||
webView.webViewClient = PrinterWebViewClient(message)
|
||||
webView.settings.blockNetworkImage = !loadRemoteImages
|
||||
val messageString = StringBuilder("<p>")
|
||||
val imagePath = "file:///android_asset/logo_print.png"
|
||||
messageString.append("<img src=\"$imagePath\" height=\"42\"")
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
package ch.protonmail.android.activities.messageDetails.viewmodel
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.Resources
|
||||
import android.print.PrintManager
|
||||
import android.util.Pair
|
||||
import androidx.hilt.Assisted
|
||||
import androidx.hilt.lifecycle.ViewModelInject
|
||||
|
@ -31,6 +33,7 @@ import androidx.lifecycle.distinctUntilChanged
|
|||
import androidx.lifecycle.viewModelScope
|
||||
import ch.protonmail.android.activities.messageDetails.IntentExtrasData
|
||||
import ch.protonmail.android.activities.messageDetails.MessageDetailsActivity
|
||||
import ch.protonmail.android.activities.messageDetails.MessagePrinter
|
||||
import ch.protonmail.android.activities.messageDetails.MessageRenderer
|
||||
import ch.protonmail.android.activities.messageDetails.RegisterReloadTask
|
||||
import ch.protonmail.android.activities.messageDetails.repository.MessageDetailsRepository
|
||||
|
@ -582,4 +585,16 @@ internal class MessageDetailsViewModel @ViewModelInject constructor(
|
|||
deleteMessageUseCase(listOf(messageId))
|
||||
}
|
||||
}
|
||||
|
||||
fun printMessage(context: Context) {
|
||||
val message = message.value
|
||||
message?.let {
|
||||
MessagePrinter(
|
||||
context,
|
||||
context.resources,
|
||||
context.getSystemService(Context.PRINT_SERVICE) as PrintManager,
|
||||
remoteContentDisplayed
|
||||
).printMessage(it, this.bodyString ?: "")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue