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