/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 Ġ- Ġ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 . teacher . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . in structure . canvas api 2 . models . File Folder Ċ import Ġcom . in structure . p anda utils . utils . DP Ċ import Ġcom . in structure . teacher . R Ċ import Ġcom . in structure . teacher . utils . getColor Compat Ċ import Ġcom . squareup . pic asso . Pic asso Ċ Ċ class ĠFile Folder Published Status Icon View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠFrame Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Assignment Icon : ĠImageView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Published Status Icon : ĠImageView ĊĠĠĠ Ġprivate Ġvar Ġm Icon Placeholder Ġ= ĠR . drawable . ic _ assignment ĊĠĠĠ Ġprivate Ġvar Ġm Published Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġcontext . DP ( 3 2 F ) ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġcontext . DP ( 3 2 F ) ĊĠĠĠĠĠĠĠ Ġset Measured Dimension ( width . toInt (), Ġheight . toInt ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// configure Ġimage Ġviews ĊĠĠĠĠĠĠĠ Ġadd View ( init Assignment Icon ( context )) ĊĠĠĠĠĠĠĠ Ġadd View ( init Published Status Icon ( context )) ĊĊĠĠĠĠĠĠĠ Ġattrs ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġcontext . obtain Styled Attributes ( it , ĠR . style able . Published Status Icon View ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 0 Ġuntil Ġa . index Count ). map Ġ{ Ġa . getIndex ( it ) Ġ}. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Published Status Icon View _ icon Ġ-> Ġm Icon Placeholder Ġ= Ġa . getResource Id ( it , ĠR . drawable . ic _ assignment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style able . Published Status Icon View _ published Ġ-> Ġm Published Ġ= Ġa . getBoolean ( it , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġa . recycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Icon ( m Icon Placeholder ) ĊĠĠĠĠĠĠĠ Ġset Published Status ( File Folder ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Assignment Icon ( context : ĠContext ): ĠImageView Ġ{ ĊĠĠĠĠĠĠĠ Ġm Assignment Icon Ġ= ĠImageView ( context ) ĊĠĠĠĠĠĠĠ Ġm Assignment Icon . id Ġ= ĠR . id . assignment Icon ĊĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġcontext . DP ( 2 8 ) ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġcontext . DP ( 2 8 ) ĊĠĠĠĠĠĠĠ Ġval Ġassignment Icon Params : ĠLayout Params Ġ= ĠLayout Params ( width . toInt (), Ġheight . toInt ()) ĊĊĠĠĠĠĠĠĠ Ġm Assignment Icon . layout Params Ġ= Ġassignment Icon Params ĊĊĠĠĠĠĠĠĠ Ġreturn Ġm Assignment Icon ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Published Status Icon ( context : ĠContext ): ĠImageView Ġ{ ĊĠĠĠĠĠĠĠ Ġm Published Status Icon Ġ= ĠImageView ( context ) ĊĠĠĠĠĠĠĠ Ġm Published Status Icon . id Ġ= ĠR . id . published Status Icon ĊĊĠĠĠĠĠĠĠ Ġm Published Status Icon . setBackground Resource ( R . drawable . bg _ published _ icon ) ĊĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġcontext . DP ( 2 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġcontext . DP ( 2 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġpublished Icon Params : ĠLayout Params Ġ= ĠLayout Params ( width . toInt (), Ġheight . toInt ()) ĊĠĠĠĠĠĠĠ Ġpublished Icon Params . gravity Ġ= ĠGr avity . BOTTOM Ġor ĠGr avity . END ĊĊĠĠĠĠĠĠĠ Ġm Published Status Icon . layout Params Ġ= Ġpublished Icon Params ĊĠĠĠĠĠĠĠ Ġval Ġpadding Ġ= Ġcontext . DP ( 2 ) ĊĠĠĠĠĠĠĠ Ġm Published Status Icon . set Padding ( padding . toInt (), Ġpadding . toInt (), Ġpadding . toInt (), Ġpadding . toInt ()) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġm Published Status Icon ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Icon (@ Drawable Res Ġicon Res : ĠInt , Ġt int Color : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Assignment Icon . setImage Drawable ( Context Compat . get Drawable ( context , Ġicon Res )) ĊĠĠĠĠĠĠĠ Ġt int Color ?. let Ġ{ Ġm Assignment Icon . setColor Filter ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Image ( thumbnail Url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPic asso . with ( context ). load ( thumbnail Url ). into ( m Assignment Icon ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Published Status ( file Folder : ĠFile Folder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// set Ġpublished Ġdrawable ĊĠĠĠĠĠĠĠ Ġif Ġ(! file Folder . is Locked Ġ&& Ġ! file Folder . is Hidden Ġ&& Ġfile Folder . lock Date Ġ== Ġnull Ġ&& Ġfile Folder . unlock Date Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPub lished ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Published Status Icon . setImage Drawable ( Context Compat . get Drawable ( context , ĠR . drawable . ic _ complete _ solid )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Published Status Icon . setColor Filter ( context . getColor Compat ( R . color . published Green )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Published Status Icon . content Description Ġ= Ġcontext . getString ( R . string . published ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( file Folder . is Locked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUn published ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Published Status Icon . setImage Drawable ( Context Compat . get Drawable ( context , ĠR . drawable . ic _ complete )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Published Status Icon . setColor Filter ( context . getColor Compat ( R . color . default Text Gray )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Published Status Icon . content Description Ġ= Ġcontext . getString ( R . string . not _ published ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( file Folder . is Hidden Ġ|| Ġfile Folder . lock Date Ġ!= Ġnull Ġ|| Ġfile Folder . unlock Date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRe stricted ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Published Status Icon . setImage Drawable ( Context Compat . get Drawable ( context , ĠR . drawable . ic _ restricted )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Published Status Icon . setColor Filter ( context . getColor Compat ( R . color . red )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Published Status Icon . content Description Ġ= Ġcontext . getString ( R . string . restricted ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ