package Ġcom . com . my gift icon Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . webkit . URL Util Ċ import Ġandroid . webkit . Web Chrome Client Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . webkit . WebView Client Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . com . my gift icon . databinding . Activity Web view Binding Ċ Ċ class ĠWebView Activity Ġ Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Web view Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Web view Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġresult Content Ġ= Ġintent . getString Extra (" QR to Web "). toString () ĊĊĠĠĠĠĠĠĠ Ġif ( result Content . contains (" http ")){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Views ( result Content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Views (" https :// www . google . com / search ? q =$ result Content ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbind Views () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Set JavaScript Enabled ") ĊĠĠĠ Ġprivate Ġfun Ġinit Views ( result Content Ġ: ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . web View . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Client Ġ= ĠWebView Client () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Chrome Client Ġ= ĠWeb Chrome Client () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . java Script Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Url ( result Content ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . go Home Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . web View . load Url ( DEFAULT _ URL ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . address Bar . setOn Editor ActionListener Ġ{ Ġv , Ġaction Id , Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ== ĠEditor Info . IME _ ACTION _ DONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloading Url Ġ= Ġv . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( URL Util . is Network Url ( loading Url )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . web View . load Url ( loading Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . web View . load Url (" http :// $ loading Url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Editor ActionListener Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . go Back Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . web View . go Back () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . go Forward Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . web View . go Forward () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . refresh Layout . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . web View . reload () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠWebView Client Ġ: Ġandroid . webkit . WebView Client () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Started ( view : ĠWebView ?, Ġurl : ĠString ?, Ġfav icon : ĠBitmap ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Page Started ( view , Ġurl , Ġfav icon ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Finished ( view : ĠWebView ?, Ġurl : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Page Finished ( view , Ġurl ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . refresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . go Back Button . isEnabled Ġ= Ġbinding . web View . can Go Back () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . go Forward Button . isEnabled Ġ= Ġbinding . web View . can Go Forward () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . address Bar . setText ( url ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠWeb Chrome Client Ġ: Ġandroid . webkit . Web Chrome Client () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( view : ĠWebView ?, Ġnew Progress : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Progress Changed ( view , Ġnew Progress ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . progress Bar . progress Ġ= Ġnew Progress ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( binding . web View . can Go Back ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . web View . go Back () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġback Intent Ġ= ĠIntent ( this , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback Intent . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( back Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" ìĽ ¹ Ġë¸ Į ëĿ¼ ìļ° ìłĢ ë¥¼ Ġì¢ ħ ë£Į íĸĪ ìĬµëĭĪëĭ¤ .", ĠToast . LENGTH _ SHORT ). show () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ URL Ġ= Ġ" https :// www . google . com " ĊĠĠĠ Ġ} Ċ }