package Ġorg . step ic . d roid . model Ċ Ċ import Ġandroid . os . Parcel Ċ import Ġandroid . os . Parcelable Ċ import Ġjava . util .* Ċ Ċ data Ġclass ĠCour ses Carousel Info ( ĊĠĠĠ Ġval Ġcolor Type : ĠCour ses Carousel Color Type , ĊĠĠĠ Ġval Ġtitle : ĠString , ĊĠĠĠ Ġval Ġcourse ListType : ĠCourse ListType ?, Ġ// if Ġnull Ġ-> Ġsee Ġcourse Ids : Long Array ĊĠĠĠ Ġval Ġcourse Ids : ĠLong Array ?, ĊĠĠĠ Ġval Ġdescription : ĠString Ġ= Ġ"" Ċ ) Ġ: ĠParcel able Ġ{ ĊĊĠĠĠ Ġprivate Ġconstructor ( source : ĠParcel ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġsource . read Parcelable < Courses Carousel Color Type >( Courses Carousel Color Type :: class . java . class Loader ) !! , ĊĠĠĠĠĠĠĠ Ġsource . readString () !! , ĊĠĠĠĠĠĠĠ ĠCourse ListType . values (). get OrNull ( source . readInt ()), ĊĠĠĠĠĠĠĠ Ġsource . create Long Array (), ĊĠĠĠĠĠĠĠ Ġsource . readString () !! ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġdescribe Contents () Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠwriteTo Parcel ( dest : ĠParcel , Ġflags : ĠInt ) Ġ= Ġwith ( dest ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Parcelable ( color Type , Ġflags ) ĊĠĠĠĠĠĠĠ Ġwrite String ( title ) ĊĠĠĠĠĠĠĠ Ġwrite Int ( course ListType ?. ordinal Ġ?: Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġwrite Long Array ( course Ids ) ĊĠĠĠĠĠĠĠ Ġwrite String ( description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠCRE ATOR : ĠParcel able . Creator < Courses Carousel Info > Ġ= Ġobject Ġ: ĠParcel able . Creator < Courses Carousel Info > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate From Parcel ( source : ĠParcel ): ĠCour ses Carousel Info Ġ= ĠCour ses Carousel Info ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġnew Array ( size : ĠInt ): ĠArray < Courses Carousel Info ?> Ġ= ĠarrayOf Null s ( size ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠCour ses Carousel Info ĊĊĠĠĠĠĠĠĠ Ġif Ġ( color Type Ġ!= Ġother . color Type ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( title Ġ!= Ġother . title ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( course ListType Ġ!= Ġother . course ListType ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ(! Arrays . equals ( course Ids , Ġother . course Ids )) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġcolor Type . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġtitle . hashCode () ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( course ListType ?. hashCode () Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġ( course Ids ?. let Ġ{ ĠArrays . hashCode ( it ) Ġ} Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ