Revert primary base activity context change in MessageDetailsActivity to prevent print manager crash.
MAILAND-1122
This commit is contained in:
parent
df3b571f33
commit
418429d78e
|
@ -20,6 +20,7 @@ package ch.protonmail.android.activities.messageDetails
|
|||
|
||||
import android.app.AlertDialog
|
||||
import android.content.ActivityNotFoundException
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
|
@ -85,6 +86,7 @@ import ch.protonmail.android.jobs.PostTrashJobV2
|
|||
import ch.protonmail.android.jobs.PostUnreadJob
|
||||
import ch.protonmail.android.jobs.ReportPhishingJob
|
||||
import ch.protonmail.android.utils.AppUtil
|
||||
import ch.protonmail.android.utils.CustomLocale
|
||||
import ch.protonmail.android.utils.DownloadUtils
|
||||
import ch.protonmail.android.utils.Event
|
||||
import ch.protonmail.android.utils.HTMLTransformer.AbstractTransformer
|
||||
|
@ -129,6 +131,7 @@ internal class MessageDetailsActivity :
|
|||
private lateinit var pmWebViewClient: PMWebViewClient
|
||||
private lateinit var messageExpandableAdapter: MessageDetailsAdapter
|
||||
private lateinit var attachmentsListAdapter: MessageDetailsAttachmentListAdapter
|
||||
private lateinit var primaryBaseActivity: Context
|
||||
|
||||
/**
|
||||
* Whether the current message needs to be store in database. If transient if won't be stored
|
||||
|
@ -154,11 +157,17 @@ internal class MessageDetailsActivity :
|
|||
|
||||
override fun checkForPermissionOnStartup(): Boolean = false
|
||||
|
||||
override fun attachBaseContext(base: Context) {
|
||||
primaryBaseActivity = base
|
||||
super.attachBaseContext(CustomLocale.apply(base))
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
if (mUserManager.isFirstMessageDetails) {
|
||||
mUserManager.firstMessageDetailsDone()
|
||||
}
|
||||
|
||||
markAsRead = true
|
||||
messageId = requireNotNull(intent.getStringExtra(EXTRA_MESSAGE_ID))
|
||||
messageRecipientUsername = intent.getStringExtra(EXTRA_MESSAGE_RECIPIENT_USERNAME)
|
||||
|
@ -396,7 +405,7 @@ internal class MessageDetailsActivity :
|
|||
}
|
||||
}
|
||||
R.id.action_report_phishing -> showReportPhishingDialog(message)
|
||||
R.id.action_print -> viewModel.printMessage(applicationContext)
|
||||
R.id.action_print -> viewModel.printMessage(primaryBaseActivity) // do not change context type
|
||||
}
|
||||
if (job != null) {
|
||||
mJobManager.addJobInBackground(job)
|
||||
|
|
|
@ -29,16 +29,12 @@ 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
|
||||
import ch.protonmail.android.utils.Logger
|
||||
import ch.protonmail.android.utils.extensions.showToast
|
||||
import timber.log.Timber
|
||||
|
||||
/**
|
||||
* Created by Kamil Rajtar on 09.08.18.
|
||||
*/
|
||||
internal class MessagePrinter(
|
||||
private val context: Context,
|
||||
private val resources: Resources,
|
||||
|
@ -110,7 +106,7 @@ internal class MessagePrinter(
|
|||
try {
|
||||
printManager.print(jobName, printAdapter, PrintAttributes.Builder().build())
|
||||
} catch (e: Exception) {
|
||||
Logger.doLogException(e)
|
||||
Timber.e(e)
|
||||
context.showToast(R.string.print_error)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
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
|
||||
|
@ -56,8 +55,8 @@ import ch.protonmail.android.events.FetchMessageDetailEvent
|
|||
import ch.protonmail.android.events.FetchVerificationKeysEvent
|
||||
import ch.protonmail.android.events.Status
|
||||
import ch.protonmail.android.jobs.helper.EmbeddedImage
|
||||
import ch.protonmail.android.usecase.delete.DeleteMessage
|
||||
import ch.protonmail.android.usecase.VerifyConnection
|
||||
import ch.protonmail.android.usecase.delete.DeleteMessage
|
||||
import ch.protonmail.android.utils.AppUtil
|
||||
import ch.protonmail.android.utils.DownloadUtils
|
||||
import ch.protonmail.android.utils.Event
|
||||
|
@ -586,13 +585,13 @@ internal class MessageDetailsViewModel @ViewModelInject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
fun printMessage(context: Context) {
|
||||
fun printMessage(activityContext: Context) {
|
||||
val message = message.value
|
||||
message?.let {
|
||||
MessagePrinter(
|
||||
context,
|
||||
context.resources,
|
||||
context.getSystemService(Context.PRINT_SERVICE) as PrintManager,
|
||||
activityContext,
|
||||
activityContext.resources,
|
||||
activityContext.getSystemService(Context.PRINT_SERVICE) as PrintManager,
|
||||
remoteContentDisplayed
|
||||
).printMessage(it, this.bodyString ?: "")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue