diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/ProfileDialog.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/ProfileDialog.kt index 2779ee7473..acc3f605a9 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/ProfileDialog.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/ProfileDialog.kt @@ -2,7 +2,6 @@ package org.dolphinemu.dolphinemu.features.input.ui -import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -14,6 +13,7 @@ import com.google.android.material.divider.MaterialDividerItemDecoration import org.dolphinemu.dolphinemu.R import org.dolphinemu.dolphinemu.databinding.DialogInputProfilesBinding import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag +import org.dolphinemu.dolphinemu.utils.SerializableHelper.serializable class ProfileDialog : BottomSheetDialogFragment() { private var presenter: ProfileDialogPresenter? = null @@ -22,11 +22,7 @@ class ProfileDialog : BottomSheetDialogFragment() { private val binding get() = _binding!! override fun onCreate(savedInstanceState: Bundle?) { - val menuTag: MenuTag = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - requireArguments().getSerializable(KEY_MENU_TAG, MenuTag::class.java) as MenuTag - } else { - requireArguments().getSerializable(KEY_MENU_TAG) as MenuTag - } + val menuTag = requireArguments().serializable(KEY_MENU_TAG) presenter = ProfileDialogPresenter(this, menuTag) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SerializableHelper.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SerializableHelper.kt new file mode 100644 index 0000000000..cad3b548ce --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SerializableHelper.kt @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.utils + +import android.content.Intent +import android.os.Build +import android.os.Bundle +import java.io.Serializable + +object SerializableHelper { + inline fun Intent.serializable(key: String): T? { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) + getSerializableExtra(key, T::class.java) + else + getSerializableExtra(key) as T? + } + + inline fun Bundle.serializable(key: String): T? { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) + getSerializable(key, T::class.java) + else + getSerializable(key) as T? + } +}