mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-04-24 06:14:54 +00:00
Android: Fix PermissionsHandler activity detection
This commit is contained in:
parent
7520f427a9
commit
820cf5bcd8
3 changed files with 11 additions and 7 deletions
|
@ -15,6 +15,7 @@ import android.widget.TextView
|
|||
import androidx.annotation.ColorInt
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.android.material.color.MaterialColors
|
||||
import com.google.android.material.datepicker.CalendarConstraints
|
||||
|
@ -59,6 +60,9 @@ class SettingsAdapter(
|
|||
val settings: Settings?
|
||||
get() = fragmentView.settings
|
||||
|
||||
val fragmentActivity: FragmentActivity
|
||||
get() = fragmentView.fragmentActivity
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SettingViewHolder {
|
||||
val inflater = LayoutInflater.from(parent.context)
|
||||
return when (viewType) {
|
||||
|
|
|
@ -61,8 +61,8 @@ class SwitchSettingViewHolder(
|
|||
|
||||
if (setting.setting === BooleanSetting.MAIN_EMULATE_WII_SPEAK && isChecked) {
|
||||
if (!PermissionsHandler.hasRecordAudioPermission(itemView.context)) {
|
||||
val settingsActivity = itemView.context as Activity
|
||||
PermissionsHandler.requestRecordAudioPermission(settingsActivity)
|
||||
val currentActivity = adapter.fragmentActivity as Activity
|
||||
PermissionsHandler.requestRecordAudioPermission(currentActivity)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ class ActivityTracker : ActivityLifecycleCallbacks {
|
|||
}
|
||||
|
||||
override fun onActivityResumed(activity: Activity) {
|
||||
currentActivity = activity
|
||||
resumedActivities.add(activity)
|
||||
if (!backgroundExecutionAllowed && !resumedActivities.isEmpty()) {
|
||||
backgroundExecutionAllowed = true
|
||||
|
@ -39,6 +40,9 @@ class ActivityTracker : ActivityLifecycleCallbacks {
|
|||
}
|
||||
|
||||
override fun onActivityPaused(activity: Activity) {
|
||||
if (currentActivity === activity) {
|
||||
currentActivity = null
|
||||
}
|
||||
resumedActivities.remove(activity)
|
||||
if (backgroundExecutionAllowed && resumedActivities.isEmpty()) {
|
||||
backgroundExecutionAllowed = false
|
||||
|
@ -54,11 +58,7 @@ class ActivityTracker : ActivityLifecycleCallbacks {
|
|||
|
||||
override fun onActivitySaveInstanceState(activity: Activity, bundle: Bundle) {}
|
||||
|
||||
override fun onActivityDestroyed(activity: Activity) {
|
||||
if (currentActivity === activity) {
|
||||
currentActivity = null
|
||||
}
|
||||
}
|
||||
override fun onActivityDestroyed(activity: Activity) {}
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
|
|
Loading…
Add table
Reference in a new issue