Skip to content

Commit

Permalink
Merge pull request #1725 from Infomaniak/Fix-print-crash
Browse files Browse the repository at this point in the history
Fix print not working for empty subject
  • Loading branch information
KevinBoulongne authored Mar 1, 2024
2 parents 130ea85 + 12d79d3 commit 890d1d6
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import android.print.PrintManager
import android.webkit.WebView
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.infomaniak.mail.utils.extensions.formatSubject
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

Expand All @@ -40,11 +41,10 @@ class PrintMailViewModel : ViewModel() {
webView: WebView,
onFinish: () -> Unit,
) = viewModelScope.launch(Dispatchers.Main) {
subject?.let { subject ->
val webViewPrintAdapter = PrintAdapterWrapper(webView.createPrintDocumentAdapter(subject), onFinish)
val printManager = activityContext.getSystemService(Context.PRINT_SERVICE) as PrintManager
printManager.print(subject, webViewPrintAdapter, null)
}
val protectedSubject = activityContext.formatSubject(subject)
val webViewPrintAdapter = PrintAdapterWrapper(webView.createPrintDocumentAdapter(protectedSubject), onFinish)
val printManager = activityContext.getSystemService(Context.PRINT_SERVICE) as PrintManager
printManager.print(protectedSubject, webViewPrintAdapter, null)
}

private class PrintAdapterWrapper(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import com.infomaniak.mail.R
import com.infomaniak.mail.data.models.correspondent.Recipient
import com.infomaniak.mail.data.models.message.Message
import com.infomaniak.mail.utils.MailDateFormatUtils.formatForHeader
import com.infomaniak.mail.utils.extensions.formatSubject
import com.infomaniak.mail.utils.extensions.toDate
import org.jsoup.nodes.Element
import java.util.Date
Expand All @@ -40,10 +41,9 @@ object PrintHeaderUtils {
elementsToInsert.add(iconElement)
elementsToInsert.add(firstSeparator)

message.subject?.let { subject ->
val subjectElement = Element("b").appendText(subject)
elementsToInsert.add(subjectElement)
}
val subject = context.formatSubject(message.subject)
val subjectElement = Element("b").appendText(subject)
elementsToInsert.add(subjectElement)

elementsToInsert.add(secondSeparator)

Expand Down

0 comments on commit 890d1d6

Please sign in to comment.