package Ġcom . f eng y ong ge . wan android client . common . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . widget . ProgressBar Ċ import Ġcom . f eng y ong ge . wan android client . R Ċ /** Ċ Ġ* Ġdescribe Ċ Ġ* Ġ èĩªå®ļä¹ī è¿Ľ åº¦ æĿ¡ webview Ċ Ġ* Ġ@ author Ġf eng y ong ge ( f eng y ong ge 9 8 @ gmail . com ) Ċ Ġ* Ġ@ version ĠV 1 . 0 Ċ Ġ* Ġ@ date Ġ 2 0 2 0 / 0 9 / 0 8 Ċ Ġ*/ Ċ class ĠProgress WebView ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ċ ) Ġ: ĠWebView ( context , Ġattrs ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġprogress bar : ĠProgress Bar Ġ= ĠProgress Bar ( context , Ġnull , Ġandroid . R . attr . progress Bar Style Horizontal ) ĊĠĠĠ Ġprivate Ġvar Ġm Web Chrome Client Listener : ĠWeb Chrome Client Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġopen Ġinner Ġclass ĠWeb Chrome Client Ġ: Ġandroid . webkit . Web Chrome Client () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( view : ĠWebView , Ġnew Progress : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Progress Ġ== Ġ 1 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress bar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( progressbar . visibility Ġ== ĠView . GONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress bar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress bar . progress Ġ= Ġnew Progress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Progress Changed ( view , Ġnew Progress ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Scroll Changed ( l : ĠInt , Ġt : ĠInt , Ġold l : ĠInt , Ġold t : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlp Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress bar . layout Params Ġas ĠLayout Params ĊĠĠĠĠĠĠĠ Ġlp . x Ġ= Ġl ĊĠĠĠĠĠĠĠ Ġlp . y Ġ= Ġt ĊĠĠĠĠĠĠĠ Ġprogress bar . layout Params Ġ= Ġlp ĊĠĠĠĠĠĠĠ Ġsuper . on Scroll Changed ( l , Ġt , Ġold l , Ġold t ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Web Chrome Client Listener ( listener : ĠWeb Chrome Client Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Web Chrome Client Listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠWeb Chrome Client Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Received Title ( title : ĠString ?) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress bar . layout Params Ġ= ĠLayout Params ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Params . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources . get Drawable ( R . drawable . layer _ progress ) ĊĠĠĠĠĠĠĠ Ġprogress bar . progress Drawable Ġ= Ġdrawable ĊĊĠĠĠĠĠĠĠ Ġadd View ( progressbar ) ĊĠĠĠĠĠĠĠ Ġval Ġweb Chrome Client : ĠWeb Chrome Client Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠWeb Chrome Client () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Received Title ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview : ĠWebView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Received Title ( view , Ġtitle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġm Web Chrome Client Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Web Chrome Client Listener !!. on Received Title ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Web Chrome Client ( web Chrome Client ) ĊĊĠĠĠĠĠĠĠ Ġsettings . set Support Zoom ( true ) ĊĠĠĠĠĠĠĠ Ġsettings . built In Zoom Controls Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ }