/* Ċ Ġ* Ġ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 . drawer . rub ric . ui Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . webkit . Web Chrome Client Ċ import Ġandroid . webkit . WebView Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġcom . in structure . canvas api 2 . utils . Api Prefs Ċ import Ġcom . in structure . inter actions . router . Route Ċ import Ġcom . in structure . p anda utils . utils .* Ċ import Ġcom . in structure . p anda utils . views . Canvas WebView Ċ import Ġcom . in structure . student . R Ċ import Ġcom . in structure . student . activity . Internal WebView Activity Ċ import Ġcom . in structure . student . router . Route Matcher Ċ import Ġkotlinx . android . synt hetic . main . fragment _ submission _ rub ric _ description .* Ċ Ċ class ĠSubmission Rub ric Description Fragment Ġ: ĠDialog Fragment () Ġ{ ĊĊĠĠĠ Ġvar Ġtitle Ġby ĠString Arg ( key Ġ= ĠConst . TITLE ) ĊĠĠĠ Ġvar Ġdescription Ġby ĠString Arg ( key Ġ= ĠConst . BODY ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġretain Instance Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ submission _ rub ric _ description , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġtoolbar . setup As Back Button ( this ) ĊĠĠĠĠĠĠĠ ĠView St y ler . theme Toolbar Bottom Sheet ( require Activity (), Ġresources . getBoolean ( R . bool . is Device Tablet ), Ġtoolbar , ĠColor . BLACK , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠShow Ġprogress Ġbar Ġwhile Ġloading Ġdescription ĊĠĠĠĠĠĠĠ ĠprogressBar . setVisible () ĊĠĠĠĠĠĠĠ ĠprogressBar . announce For Accessibility ( getString ( R . string . loading )) ĊĠĠĠĠĠĠĠ ĠwebView . web Chrome Client Ġ= Ġobject Ġ: ĠWeb Chrome Client () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( view : ĠWebView ?, Ġnew Progress : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Progress Changed ( view , Ġnew Progress ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Progress Ġ>= Ġ 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar ?. set G one () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠwebView ?. setVisible () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠwebView . canvas WebView Client Callback Ġ= Ġobject Ġ: ĠCanvas WebView . Canvas WebView Client Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġopen Media From WebView ( mime : ĠString , Ġurl : ĠString , Ġfilename : ĠString ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Started Callback ( web View : ĠWebView , Ġurl : ĠString ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Finished Callback ( web View : ĠWebView , Ġurl : ĠString ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcan Route Intern ally Delegate ( url : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoute Matcher . can Route Intern ally ( require Context (), Ġurl , ĠApi Prefs . domain , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġroute Intern ally Callback ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Matcher . can Route Intern ally ( require Context (), Ġurl , ĠApi Prefs . domain , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠwebView . canvas Embedded WebView Callback Ġ= Ġobject Ġ: ĠCanvas WebView . Canvas Embedded WebView Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġlaunch Internal WebView Fragment ( url : ĠString ) Ġ= Ġrequire Activity (). startActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInternal WebView Activity . create Intent ( require Activity (), Ġurl , Ġ"", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġshould Launch Internal WebView Fragment ( url : ĠString ): ĠBoolean Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġmake Ġthe ĠWebView Ġbackground Ġtransparent ĊĠĠĠĠĠĠĠ ĠwebView . setBackground Resource ( android . R . color . transparent ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠLoad Ġdescription ĊĠĠĠĠĠĠĠ ĠwebView . load Html ( description , Ġtitle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġmake Route ( title : ĠString , Ġdescription : ĠString ): ĠRoute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Const . TITLE , Ġtitle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Const . BODY , Ġdescription ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoute ( Submission Rub ric Description Fragment :: class . java , Ġnull , Ġargs ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( route : ĠRoute ) Ġ= ĠSubmission Rub ric Description Fragment (). with Args ( route . arguments ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ