18
18
19
19
package com.infomaniak.mail.ui.main.thread
20
20
21
- import android.app.Application
22
21
import android.content.Context
23
22
import android.os.Bundle
24
23
import android.os.CancellationSignal
@@ -28,33 +27,37 @@ import android.print.PrintAttributes
28
27
import android.print.PrintDocumentAdapter
29
28
import android.print.PrintManager
30
29
import android.webkit.WebView
31
- import androidx.lifecycle.AndroidViewModel
30
+ import androidx.lifecycle.ViewModel
32
31
import androidx.lifecycle.viewModelScope
33
32
import kotlinx.coroutines.Dispatchers
34
33
import kotlinx.coroutines.launch
35
34
36
- class PrintMailViewModel ( application : Application ) : AndroidViewModel(application ) {
35
+ class PrintMailViewModel : ViewModel ( ) {
37
36
38
- fun startPrintingService (activityContext : Context , subject : String? , webView : WebView , onFinish : () -> Unit ) {
39
- viewModelScope.launch(Dispatchers .Main ) {
40
- subject?.let { subject ->
41
- val webViewPrintAdapter = PrintAdapterWrapper (webView.createPrintDocumentAdapter(subject), onFinish)
42
- val printManager = activityContext.getSystemService(Context .PRINT_SERVICE ) as PrintManager
43
- printManager.print (subject, webViewPrintAdapter, null )
44
- }
37
+ fun startPrintingService (
38
+ activityContext : Context ,
39
+ subject : String? ,
40
+ webView : WebView ,
41
+ onFinish : () -> Unit ,
42
+ ) = viewModelScope.launch(Dispatchers .Main ) {
43
+ subject?.let { subject ->
44
+ val webViewPrintAdapter = PrintAdapterWrapper (webView.createPrintDocumentAdapter(subject), onFinish)
45
+ val printManager = activityContext.getSystemService(Context .PRINT_SERVICE ) as PrintManager
46
+ printManager.print (subject, webViewPrintAdapter, null )
45
47
}
46
48
}
47
49
48
50
private class PrintAdapterWrapper (
49
51
private val printAdapter : PrintDocumentAdapter ,
50
- private val onFinish : () -> Unit
52
+ private val onFinish : () -> Unit ,
51
53
) : PrintDocumentAdapter() {
54
+
52
55
override fun onLayout (
53
56
oldAttributes : PrintAttributes ? ,
54
57
newAttributes : PrintAttributes ? ,
55
58
cancellationSignal : CancellationSignal ? ,
56
59
callback : LayoutResultCallback ? ,
57
- extras : Bundle ?
60
+ extras : Bundle ? ,
58
61
) {
59
62
printAdapter.onLayout(oldAttributes, newAttributes, cancellationSignal, callback, extras)
60
63
}
@@ -63,7 +66,7 @@ class PrintMailViewModel(application: Application) : AndroidViewModel(applicatio
63
66
pages : Array <out PageRange >? ,
64
67
destination : ParcelFileDescriptor ? ,
65
68
cancellationSignal : CancellationSignal ? ,
66
- callback : WriteResultCallback ?
69
+ callback : WriteResultCallback ? ,
67
70
) {
68
71
printAdapter.onWrite(pages, destination, cancellationSignal, callback)
69
72
}
0 commit comments