package Ġcom . d roid feed . data . model Ċ Ċ import Ġandroid . arch . persistence . room .* Ċ import Ġandroid . content . Intent Ċ import Ġandroid . databinding . Observable Int Ċ import Ġandroid . os . Parcelable Ċ import Ġcom . d roid feed . R Ċ import Ġcom . d roid feed . data . db . App Database Ċ import Ġcom . d roid feed . ui . adapter . Ui Model Type Ċ import Ġcom . d roid feed . ui . adapter . diff . Diff able Ċ import Ġkotlinx . android . parcel . Parcel ize Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠDog an ĠG ul can Ġon Ġ 9 / 2 2 / 1 7 . Ċ Ġ*/ Ċ @ Parcel ize Ċ @ Entity ( tableName Ġ= ĠApp Database . RSS _ TABLE _ NAME ) Ċ data Ġclass ĠArticle ( ĊĠĠĠĠĠĠĠ Ġ@ PrimaryKey ĊĠĠĠĠĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" link ") ĊĠĠĠĠĠĠĠ Ġvar Ġlink : ĠString Ġ= Ġ"", ĊĊĠĠĠĠĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" pub _ date ") ĊĠĠĠĠĠĠĠ Ġvar Ġpub Date : ĠString Ġ= Ġ"", ĊĊĠĠĠĠĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" pub _ date _ timestamp ") ĊĠĠĠĠĠĠĠ Ġvar Ġpub DateTime stamp : ĠLong Ġ= Ġ 0 , ĊĊĠĠĠĠĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" title ") ĊĠĠĠĠĠĠĠ Ġvar Ġtitle : ĠString Ġ= Ġ"", ĊĊĠĠĠĠĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" author ") ĊĠĠĠĠĠĠĠ Ġvar Ġauthor : ĠString Ġ= Ġ"", ĊĊĠĠĠĠĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" content _ raw ") ĊĠĠĠĠĠĠĠ Ġvar Ġraw Content : ĠString Ġ= Ġ"", ĊĊĠĠĠĠĠĠĠ Ġ@ Embedded ĊĠĠĠĠĠĠĠ Ġvar Ġchannel : ĠChannel Ġ= ĠChannel (), ĊĊĠĠĠĠĠĠĠ Ġ@ Embedded ĊĠĠĠĠĠĠĠ Ġvar Ġcontent : ĠContent Ġ= ĠContent (), ĊĊĠĠĠĠĠĠĠ Ġ@ Ignore ĊĠĠĠĠĠĠĠ Ġvar Ġhas F aded In : ĠBoolean Ġ= Ġfalse , ĊĊĠĠĠĠĠĠĠ Ġ@ Ignore ĊĠĠĠĠĠĠĠ Ġvar Ġlayout Type : ĠUi Model Type Ġ= ĠUi Model Type . ARTIC LE _ SMALL Ċ Ċ ) Ġ: ĠDiff able , ĠComparable < Article >, ĠParcel able Ġ{ ĊĊĠĠĠ Ġ@ Transient ĊĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" book marked ") ĊĠĠĠ Ġvar Ġbook marked : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark Observable . set ( R . drawable . av d _ bookmark _ positive ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark Observable . set ( R . drawable . av d _ bookmark _ negative ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transient ĊĠĠĠ Ġ@ Ignore ĊĠĠĠ Ġval Ġbookmark Observable Ġ= ĠObservable Int ( R . drawable . av d _ bookmark _ negative ) ĊĊĠĠĠ Ġ@ Transient ĊĠĠĠ Ġ@ Column Info ( name Ġ= Ġ" content Image ") ĊĠĠĠ Ġvar Ġimage : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( content . content Image . isBlank ()) Ġchannel . imageUrl Ġelse Ġcontent . content Image ĊĊĠĠĠ Ġfun Ġget Share Intent (): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsend Intent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġsend Intent . action Ġ= ĠIntent . ACTION _ SEND ĊĠĠĠĠĠĠĠ Ġsend Intent . putExtra ( Intent . EXTRA _ TEXT , Ġ"$ title \ n \ n $ link ") ĊĠĠĠĠĠĠĠ Ġsend Intent . type Ġ= Ġ" text / plain " ĊĠĠĠĠĠĠĠ Ġreturn Ġsend Intent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠArticle ): ĠInt Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompare Values By ( this , Ġother , Ġ{ Ġit . pub DateTime stamp Ġ}) ĊĊĠĠĠ Ġoverride Ġfun Ġis Same ( item : ĠDiff able ): ĠBoolean Ġ= Ġthis . link . content Equals (( item Ġas ĠArticle ). link ) ĊĊĠĠĠ Ġoverride Ġfun Ġis Content Same ( item : ĠDiff able ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Ġas ĠArticle ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent 1 Ġ= Ġthis . book marked Ġ== Ġitem . book marked ĊĠĠĠĠĠĠĠ Ġval Ġcontent 2 Ġ= Ġthis . link . content Equals ( item . link ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcontent 1 Ġ&& Ġcontent 2 ĊĠĠĠ Ġ} Ċ }