package Ġbe . sci ens ano . cor on alert . ui Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . KeyEvent Ċ import Ġandroid . view . View Ċ import Ġandroid . webkit . Web Chrome Client Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . webkit . WebView Client Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġbe . sci ens ano . cor on alert . util . Date Util Ċ import Ġde . r ki . cor on aw arn app . R Ċ import Ġde . r ki . cor on aw arn app . databinding . Activity Link Test Binding Ċ import Ġde . r ki . cor on aw arn app . util . Connectivity Helper Ċ import Ġde . r ki . cor on aw arn app . util . Dialog Helper Ċ Ċ class ĠLink Test Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG : ĠString ? Ġ= ĠLink Test Activity :: class . simple Name ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠURL _ ARGUMENT Ġ= Ġ" url " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠR 1 _ ARGUMENT Ġ= Ġ" r 1 " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠT 0 _ ARGUMENT Ġ= Ġ" t 0 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠACT IV ATION _ RESULT Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠCON FIRM ATION _ URL S Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" cor ona - alert - form - confirmation ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" formula ire - cor on alert - confirmation ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" cor on alert - form ul ier - be vest ig ing ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" cor on alert - form ular - best at igung " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart ( activity : ĠActivity , Ġurl : ĠString , Ġr 1 : ĠString , Ġt 0 : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠLink Test Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( URL _ ARGUMENT , Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( R 1 _ ARGUMENT , Ġr 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( T 0 _ ARGUMENT , Ġt 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . startActivity For Result ( intent , ĠACT IV ATION _ RESULT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Link Test Binding ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġurl : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtest Code : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdate Inf ect ious : ĠString ĊĊĠĠĠ Ġ@ Suppress Lint (" Set JavaScript Enabled ") ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ link _ test ) ĊĊĠĠĠĠĠĠĠ Ġval Ġstarting Url Ġ= Ġintent . extras ?. getString ( URL _ ARGUMENT ) Ġ?: Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠ Ġtest Code Ġ= Ġintent . extras ?. getString ( R 1 _ ARGUMENT ) Ġ?: Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠ Ġdate Inf ect ious Ġ= Ġintent . extras ?. getString ( T 0 _ ARGUMENT ) Ġ?: Ġthrow ĠIllegalStateException () ĊĊĊĠĠĠĠĠĠĠ Ġbinding . information Header . header Button Back . button Icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . web View . settings . java Script Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġbinding . web View . settings . dom Storage Enabled Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" Magic Number ") ĊĠĠĠĠĠĠĠ Ġbinding . web View . 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 Ġ!= Ġ 0 Ġ&& Ġnew Progress Ġ!= Ġ 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . web View . web View Client Ġ= Ġobject Ġ: ĠCustom Browser () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"${ starting Url }& read - only = 1 " ĊĊĠĠĠĠĠĠĠ Ġdate Inf ect ious Ġ= Ġandroid . text . format . DateFormat . format ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" dd / MM / yyyy ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDate Util . parse Server Date ( date Inf ect ious ). toDate () ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠString ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Connectivity Helper . is Network Enabled ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . web View . load Url ( url ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Helper . show Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Helper . Dialog Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Link Test Activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . activity _ link _ test _ error _ title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . activity _ link _ test _ error _ body , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . activity _ link _ test _ error _ button _ positive , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . activity _ link _ test _ error _ button _ negative , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbinding . web View . load Url ( url ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġfinish () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon KeyDown ( keyCode : ĠInt , Ġevent : ĠKeyEvent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġthe Ġkey Ġevent Ġwas Ġthe ĠBack Ġbutton Ġand Ġif Ġthere 's Ġhistory ĊĠĠĠĠĠĠĠ Ġif Ġ( keyCode Ġ== ĠKeyEvent . KEYCODE _ BACK Ġ&& Ġbinding . web View . can Go Back ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . web View . go Back () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġit Ġwasn 't Ġthe ĠBack Ġkey Ġor Ġthere 's Ġno Ġweb Ġpage Ġhistory , Ġbubble Ġup Ġto Ġthe Ġdefault ĊĠĠĠĠĠĠĠ Ġ// Ġsystem Ġbehavior Ġ( prob ably Ġexit Ġthe Ġactivity ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on KeyDown ( keyCode , Ġevent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġinner Ġclass ĠCustom Browser Ġ: ĠWebView Client () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Finished ( view : ĠWebView , Ġnew Url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Url Ġ== Ġurl ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// strip Ġhtml ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . load Url ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" javascript :" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" if ( document . getElementById (' cookie - notice ')) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" document . getElementById (' cookie - notice '). style . display Ġ= Ġ' none '; " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" document . getElementsByClassName (' navbar ')[ 0 ]. style . display Ġ= Ġ' none '; " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" document . getElementsByClassName (' entry - header ')[ 0 ]. style . display Ġ= Ġ' none '; " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" document . getElementsByClassName (' vc _ row ')[ 0 ]. style . display Ġ= Ġ' none '; " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" document . getElementsByClassName (' vc _ row ')[ 1 ]. style . display Ġ= Ġ' none '; " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" document . getElementsByClassName (' upper - footer ')[ 0 ]. style . display Ġ= Ġ' none '; " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" document . getElementById (' wrapper '). style . padding Top Ġ= Ġ' 0 '; null " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// set Ġinputs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . load Url ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" javascript :" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" set Code (' ${ test Code }'); " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" setDate (' ${ date Inf ect ious }'); " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" Return Count ") ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġshould Override Url Loading ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview : ĠWebView , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Url : ĠString ĊĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( CONFIRM ATION _ URL S . any Ġ{ Ġconfirmation Url Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse ( new Url ). toString (). contains ( confirmation Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ OK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Uri . parse ( new Url ). host Ġ== ĠUri . parse ( url ). host ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġis Ġmy Ġweb Ġsite , Ġso Ġdo Ġnot Ġoverride ; Ġlet Ġmy ĠWebView Ġload Ġthe Ġpage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠOtherwise , Ġthe Ġlink Ġis Ġnot Ġfor Ġa Ġpage Ġon Ġmy Ġsite , Ġso Ġlaunch Ġanother ĠActivity Ġthat Ġhandles ĠURLs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW , ĠUri . parse ( new Url )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ