Fix crash when trying to dismiss dialog
Calling Dialog.dismiss() requires a safe condition, including that dialog is shown,and activity is neither finishing nor destroying, so we should add a precondition check here to avoid crash. Bug: 248562161 Test: manual and atest Change-Id: I87de2cd05680815d4bb4e80ac1e0d6e2e4a685f7
This commit is contained in:
committed by
Fabian Kozynski
parent
5cb3c55774
commit
3588cb06ba
@@ -18,6 +18,7 @@ package com.android.systemui.controls.ui
|
||||
|
||||
import android.annotation.AnyThread
|
||||
import android.annotation.MainThread
|
||||
import android.app.Activity
|
||||
import android.app.AlertDialog
|
||||
import android.app.Dialog
|
||||
import android.app.PendingIntent
|
||||
@@ -85,8 +86,16 @@ class ControlActionCoordinatorImpl @Inject constructor(
|
||||
}
|
||||
|
||||
override fun closeDialogs() {
|
||||
dialog?.dismiss()
|
||||
dialog = null
|
||||
val isActivityFinishing =
|
||||
(activityContext as? Activity)?.let { it.isFinishing || it.isDestroyed }
|
||||
if (isActivityFinishing == true) {
|
||||
dialog = null
|
||||
return
|
||||
}
|
||||
if (dialog?.isShowing == true) {
|
||||
dialog?.dismiss()
|
||||
dialog = null
|
||||
}
|
||||
}
|
||||
|
||||
override fun toggle(cvh: ControlViewHolder, templateId: String, isChecked: Boolean) {
|
||||
|
||||
Reference in New Issue
Block a user