package Ġcom . dic hes . d ich box mobile . mv . boxes DataManager . opened Files Ċ Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . dic hes . d ich box mobile . datat ypes . Boxes Container Ċ import Ġcom . dic hes . d ich box mobile . mv . boxes DataManager . view States . Opened Files ViewModel Ċ Ċ class ĠFiles Viewer ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġfragment : ĠFragment , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġopened Files VM : ĠOpen ed Files ViewModel , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtoolbar : ĠFile Toolbar Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġinitial Ġ= Ġtrue ĊĠĠĠ Ġprivate Ġvar Ġsaved Files State Ġ= Ġopened Files VM . live Data . value !!. toList () ĊĊĠĠĠ Ġfun Ġadd ListAdapter ( re cyclerView : ĠRecyclerView ): ĠFiles Viewer Ġ{ ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . require Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager . HORIZONTAL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= ĠTabs Adapter ( opened Files VM ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġon Ġtabs Ġchanged Ġobserver ĊĠĠĠĠĠĠĠ Ġopened Files VM . live Data . observe ( fragment . view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġnull Ġ|| Ġ! check Files Changed ( it )) Ġreturn @ observe ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( re cyclerView . adapter Ġas ĠTabs Adapter ). notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . on Open File () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsaved Files State Ġ= Ġit . toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Files Changed ( files : ĠList < Boxes Container . Opened File >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( files . size Ġ!= Ġsaved Files State . size Ġ|| Ġinitial ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġfor Ġ(( i , Ġfile ) Ġin Ġfiles . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsaved File Ġ= Ġsaved Files State [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Changed Ġ= Ġsaved File . name Ġ!= Ġfile . name Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsaved File . filePath Ġ!= Ġfile . filePath Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsaved File . opened Ġ!= Ġfile . opened ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file Changed ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ