/* Ċ Ġ* Ġ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 . fragments Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . webkit . WebView Ċ import Ġcom . in structure . canvas api 2 . utils . Api Prefs Ċ import Ġcom . in structure . p anda utils . utils . View St y ler Ċ import Ġcom . in structure . p anda utils . utils . is Tablet Ċ import Ġcom . in structure . p anda utils . utils . set G one Ċ import Ġcom . in structure . p anda utils . utils . setVisible Ċ import Ġcom . in structure . p anda utils . views . Canvas WebView Ċ import Ġcom . in structure . teacher . router . Route Matcher Ċ import Ġcom . in structure . teacher . utils . is Tablet Ċ import Ġcom . in structure . teacher . utils . setup Back Button Ċ import Ġkotlinx . android . synt hetic . main . fragment _ internal _ webview .* Ċ import Ġkotlinx . coroutines . Job Ċ Ċ class ĠQu iz Preview Web view Fragment Ġ: ĠInternal WebView Fragment () Ġ{ ĊĊĠĠĠ Ġvar Ġm Clicked Preview Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġapi Call : ĠJob ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġfun Ġclick Preview Button () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠTry Ġto Ġautomatically Ġtap Ġthe ĠPreview Ġbutton Ġso Ġwe Ġtake Ġthem Ġdirectly Ġinto Ġthe Ġquiz Ġpreview ĊĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). run On Ui Thread ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Clicked Preview Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjs Ġ= Ġ" javascript : Ġ{ Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" document . getElementById (' preview _ quiz _ button '). click (); " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" }; " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas WebView . evaluate Javascript ( js , Ġ{ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ}, Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Should Load Url ( false ) ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġcanvas WebView . canvas WebView Client Callback Ġ= Ġobject Ġ: ĠCanvas WebView . Canvas WebView Client Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġopen Media From WebView ( mime : ĠString , Ġurl : ĠString , Ġfilename : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Matcher . open Media ( require Activity (), Ġurl ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Finished Callback ( web View : ĠWebView , Ġurl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġthe Ġteacher Ġsubmit s Ġa Ġquiz Ġpreview , Ġit Ġwill Ġload Ġthe Ġdetails Ġagain Ġand Ġautomatically Ġclick Ġthe Ġpreview Ġbutton Ġagain ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! m Clicked Preview ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick Preview Button () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading ?. set G one () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Started Callback ( web View : ĠWebView , Ġurl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading ?. setVisible () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcan Route Intern ally Delegate ( url : ĠString ): ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġroute Intern ally Callback ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRoute Matcher . can Route Intern ally ( activity , Ġurl , ĠApi Prefs . domain , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġload Url ( url ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup Toolbar ( course Color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setup Back Button Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! can Go Back ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( require Context () Ġas ĠActivity ). on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgo Back () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView St y ler . set Toolbar Elevation Small ( require Context (), Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView St y ler . theme Toolbar Bottom Sheet ( require Activity (), Ġis Tablet , Ġit , ĠColor . BLACK , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġapi Call ?. cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġval ĠURL Ġ= Ġ" url " ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġval ĠTITLE Ġ= Ġ" title " ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( args : ĠBundle ) Ġ= ĠQu iz Preview Web view Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġargs . getString ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġargs . getString ( TITLE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġmake Bundle ( url : ĠString , Ġtitle : ĠString ): ĠBundle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( URL , Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( TITLE , Ġtitle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . put Boolean ( DARK _ TOOL BAR , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġargs ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ