/* Ċ Ġ* Ġ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 . holders Ċ Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . widget . PopupMenu Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . in structure . canvas api 2 . models . Course Ċ import Ġcom . in structure . p anda utils . utils .* Ċ import Ġcom . in structure . teacher . R Ċ import Ġcom . in structure . teacher . utils . Const . CO URSE _ EDIT _ COLOR _ ID Ċ import Ġcom . in structure . teacher . utils . Const . CO URSE _ EDIT _ NAME _ ID Ċ import Ġcom . in structure . teacher . utils . Teacher Prefs Ċ import Ġkotlinx . android . synt hetic . main . adapter _ courses . view .* ĊĊ Ċ class ĠCour ses ViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHOLDER _ RES _ ID Ġ= ĠR . layout . adapter _ courses ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind ( course : ĠCourse , Ġcallback : Ġcom . in structure . teacher . fragments . All Courses Fragment . Course Browser Callback ?) Ġ= Ġwith ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle TextView . text Ġ= Ġcourse . name ĊĠĠĠĠĠĠĠ Ġcourse Code . text Ġ= Ġcourse . course Code ĊĊĠĠĠĠĠĠĠ Ġval Ġcourse Color Ġ= ĠColor Keeper . get Or Generate Color ( course ) ĊĠĠĠĠĠĠĠ Ġcard View . set Card BackgroundColor ( course Color ) ĊĠĠĠĠĠĠĠ Ġtitle TextView . setTextColor ( course Color ) ĊĊĠĠĠĠĠĠĠ Ġcourse ImageView . set Course Image ( course , Ġcourse Color , Ġ! Teacher Prefs . hide Course Color Overlay ) ĊĊĠĠĠĠĠĠĠ Ġcourse Color Indicator . background Tint List Ġ= ĠColor State List . valueOf ( course . color ) ĊĠĠĠĠĠĠĠ Ġcourse Color Indicator . setVisible ( Teacher Prefs . hide Course Color Overlay ) ĊĊĠĠĠĠĠĠĠ Ġcard View . setOnClickListener Ġ{ Ġcallback ?. on Show Course Details ( course ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverflow . onClick With Require Network Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpopup Ġ= ĠPopup Menu ( it . context , Ġit , ĠGr avity . START . and ( Gravity . TOP ), 0 , ĠR . style . Widget _ AppCompat _ PopupMenu _ Overflow ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmenu Ġ= Ġpopup . menu ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġthings Ġto Ġthe Ġpopup Ġmenu ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . add ( 0 , ĠCO URSE _ EDIT _ NAME _ ID , ĠCO URSE _ EDIT _ NAME _ ID , ĠR . string . edit _ nickname ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . add ( 0 , ĠCO URSE _ EDIT _ COLOR _ ID , ĠCO URSE _ EDIT _ COLOR _ ID , ĠR . string . edit _ course _ color ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġclick Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . setOn MenuItem ClickListener Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( item . itemId Ġ== ĠCO URSE _ EDIT _ NAME _ ID ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. on Edit Course Nick name ( course ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( item . itemId Ġ== ĠCO URSE _ EDIT _ COLOR _ ID ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. on Pick Course Color ( course ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ