/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 Ġ- Ġpresent ĠIn structure , ĠInc . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠThis Ġprogram Ġis Ġfree Ġsoftware : Ġyou Ġcan Ġredistribute Ġit Ġand / or Ġmodify Ċ Ġ* ĠĠĠĠ Ġit Ġunder Ġthe Ġterms Ġof Ġthe ĠGNU ĠGeneral ĠPublic ĠLicense Ġas Ġpublished Ġby Ċ Ġ* ĠĠĠĠ Ġthe ĠFree ĠSoftware ĠFoundation , Ġversion Ġ 3 Ġof Ġthe ĠLicense . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠThis Ġprogram Ġis Ġdistributed Ġin Ġthe Ġhope Ġthat Ġit Ġwill Ġbe Ġuseful , Ċ Ġ* ĠĠĠĠ Ġbut ĠWITHOUT ĠANY ĠWARRANTY ; Ġwithout Ġeven Ġthe Ġimplied Ġwarranty Ġof Ċ Ġ* ĠĠĠĠ ĠMERCHANTABILITY Ġor ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE . Ġ ĠSee Ġthe Ċ Ġ* ĠĠĠĠ ĠGNU ĠGeneral ĠPublic ĠLicense Ġfor Ġmore Ġdetails . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠYou Ġshould Ġhave Ġreceived Ġa Ġcopy Ġof Ġthe ĠGNU ĠGeneral ĠPublic ĠLicense Ċ Ġ* ĠĠĠĠ Ġalong Ġwith Ġthis Ġprogram . Ġ ĠIf Ġnot , Ġsee Ġ< http :// www . gnu . org / licenses />. Ċ Ġ* Ċ Ġ*/ Ċ package Ġcom . in structure . student . mob ius . assignment Details . submission Details . ui Ċ Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . fragment . app . Fragment State Pager Adapter Ċ import Ġandroidx . view pager . widget . Pager Adapter Ċ import Ġcom . in structure . canvas api 2 . utils . Analytics Ċ import Ġcom . in structure . canvas api 2 . utils . Analytics Event Constants Ċ import Ġcom . in structure . canvas api 2 . utils . Analytics Param Constants Ċ import Ġcom . in structure . student . mob ius . assignment Details . submission Details . drawer . comments . ui . Submission Comments Fragment Ċ import Ġcom . in structure . student . mob ius . assignment Details . submission Details . drawer . files . ui . Submission Files Fragment Ċ import Ġcom . in structure . student . mob ius . assignment Details . submission Details . drawer . rub ric . ui . Submission Rub ric Fragment Ċ Ċ class ĠSubmission Details Drawer Pager Adapter ( fragment Manager : ĠFragment Manager ) Ġ: ĠFragment State Pager Adapter ( fragment Manager ) Ġ{ ĊĊĠĠĠ Ġvar Ġtab Data : ĠList < Submission Details Tab Data > Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field . size Ġ!= Ġvalue . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcached Fragments Ġ= ĠArray ( value . size ) Ġ{ Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( idx Ġin Ġcached Fragments . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field [ idx ] Ġ!= Ġvalue [ idx ]) Ġcached Fragments [ idx ] Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġcached Fragments : ĠArray < Fragment ?> Ġ= Ġempty Array () ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠ Ġcached Fragments [ position ] ĊĠĠĠĠĠĠĠ Ġvar Ġcached Fragment Ġ= Ġcached Fragments [ position ] ĊĠĠĠĠĠĠĠ Ġif Ġ( cached Fragment Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Data Ġ= Ġtab Data [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcached Fragment Ġ= Ġwhen Ġ( tab Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSubmission Details Tab Data . File Data Ġ-> ĠSubmission Files Fragment . newInstance ( data Ġ= Ġtab Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSubmission Details Tab Data . Rub ric Data Ġ-> ĠSubmission Rub ric Fragment . newInstance ( tab Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSubmission Details Tab Data . Comment Data Ġ-> ĠSubmission Comments Fragment . newInstance ( tab Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcached Fragments [ position ] Ġ= Ġcached Fragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcached Fragment ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Position (` object `: ĠAny ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment : ĠFragment Ġ= Ġ` object ` Ġas ? ĠFragment Ġ?: Ġreturn ĠP ager Adapter . POSITION _ UN CHANGED ĊĠĠĠĠĠĠĠ Ġval Ġidx Ġ= Ġcached Fragments . indexOf ( fragment ) ĊĠĠĠĠĠĠĠ Ġreturn Ġidx . take If Ġ{ Ġit Ġ>= Ġ 0 Ġ} Ġ?: ĠP ager Adapter . POSITION _ NONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Page Title ( position : ĠInt ) Ġ= Ġtab Data [ position ]. tab Name ĊĊĠĠĠ Ġoverride Ġfun Ġget Count () Ġ= Ġtab Data . size Ċ } Ċ