mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
Fix an IllegalStateException crash (#1171)
This commit is contained in:
parent
5f64e40a7e
commit
29ec554334
1 changed files with 19 additions and 1 deletions
|
@ -16,6 +16,8 @@ import android.graphics.Color
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.os.Handler
|
||||||
|
import android.os.Looper
|
||||||
import android.os.TransactionTooLargeException
|
import android.os.TransactionTooLargeException
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.*
|
import android.view.*
|
||||||
|
@ -475,7 +477,23 @@ object UIHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FragmentActivity.popCurrentPage() {
|
fun FragmentActivity.popCurrentPage() {
|
||||||
|
// Post the back press action to the main thread handler to ensure it executes
|
||||||
|
// after any currently pending UI updates or fragment transactions.
|
||||||
|
Handler(Looper.getMainLooper()).post {
|
||||||
|
// Check if the FragmentManager state is saved. If it is, we cannot perform
|
||||||
|
// fragment transactions safely because the state may be inconsistent.
|
||||||
|
if (!supportFragmentManager.isStateSaved) {
|
||||||
|
// If the state is not saved, it's safe to perform the back press action.
|
||||||
this.onBackPressedDispatcher.onBackPressed()
|
this.onBackPressedDispatcher.onBackPressed()
|
||||||
|
} else {
|
||||||
|
// If the state is saved, retry the back press action after a slight delay.
|
||||||
|
// This gives the FragmentManager time to complete any ongoing state-saving
|
||||||
|
// operations or transactions, ensuring that we do not encounter an IllegalStateException.
|
||||||
|
Handler(Looper.getMainLooper()).postDelayed({
|
||||||
|
this.onBackPressedDispatcher.onBackPressed()
|
||||||
|
}, 100)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.getStatusBarHeight(): Int {
|
fun Context.getStatusBarHeight(): Int {
|
||||||
|
|
Loading…
Reference in a new issue