diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt index fc575ead48..482be3dc16 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt @@ -2,6 +2,10 @@ package org.dolphinemu.dolphinemu.features.settings.ui.viewholder +import android.Manifest +import android.app.Activity +import android.content.pm.PackageManager +import android.os.Build import android.view.View import android.widget.CompoundButton import org.dolphinemu.dolphinemu.databinding.ListItemSettingSwitchBinding @@ -10,6 +14,7 @@ import org.dolphinemu.dolphinemu.features.settings.model.view.SettingsItem import org.dolphinemu.dolphinemu.features.settings.model.view.SwitchSetting import org.dolphinemu.dolphinemu.features.settings.ui.SettingsAdapter import org.dolphinemu.dolphinemu.utils.DirectoryInitialization +import org.dolphinemu.dolphinemu.utils.PermissionsHandler import java.io.File import java.util.* @@ -57,6 +62,17 @@ class SwitchSettingViewHolder( binding.settingSwitch.isEnabled = false } + if (setting.setting === BooleanSetting.MAIN_EMULATE_WII_SPEAK && isChecked) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && + itemView.context.checkSelfPermission(Manifest.permission.RECORD_AUDIO) + != PackageManager.PERMISSION_GRANTED) { + val settingsActivity = itemView.context as Activity + settingsActivity.requestPermissions( + arrayOf(Manifest.permission.RECORD_AUDIO), + PermissionsHandler.REQUEST_CODE_RECORD_AUDIO) + } + } + adapter.onBooleanClick(setting, binding.settingSwitch.isChecked) setStyle(binding.textSettingName, setting) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java index a4c69281f2..ab68470e28 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/PermissionsHandler.java @@ -15,6 +15,7 @@ import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE; public class PermissionsHandler { public static final int REQUEST_CODE_WRITE_PERMISSION = 500; + public static final int REQUEST_CODE_RECORD_AUDIO = 501; private static boolean sWritePermissionDenied = false; public static void requestWritePermission(final FragmentActivity activity)