Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
check activity availability before showing a dialog
  • Loading branch information
jinliu9508 committed Oct 31, 2024
commit 95b0d902fa9ddda884d3a4adf0f3777a9372880c
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ package com.onesignal.core.internal.permissions
import android.app.Activity
import android.app.AlertDialog
import com.onesignal.core.R
import com.onesignal.debug.LogLevel
import com.onesignal.debug.internal.logging.Logging

/**
* A singleton helper which will display the fallback-to-settings alert dialog.
Expand All @@ -56,18 +58,26 @@ object AlertDialogPrepromptForAndroidSettings {
// simulate showing a dialog in a finishing activity
activity.finish()

AlertDialog.Builder(activity)
.setTitle(title)
.setMessage(message)
.setPositiveButton(R.string.permission_not_available_open_settings_option) { dialog, which ->
callback.onAccept()
}
.setNegativeButton(android.R.string.no) { dialog, which ->
callback.onDecline()
}
.setOnCancelListener {
callback.onDecline()
}
.show()
// ensure the activity that will be showing the dialog is available
if (activity == null || activity.isDestroyed || activity.isFinishing) {
Logging.log(LogLevel.ERROR, "Alert dialog for Android settings was skipped because the activity was unavailable to display it.")
return
}

if (activity != null && !activity.isFinishing) {
AlertDialog.Builder(activity)
.setTitle(title)
.setMessage(message)
.setPositiveButton(R.string.permission_not_available_open_settings_option) { dialog, which ->
callback.onAccept()
}
.setNegativeButton(android.R.string.no) { dialog, which ->
callback.onDecline()
}
.setOnCancelListener {
callback.onDecline()
}
.show()
}
}
}