diff options
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.java | 25 |
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; + } +} |