Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. package com.droidcba.keddit.commons
  2.  
  3. import android.os.Parcel
  4. import android.os.Parcelable
  5. import com.droidcba.keddit.commons.adapter.AdapterConstants
  6. import com.droidcba.keddit.commons.adapter.ViewType
  7. import com.droidcba.keddit.commons.extensions.createParcel
  8.  
  9. data class RedditNews(
  10. val after: String,
  11. val before: String,
  12. val news: List<RedditNewsItem>) : Parcelable {
  13.  
  14. companion object {
  15. @JvmField @Suppress("unused")
  16. val CREATOR = createParcel { RedditNews(it) }
  17. }
  18.  
  19. protected constructor(parcelIn: Parcel) : this(
  20. parcelIn.readString(),
  21. parcelIn.readString(),
  22. mutableListOf<RedditNewsItem>().apply {
  23. parcelIn.readTypedList(this, RedditNewsItem.CREATOR)
  24. }
  25. )
  26.  
  27. override fun writeToParcel(dest: Parcel, flags: Int) {
  28. dest.writeString(after)
  29. dest.writeString(before)
  30. dest.writeTypedList(news)
  31. }
  32.  
  33. override fun describeContents() = 0
  34. }
  35.  
  36. data class RedditNewsItem(
  37. val author: String,
  38. val title: String,
  39. val numComments: Int,
  40. val created: Long,
  41. val thumbnail: String,
  42. val url: String
  43. ) : ViewType, Parcelable {
  44.  
  45. companion object {
  46. @JvmField @Suppress("unused")
  47. val CREATOR = createParcel { RedditNewsItem(it) }
  48. }
  49.  
  50. protected constructor(parcelIn: Parcel) : this(
  51. parcelIn.readString(),
  52. parcelIn.readString(),
  53. parcelIn.readInt(),
  54. parcelIn.readLong(),
  55. parcelIn.readString(),
  56. parcelIn.readString()
  57. )
  58.  
  59. override fun writeToParcel(dest: Parcel, flags: Int) {
  60. dest.writeString(author)
  61. dest.writeString(title)
  62. dest.writeInt(numComments)
  63. dest.writeLong(created)
  64. dest.writeString(thumbnail)
  65. dest.writeString(url)
  66. }
  67.  
  68. override fun describeContents() = 0
  69.  
  70. override fun getViewType() = AdapterConstants.NEWS
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement