package Ġcom . skeleton . mvp . activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Environment Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . text . TextUtils Ċ import Ġcom . skeleton . mvp . R Ċ import Ġcom . skeleton . mvp . adapter . Media Gallery Adapter Ċ import Ġcom . skeleton . mvp . constant . F ugu App Constant Ċ import Ġcom . skeleton . mvp . f ug ud atabase . Common Data Ċ import Ġcom . skeleton . mvp . model . Media Ċ import Ġjava . io . File Ċ import Ġjava . util .* ĊĊ Ċ class ĠMedia Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġre cyclerView : Ġandroidx . recyclerview . widget . RecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlinear LayoutManager : Ġandroidx . recyclerview . widget . Linear LayoutManager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmedia Gallery Adapter : ĠMedia Gallery Adapter ĊĠĠĠ Ġprivate Ġvar Ġmedia List Ġ= ĠArrayList < Media >() ĊĠĠĠ Ġprivate Ġvar Ġdownloaded Media List Ġ= ĠArrayList < Media >() ĊĠĠĠ Ġprivate Ġvar Ġposition Ġ= 0 ĊĠĠĠ Ġprivate Ġvar Ġnon Download Count Ġ= Ġ 0 ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ media ) ĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= ĠfindViewById ( R . id . rv Media ) ĊĠĠĠĠĠĠĠ Ġlinear LayoutManager Ġ= Ġandroidx . recyclerview . widget . Linear LayoutManager ( this , Ġandroidx . recyclerview . widget . Linear LayoutManager . HORIZONTAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġsnap Helper Ġ= Ġandroidx . recyclerview . widget . Pager Snap Helper () ĊĠĠĠĠĠĠĠ Ġsnap Helper . attach To RecyclerView ( re cyclerView ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= Ġlinear LayoutManager ĊĠĠĠĠĠĠĠ Ġmedia List Ġ= Ġintent . get Serializable Extra (" images ") Ġas ĠArrayList < Media > ĊĠĠĠĠĠĠĠ Ġfor ( media Item Ġin Ġmedia List ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( media Item . message Type Ġ== Ġ 1 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Path Ġ= ĠEnvironment . get External Storage Directory (). toString () Ġ+ ĠFile . separator Ġ+ ĠF ugu App Constant . APP _ NAME _ SHORT Ġ Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile . separator Ġ+ ĠCommon Data . get Workspace Response ( com . skeleton . mvp . data . db . Common Data . get Common Response (). getData (). workspaces Info [ com . skeleton . mvp . data . db . Common Data . getCurrent Signed In Position ()]. f ugu SecretKey ). workspace Name . replace (" Ġ". to Regex (), Ġ""). replace ("' s ". to Regex (), Ġ"") Ġ+ ĠFile . separator Ġ+ ĠF ugu App Constant . IMAGE ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Path Private Ġ= ĠEnvironment . get External Storage Directory (). toString () Ġ+ ĠFile . separator Ġ+ ĠF ugu App Constant . APP _ NAME _ SHORT Ġ Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile . separator Ġ+ ĠCommon Data . get Workspace Response ( com . skeleton . mvp . data . db . Common Data . get Common Response (). getData (). workspaces Info [ com . skeleton . mvp . data . db . Common Data . getCurrent Signed In Position ()]. f ugu SecretKey ). workspace Name . replace (" Ġ". to Regex (), Ġ""). replace ("' s ". to Regex (), Ġ"") Ġ+ ĠFile . separator Ġ+ ĠF ugu App Constant . PRIVATE _ I MAGES ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj pg File Ġ= ĠFile ( dir Path Ġ+ ĠFile . separator Ġ+ Ġmedia Item . message . fileName Ġ+ Ġ"_" Ġ+ Ġmedia Item . m uid Ġ+ Ġ". jpg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj pg Private File Ġ= ĠFile ( dir Path Private Ġ+ ĠFile . separator Ġ+ Ġmedia Item . message . fileName Ġ+ Ġ"_" Ġ+ Ġmedia Item . m uid Ġ+ Ġ". jpg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj peg File Ġ= ĠFile ( dir Path Ġ+ ĠFile . separator Ġ+ Ġmedia Item . message . fileName Ġ+ Ġ"_" Ġ+ Ġmedia Item . m uid Ġ+ Ġ". jpeg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj peg Private File Ġ= ĠFile ( dir Path Private Ġ+ ĠFile . separator Ġ+ Ġmedia Item . message . fileName Ġ+ Ġ"_" Ġ+ Ġmedia Item . m uid Ġ+ Ġ". jpeg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( jpg File . exists () Ġ|| Ġj peg File . exists () Ġ|| Ġj pg Private File . exists () Ġ|| Ġj peg Private File . exists () Ġ|| Ġmedia Item . message . imageUrl . split (". ")[ media Item . message . imageUrl . split (". "). size Ġ- Ġ 1 ]. equals (" gif ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownloaded Media List . add ( media Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (( media Item . message Type Ġ== Ġ 1 1 Ġ|| Ġmedia Item . message Type Ġ== Ġ 1 2 ) Ġ&& ! TextUtils . isEmpty ( Common Data . get Cached FilePath ( media Item . message . url , media Item . m uid ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownloaded Media List . add ( media Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// media Gallery Adapter Ġ= ĠMedia Gallery Adapter ( intent . get Serializable Extra (" images ") Ġas ĠArrayList < Media >, Ġthis ) ĊĠĠĠĠĠĠĠ Ġmedia Gallery Adapter Ġ= Ġif ( intent . has Extra (" is From Show More ")){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Gallery Adapter ( downloaded Media List , Ġthis ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Gallery Adapter ( media List , Ġthis ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġmedia Gallery Adapter ĊĠĠĠĠĠĠĠ Ġif ( intent . has Extra (" is From Show More ")){ ĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 0 .. intent . getInt Extra (" position ", Ġ 0 )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( media List [ i ]. message Type Ġ== Ġ 1 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Path Ġ= ĠEnvironment . get External Storage Directory (). toString () Ġ+ ĠFile . separator Ġ+ ĠF ugu App Constant . APP _ NAME _ SHORT Ġ Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile . separator Ġ+ ĠCommon Data . get Workspace Response ( com . skeleton . mvp . data . db . Common Data . get Common Response (). getData (). workspaces Info [ com . skeleton . mvp . data . db . Common Data . getCurrent Signed In Position ()]. f ugu SecretKey ). workspace Name . replace (" Ġ". to Regex (), Ġ""). replace ("' s ". to Regex (), Ġ"") Ġ+ ĠFile . separator Ġ+ ĠF ugu App Constant . IMAGE ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Path Private Ġ= ĠEnvironment . get External Storage Directory (). toString () Ġ+ ĠFile . separator Ġ+ ĠF ugu App Constant . APP _ NAME _ SHORT Ġ Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile . separator Ġ+ ĠCommon Data . get Workspace Response ( com . skeleton . mvp . data . db . Common Data . get Common Response (). getData (). workspaces Info [ com . skeleton . mvp . data . db . Common Data . getCurrent Signed In Position ()]. f ugu SecretKey ). workspace Name . replace (" Ġ". to Regex (), Ġ""). replace ("' s ". to Regex (), Ġ"") Ġ+ ĠFile . separator Ġ+ ĠF ugu App Constant . PRIVATE _ I MAGES ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj pg File Ġ= ĠFile ( dir Path Ġ+ ĠFile . separator Ġ+ Ġmedia List [ i ]. message . fileName Ġ+ Ġ"_" Ġ+ Ġmedia List [ i ]. m uid Ġ+ Ġ". jpg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj pg Private File Ġ= ĠFile ( dir Path Private Ġ+ ĠFile . separator Ġ+ Ġmedia List [ i ]. message . fileName Ġ+ Ġ"_" Ġ+ Ġmedia List [ i ]. m uid Ġ+ Ġ". jpg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj peg File Ġ= ĠFile ( dir Path Ġ+ ĠFile . separator Ġ+ Ġmedia List [ i ]. message . fileName Ġ+ Ġ"_" Ġ+ Ġmedia List [ i ]. m uid Ġ+ Ġ". jpeg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj peg Private File Ġ= ĠFile ( dir Path Private Ġ+ ĠFile . separator Ġ+ Ġmedia List [ i ]. message . fileName Ġ+ Ġ"_" Ġ+ Ġmedia List [ i ]. m uid Ġ+ Ġ". jpeg ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! jpg File . exists () Ġ&& Ġ! jpeg File . exists () Ġ&& Ġ! jpg Private File . exists () Ġ&& Ġ! jpeg Private File . exists () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! media List [ i ]. message . imageUrl . split (". ")[ media List [ i ]. message . imageUrl . split (". "). size Ġ- Ġ 1 ]. equals (" gif ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnon Download Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (( media List [ i ]. message Type Ġ== Ġ 1 1 Ġ|| Ġmedia List [ i ]. message Type Ġ== Ġ 1 2 ) Ġ&& ĠText Utils . isEmpty ( Common Data . get Cached FilePath ( media List [ i ]. message . url , media List [ i ]. m uid ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnon Download Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnon Download Count = 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġre cyclerView . scrollTo Position ( intent . getInt Extra (" position ", Ġ 0 ) Ġ- Ġnon Download Count ) ĊĠĠĠĠĠĠĠ Ġ// ll Close . setOnClickListener Ġ{ Ġon Back Pressed () Ġ} ĊĠĠĠ Ġ} Ċ } Ċ