summaryrefslogtreecommitdiff
path: root/SettingsAPI/java/com/android/tv/settings/library/util/DataBinder.java
diff options
context:
space:
mode:
Diffstat (limited to 'SettingsAPI/java/com/android/tv/settings/library/util/DataBinder.java')
-rw-r--r--SettingsAPI/java/com/android/tv/settings/library/util/DataBinder.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/SettingsAPI/java/com/android/tv/settings/library/util/DataBinder.java b/SettingsAPI/java/com/android/tv/settings/library/util/DataBinder.java
new file mode 100644
index 000000000..837d852be
--- /dev/null
+++ b/SettingsAPI/java/com/android/tv/settings/library/util/DataBinder.java
@@ -0,0 +1,25 @@
+package com.android.tv.settings.library.util;
+
+import android.os.Binder;
+import android.os.IBinder;
+
+/**
+ * Can be used to pass arbitrary data in an intent within the same process. Note that data will
+ * be lost if intent is serialized and deserialized.
+ */
+public class DataBinder<T> extends Binder {
+ public final T data;
+
+ public static <T> DataBinder<T> with(T data) {
+ return new DataBinder<>(data);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T> T getData(IBinder binder) {
+ return ((DataBinder<T>) binder).data;
+ }
+
+ private DataBinder(T data) {
+ this.data = data;
+ }
+}