package Ġcom . an ib al b ast ias . android . pul ent app . base . navigation . event Ċ Ċ import Ġcom . an ib al b ast ias . android . pul ent app . base . view . Resource State Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġan ib al b ast ias Ġon Ġ 2 0 1 9 - 0 8 - 1 5 . Ċ Ġ*/ Ċ Ċ open Ġclass ĠEvent < out ĠT >( private Ġval Ġcontent : ĠT ) Ġ{ ĊĊĠĠĠ Ġvar Ġstatus Ġ= ĠResource State . LOADING ĊĠĠĠ Ġvar Ġconsumed Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprivate Ġset Ġ// ĠAllow Ġexternal Ġread Ġbut Ġnot Ġwrite ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCons umes Ġthe Ġcontent Ġif Ġit 's Ġnot Ġbeen Ġconsumed Ġyet . ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġun consumed Ġcontent Ġor Ġ` null ` Ġif Ġit Ġwas Ġconsumed Ġalready . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġconsume (): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( consumed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconsumed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠResource State . DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġcontent Ġwhether Ġit 's Ġbeen Ġhandled Ġor Ġnot . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpeek (): ĠT Ġ= Ġcontent ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠEvent < *> ĊĊĠĠĠĠĠĠĠ Ġif Ġ( content Ġ!= Ġother . content ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( consumed Ġ!= Ġother . consumed ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġcontent ?. hashCode () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġconsumed . hashCode () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ }