package Ġcom . example . f 0 x . ap ib ot . presentation . common Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . annotation . String Res Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġf 0 x Ċ Ġ* Ġon Ġ 2 8 . 0 3 . 1 7 . Ċ Ġ*/ Ċ Ċ open Ġclass ĠEmpty RecyclerView Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠRecyclerView ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġempty View : ĠI Empty View ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġobserver Ġ= Ġobject Ġ: ĠRecyclerView . Adapter Data Observer () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonChanged () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck If Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Inserted ( position Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck If Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Range Removed ( position Start : ĠInt , Ġitem Count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck If Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġset Adapter ( adapter : ĠRecyclerView . Adapter < *> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġold Adapter Ġ= Ġget Adapter () ĊĠĠĠĠĠĠĠ Ġold Adapter ?. unregister Adapter Data Observer ( observer ) ĊĠĠĠĠĠĠĠ Ġsuper . setAdapter ( adapter ) ĊĠĠĠĠĠĠĠ Ġadapter ?. register Adapter Data Observer ( observer ) ĊĠĠĠĠĠĠĠ Ġcheck If Empty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Empty View ( empty View : ĠI Empty View ?, Ġ@ String Res Ġtext : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . empty View Ġ= Ġempty View ĊĠĠĠĠĠĠĠ Ġif Ġ( text Ġ!= Ġ 0 Ġ&& Ġempty View Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty View . setText ( text ) ĊĠĠĠĠĠĠĠ Ġcheck If Empty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġcheck If Empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( empty View Ġ== Ġnull Ġ|| Ġadapter Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġvar Ġempty View Visible Ġ= Ġadapter . item Count Ġ== Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġif Ġ( adapter Ġis ĠA ListAdapter < *, Ġ* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( empty View Visible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty View Visible Ġ= Ġ( adapter Ġas ĠA ListAdapter < *, Ġ*> ). is Need Show Empty View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvisibility Ġ= Ġif Ġ( empty View Visible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty View ?. setVisibility ( View . VISIBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty View ?. setVisibility ( View . GONE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ