package Ġru . ter r ak ok . gitlab client . ui . global . view . custom . code highlight Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . webkit . Web Chrome Client Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . webkit . WebView Client Ċ Ċ class ĠCode Highlight View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠWebView ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġon Code Highlight Listener : ĠOn Code Highlight Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġset On Code Highlight Progress Lister ( on Code Highlight Listener : ĠOn Code Highlight Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . on Code Highlight Listener Ġ= Ġon Code Highlight Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġload Url ( EMPTY _ PAGE ) ĊĠĠĠĠĠĠĠ Ġsettings . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Script Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Bar Style Ġ= ĠView . SCROLL BAR S _ INS IDE _ OVER LAY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Wide View Port Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Support Zoom ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilt In Zoom Controls Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Zoom Controls Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠwebView Client Ġ= Ġobject Ġ: ĠWebView Client () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Started ( view : ĠWebView ?, Ġurl : ĠString ?, Ġfav icon : ĠBitmap ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Page Started ( view , Ġurl , Ġfav icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( url Ġ!= ĠEMPTY _ PAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Code Highlight Listener ?. on Code Highlight Started () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Finished ( view : ĠWebView ?, Ġurl : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Page Finished ( view , Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( url Ġ!= ĠEMPTY _ PAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Code Highlight Listener ?. on Code Highlight Finished () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ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 Ġ( view . url Ġ!= ĠEMPTY _ PAGE Ġ&& Ġnew Progress Ġ== ĠPROG RESS _ PAGE _ LOADED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Code Highlight Listener ?. on Code Highlight Finished () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhighlight Code ( raw File : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjs Page Ġ= ĠCode Highlight Js Page . generate Page ( raw File , Ġ" default . css ") ĊĠĠĠĠĠĠĠ Ġload Data With Base URL (" file :/// android _ asset / code highlight /", Ġjs Page , Ġ" text / html ", Ġ" utf - 8 ", Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEMPTY _ PAGE Ġ= Ġ" about : blank " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPROG RESS _ PAGE _ LOADED Ġ= Ġ 1 0 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn Code Highlight Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Code Highlight Started () ĊĠĠĠĠĠĠĠ Ġfun Ġon Code Highlight Finished () ĊĠĠĠ Ġ} Ċ } Ċ