summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorCharles Lombardo <clombardo169@gmail.com>2023-03-15 14:25:31 -0400
committerCharles Lombardo <clombardo169@gmail.com>2023-03-15 14:26:37 -0400
commit98ab893be7d82b72f89336e5aab884644e2b2c67 (patch)
tree9b8b43779bcab753cb9348010cc86ccf9f05aa1d /Source/Android/app/src/main/java
parent4281606838c705f81022348eaa5b001e577436a4 (diff)
Android: Create extension functions for serializables
Getting serializables without explicitly stating the type is deprecated in Android 13. However we still need a way to get a serializable in versions below that. Now with these we can avoid repeating the same if block.
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/ProfileDialog.kt8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/SerializableHelper.kt24
2 files changed, 26 insertions, 6 deletions
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<MenuTag>(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 <reified T : Serializable> 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 <reified T : Serializable> 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?
+ }
+}