/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 1 9 ĠH az uki Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġjp . h az uki . y uz ub rowser . browser Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Asset Manager Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . gesture . Gesture Overlay View Ċ import Ġandroid . media . Audio Manager Ċ import Ġandroid . os .* Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view .* Ċ import Ġandroid . webkit .* Ċ import Ġandroid . widget .* Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġcom . google . android . material . app bar . AppBar Layout Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġjp . h az uki . async permissions . Async Permissions Ċ import Ġjp . h az uki . y uz ub rowser . browser . behavior . Bottom Bar Behavior Ċ import Ġjp . h az uki . y uz ub rowser . browser . behavior . WebView Behavior Ċ import Ġjp . h az uki . y uz ub rowser . browser . manager . User Action Manager Ċ import Ġjp . h az uki . y uz ub rowser . browser . tab . Tab ManagerFactory Ċ import Ġjp . h az uki . y uz ub rowser . browser . view . Toolbar Ċ import Ġjp . h az uki . y uz ub rowser . core . utility . extensions . app Cache FilePath Ċ import Ġjp . h az uki . y uz ub rowser . core . utility . extensions . get Fake Chrome UserAgent Ċ import Ġjp . h az uki . y uz ub rowser . core . utility . log . Error Report Ċ import Ġjp . h az uki . y uz ub rowser . core . utility . log . Logger Ċ import Ġjp . h az uki . y uz ub rowser . core . utility . utils . ui Ċ import Ġjp . h az uki . y uz ub rowser . download . core . data . Download File Ċ import Ġjp . h az uki . y uz ub rowser . download . ui . Fast Download Activity Ċ import Ġjp . h az uki . y uz ub rowser . download . ui . fragment . Save Web Archive Dialog Ċ import Ġjp . h az uki . y uz ub rowser . favicon . Fav icon Manager Ċ import Ġjp . h az uki . y uz ub rowser . legacy . Constants Ċ import Ġjp . h az uki . y uz ub rowser . legacy . action . Action Ċ import Ġjp . h az uki . y uz ub rowser . legacy . action . Action Name Array Ċ import Ġjp . h az uki . y uz ub rowser . legacy . action . item . Auto Page Scroll Action Ċ import Ġjp . h az uki . y uz ub rowser . legacy . action . item . Open Options Menu Action Ċ import Ġjp . h az uki . y uz ub rowser . legacy . action . item . Tab List Single Action Ċ import Ġjp . h az uki . y uz ub rowser . legacy . action . manager . Action Icon Manager Ċ import Ġjp . h az uki . y uz ub rowser . legacy . action . manager . Menu Action Manager Ċ import Ġjp . h az uki . y uz ub rowser . legacy . action . view . Action Activity Ċ import Ġjp . h az uki . y uz ub rowser . legacy . ad block . Add Ad Block Dialog Ċ import Ġjp . h az uki . y uz ub rowser . legacy . bookmark . view . show Add Bookmark Dialog Ċ import Ġjp . h az uki . y uz ub rowser . legacy . browser .* Ċ import Ġjp . h az uki . y uz ub rowser . legacy . browser . open able . Browser Open able Ċ import Ġjp . h az uki . y uz ub rowser . legacy . gesture . Gesture Manager Ċ import Ġjp . h az uki . y uz ub rowser . legacy . history . Browser History Manager Ċ import Ġjp . h az uki . y uz ub rowser . legacy . menu window . Menu Window Ċ import Ġjp . h az uki . y uz ub rowser . legacy . read it later . read It Later Ċ import Ġjp . h az uki . y uz ub rowser . legacy . search . Search Activity Ċ import Ġjp . h az uki . y uz ub rowser . legacy . settings . data . AppData Ċ import Ġjp . h az uki . y uz ub rowser . legacy . tab . Browser Tab Manager Ċ import Ġjp . h az uki . y uz ub rowser . legacy . tab . Tab List Layout Ċ import Ġjp . h az uki . y uz ub rowser . legacy . tab . Ui Tab Manager Ċ import Ġjp . h az uki . y uz ub rowser . legacy . tab . manager . Main Tab Data Ċ import Ġjp . h az uki . y uz ub rowser . legacy . tab . manager . On WebView Created Listener Ċ import Ġjp . h az uki . y uz ub rowser . legacy . tab . manager . Tab Manager Ċ import Ġjp . h az uki . y uz ub rowser . legacy . tab . manager . WebView Provider Ċ import Ġjp . h az uki . y uz ub rowser . legacy . toolbar . Toolbar Manager Ċ import Ġjp . h az uki . y uz ub rowser . legacy . toolbar . sub . WebView Find Dialog Ċ import Ġjp . h az uki . y uz ub rowser . legacy . toolbar . sub . WebView Find Dialog Factory Ċ import Ġjp . h az uki . y uz ub rowser . legacy . toolbar . sub . WebView Page Fast Scroller Ċ import Ġjp . h az uki . y uz ub rowser . legacy . utils . Crash ly t ics Utils Ċ import Ġjp . h az uki . y uz ub rowser . legacy . utils . Display Utils Ċ import Ġjp . h az uki . y uz ub rowser . legacy . utils . Web Utils Ċ import Ġjp . h az uki . y uz ub rowser . legacy . utils . extensions . save Archive Ċ import Ġjp . h az uki . y uz ub rowser . legacy . utils . network . Connection State Monitor Ċ import Ġjp . h az uki . y uz ub rowser . legacy . webkit . Tab Type Ċ import Ġjp . h az uki . y uz ub rowser . legacy . webkit . Web Custom View Handler Ċ import Ġjp . h az uki . y uz ub rowser . legacy . webkit . WebView Auto Scroll Manager Ċ import Ġjp . h az uki . y uz ub rowser . legacy . webkit . WebView Proxy Ċ import Ġjp . h az uki . y uz ub rowser . legacy . webrtc . Web Rtc Permission Handler Ċ import Ġjp . h az uki . y uz ub rowser . legacy . webrtc . core . Web Rtc Request Ċ import Ġjp . h az uki . y uz ub rowser . ui . Browser Application Ċ import Ġjp . h az uki . y uz ub rowser . ui . Browser State Ċ import Ġjp . h az uki . y uz ub rowser . ui . theme . Theme Data Ċ import Ġjp . h az uki . y uz ub rowser . ui . widget . Pointer View Ċ import Ġjp . h az uki . y uz ub rowser . webview . Custom Web History Item Ċ import Ġjp . h az uki . y uz ub rowser . webview . Custom WebView Ċ import Ġjp . h az uki . y uz ub rowser . webview . WebView Factory Ċ import Ġjp . h az uki . y uz ub rowser . webview . WebView Type Ċ import Ġjp . h az uki . y uz ub rowser . webview . listener . On Scroll Changed Listener Ċ import Ġjp . h az uki . y uz ub rowser . webview . listener . On Scroll able ChangeListener Ċ import Ġkotlinx . android . synt hetic . main . browser _ activity .* Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . random . Random Ċ Ċ class ĠBrowser Activity Ġ: ĠBrowser Base Activity (), ĠBrowser Controller , ĠFinish AlertDialog . On Finish Dialog CallBack , ĠOn WebView Created Listener , ĠAdd Ad Block Dialog . On Ad Block List Update Listener , ĠWeb Rtc Request , ĠSave Web Archive Dialog . On Save WebView Listener , ĠWebView Provider Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġasync Permissions : ĠAsync Permissions ĊĠĠĠ Ġprivate Ġval Ġhandler Ġ= ĠHandler ( Looper . get Main Looper ()) ĊĠĠĠ Ġprivate Ġval Ġaction Controller Ġ= ĠAction Executor ( this ) ĊĠĠĠ Ġprivate Ġval Ġicon Manager Ġ= ĠAction Icon Manager ( this ) ĊĠĠĠ Ġprivate Ġval Ġconnection State Monitor Ġ= ĠConnection State Monitor Ġ{ Ġis Available Ġ-> ĊĠĠĠĠĠĠĠ Ġhandler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( tab Ġin Ġtab Manager . loaded Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . m WebView . set Network Available ( is Available ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġsave Tabs Runnable Ġ= Ġobject Ġ: ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Manager In . save Data () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdelay Ġ= ĠApp Data . auto _ tab _ save _ delay . get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( delay Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post Delayed ( this , Ġ( delay Ġ* Ġ 1 0 0 0 ). to Long ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġtake Current Tab Screen Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Manager In . current Tab Data ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Shot Thumbnail ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Manager In . force Take Thumbnail ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġpadding Reset Ġ= ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Manager In . current Tab Data ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadjust Browser Padding ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġvar Ġscroll able ChangeListener Ġ= Ġobject Ġ: ĠOn Scroll able ChangeListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Scroll able Changed ( scroll able : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġcurrent Tab Data Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadjust Browser Padding ( tab ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġscroll Changed Listener : ĠOn Scroll Changed Listener Ġ= Ġ{ ĠwebView : ĠCustom WebView , Ġl : ĠInt , Ġt : ĠInt , Ġold l : ĠInt , Ġold t : ĠInt Ġ-> ĊĠĠĠĠĠĠĠ ĠwebView Fast Scroller . on Page Scroll () ĊĠĠĠĠĠĠĠ ĠwebView Page Fast Scroller ?. on Scroll WebView ( web View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbrowser State : ĠBrowser State ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtoolbar : ĠToolbar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtab Manager In : ĠUi Tab Manager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser Action Manager : ĠUser Action Manager ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠwebView Behavior : ĠWebView Behavior ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbottom Bar Behavior : ĠBottom Bar Behavior ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġweb Client : ĠWeb Client ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmenu Window : ĠMenu Window ĊĊĠĠĠ Ġprivate Ġvar Ġis Activity Destroyed Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġis Res umed Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġvar Ġis Activity Paused : ĠBoolean Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġprivate Ġvar Ġforce Destroy : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġvar Ġclosed Tabs : ĠArray Deque < Bundle >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠwebView Find Dialog : ĠWebView Find Dialog ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠwebView Page Fast Scroller : ĠWebView Page Fast Scroller ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠwebView Auto Scroll Manager : ĠWebView Auto Scroll Manager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsub Gesture View : ĠGest ure Overlay View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtab ListView : ĠTab List Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġweb Custom View Handler : ĠWeb Custom View Handler ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġvideo Loading Progress View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmouse Cursor View : ĠPointer View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfind On Page : ĠWebView Find Dialog ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdelay Action : ĠAction ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġval Ġsecret Key Ġ= ĠRandom . nextInt (). toString ( 3 6 ) ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar ĠwebView Factory : ĠWebView Factory ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġm oshi : ĠM oshi ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . browser _ activity ) ĊĠĠĠĠĠĠĠ Ġ// Crash Ġworkaround Ġfor Ġpage Padding Height ... ĊĠĠĠĠĠĠĠ Ġtoolbar Padding . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġbrowser State Ġ= Ġ( application Context Ġas ĠBrowser Application ). browser State ĊĊĠĠĠĠĠĠĠ Ġif Ġ( browser State . is Need Load ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data . load ( this , Ġm oshi ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowser State . is Need Load Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġuser Action Manager Ġ= ĠUser Action Manager ( this , Ġthis , Ġaction Controller , Ġicon Manager ) ĊĠĠĠĠĠĠĠ Ġtab Manager In Ġ= ĠBrowser Tab Manager ( Tab ManagerFactory . newInstance ( this , ĠwebView Factory ), Ġthis ) ĊĠĠĠĠĠĠĠ Ġweb Client Ġ= ĠWeb Client ( this , Ġthis ) ĊĊĠĠĠĠĠĠĠ Ġtoolbar Ġ= ĠToolbar ( this , Ġsuper Frame Layout Info , Ġthis , Ġaction Controller , Ġicon Manager ) ĊĠĠĠĠĠĠĠ Ġtoolbar . add Toolbar View ( resources ) ĊĊĠĠĠĠĠĠĠ ĠwebView Behavior Ġ= Ġ( web Gesture Overlay View . layout Params Ġas Ġandroidx . coordinator layout . widget . Coordinator Layout . LayoutParams ). behavior Ġas ĠWebView Behavior ĊĠĠĠĠĠĠĠ Ġbottom Bar Behavior Ġ= Ġ( bottom Overlay Layout . layout Params Ġas Ġandroidx . coordinator layout . widget . Coordinator Layout . LayoutParams ). behavior Ġas ĠBottom Bar Behavior ĊĠĠĠĠĠĠĠ Ġsuper Frame Layout . setOn I me Shown Listener Ġ{ Ġvisible Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is I me Shown Ġ!= Ġvisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis I me Shown Ġ= Ġvisible ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Behavior . is I me Shown Ġ= Ġvisible ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġtab Manager In . current Tab Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . notify Change Web State ( tab ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadjust Browser Padding ( tab ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . on I me Changed ( visible ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! visible Ġ&& Ġis Fullscreen Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= ĠDisplay Utils . getFull Screen Visibility () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtop Toolbar . view Tree Observer . add On Global Layout Listener ( object Ġ: ĠView Tree Observer . On Global Layout Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Global Layout () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Toolbar . view Tree Observer . remove On Global Layout Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoord inator . set Toolbar Height ( top Toolbar . height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Manager . on Layout Created () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Always Overlay Toolbar Padding . height Ġ= Ġbottom Always Overlay Toolbar . height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠwebView Fast Scroller . attach AppBar Layout ( coordinator , Ġapp bar ) ĊĠĠĠĠĠĠĠ Ġweb Gesture Overlay View . set Web Frame ( app bar ) ĊĊĠĠĠĠĠĠĠ Ġon Preference Reset () ĊĠĠĠĠĠĠĠ Ġtab Manager In . setOn WebView Created Listener ( this ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrestore Web State () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcookie Ġ= ĠCookie Manager . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcookie . remove Session Cookies ( null ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Manager In . load Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab Manager In . size () Ġ> Ġ 0 Ġ&& Ġtab Manager In . current Tab No Ġ>= Ġ 0 Ġ&& Ġtab Manager In . current Tab No Ġ< Ġtab Manager In . size ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetCurrent Tab ( tab Manager In . current Tab No ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . scroll Tab To ( tab Manager In . current Tab No ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( tab Manager In . isEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġadd New Tab ( Tab Type . DEFAULT ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetCurrent Tab ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Url ( tab , ĠApp Data . home _ page . get ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠwebView Behavior . set Controller ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmenu Action Ġ= ĠMenu Action Manager . getInstance ( application Context ) ĊĠĠĠĠĠĠĠ Ġmenu Window Ġ= ĠMenu Window ( this , Ġmenu Action . browser _ activity . list , Ġaction Controller , Ġicon Manager ). apply Ġ{ Ġset Listener Ġ{ Ġset Fullscreen If Enable () Ġ} Ġ} ĊĊĠĠĠĠĠĠĠ Ġwindow . decor View . setOn System Ui Visibility ChangeListener Ġ{ Ġset Fullscreen If Enable () Ġ} ĊĊĠĠĠĠĠĠĠ Ġweb Gesture Overlay View . setOn Touch Listener Ġ{ Ġ_, Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event . action Mask ed Ġ== ĠMotion Event . ACTION _ UP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Adjust WebView () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Action Manager . on Touch Event ( event ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( AppData . auto _ tab _ save _ delay . get () Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post ( save Tabs Runnable ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Activity Paused ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Activity Paused Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Manager In . current Tab Data ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . m WebView . on Resume () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweb Client . resume WebView Timers ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . w ( TAG , Ġ" Activity Ġis Ġalready Ġstarted ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ ĠWebView Proxy . set Proxy ( application Context , ĠApp Data . proxy _ set . get (), ĠApp Data . proxy _ address . get (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data . proxy _ https _ set . get (), ĠApp Data . proxy _ https _ address . get ()) ĊĊĠĠĠĠĠĠĠ Ġconnection State Monitor . enable ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġtab Manager In . current Tab Data ĊĠĠĠĠĠĠĠ Ġif Ġ( tab Ġ!= Ġnull Ġ&& Ġtab . m WebView . view . parent Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetCurrent Tab ( tab Manager In . current Tab No ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdelay Action ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Controller . run ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Action Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġis Res umed Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Post Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Post Resume () ĊĠĠĠĠĠĠĠ Ġset Fullscreen If Enable () ĊĠĠĠĠĠĠĠ Ġtoolbar . reset ToolBar () ĊĠĠĠĠĠĠĠ Ġasync Permissions Ġ= ĠAsync Permissions ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! check Browser Permission ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġui Ġ{ Ġrequest Browser Permissions ( async Permissions ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġis Res umed Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġweb Client . on Stop () ĊĠĠĠĠĠĠĠ Ġtab ListView ?. close Sn ackBar () ĊĊĠĠĠĠĠĠĠ Ġtab Manager In . save Data () ĊĠĠĠĠĠĠĠ Ġhandler . remove Callbacks ( save Tabs Runnable ) ĊĠĠĠĠĠĠĠ ĠF av icon Manager . getInstance ( application Context ). save () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Activity Paused ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . w ( TAG , Ġ" Activity Ġis Ġalready Ġstopped ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( AppData . pause _ web _ background . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Activity Paused Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġtab Manager In . current Tab Data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . m WebView . on Pause () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweb Client . pause WebView Timers ( tab ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠWebView Proxy . reset Proxy ( application Context ) ĊĊĠĠĠĠĠĠĠ Ġconnection State Monitor . disable ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ ĠLogger . d ( TAG , Ġ" on Destroy () ") ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġdestroy () ĊĠĠĠĠĠĠĠ Ġif Ġ( force Destroy ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProcess . kill Process ( Process . my Pid ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Activity Destroyed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠ Ġweb Custom View Handler ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Custom View ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Custom View Handler Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġweb Frame Layout . removeAll Views () ĊĠĠĠĠĠĠĠ Ġweb Gesture Overlay View . removeAll Views () ĊĠĠĠĠĠĠĠ Ġtab Manager In . destroy () ĊĠĠĠĠĠĠĠ Ġweb Client . destroy () ĊĠĠĠĠĠĠĠ Ġis Activity Destroyed Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Window Focus Changed ( has Focus : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Window Focus Changed ( has Focus ) ĊĠĠĠĠĠĠĠ Ġif Ġ( has Focus ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Fullscreen If Enable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Fullscreen If Enable () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Fullscreen Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= ĠDisplay Utils . getFull Screen Visibility () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon New Intent ( intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on New Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġhandle Intent ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( bundle : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( bundle ) ĊĠĠĠĠĠĠĠ Ġsave Web State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Web State (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Activity Destroyed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġtab ListView ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose Sn ackBar () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtab Manager In . save Data () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrestore Web State () Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Manager In . load Data () ĊĠĠĠĠĠĠĠ Ġif Ġ(! tab Manager In . isEmpty ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . scroll Tab To ( tab Manager In . current Tab No ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Configuration Changed ( new Config : ĠConfiguration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Configuration Changed ( new Config ) ĊĠĠĠĠĠĠĠ Ġtoolbar . on Activity Configuration Changed ( new Config ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Low Memory () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Low Memory () ĊĠĠĠĠĠĠĠ Ġvideo Loading Progress View Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Controller . REQUEST _ WEB _ UPLOAD Ġ-> Ġweb Client . web Upload Result ( result Code , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Controller . REQUEST _ SEARCH BOX Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠRESULT _ OK Ġ|| Ġdata Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġdata . getString Extra ( Search Activity . EXTRA _ QUERY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch Url Ġ= Ġdata . getString Extra ( Search Activity . EXTRA _ SEARCH _ URL ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( query )) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġwhen Ġ( data . getInt Extra ( Search Activity . EXTRA _ SEARCH _ MODE , ĠSearch Activity . SEARCH _ MODE _ AUTO )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSearch Activity . SEARCH _ MODE _ URL Ġ-> ĠWeb Utils . make Url ( query ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSearch Activity . SEARCH _ MODE _ WORD Ġ-> ĠWeb Utils . make Search Url From Query ( query , Ġsearch Url , Ġ"% s ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠWeb Utils . make Url From Query ( query , Ġsearch Url , Ġ"% s ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp data Ġ= Ġdata . get Bundle Extra ( Search Activity . EXTRA _ APP _ DATA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġapp data . getInt ( EXTRA _ DATA _ TARGET , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġtab Manager In . get ( target ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data . getBoolean Extra ( Search Activity . EXTRA _ OPEN _ NEW _ TAB , Ġfalse ) Ġ|| Ġtab Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In New Tab ( url , ĠTab Type . DEFAULT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Url ( tab , Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Controller . REQUEST _ BOOK MARK , ĠBrowser Controller . REQUEST _ HISTORY Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠRESULT _ OK Ġ|| Ġdata Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopen able Ġ= Ġdata . get Parcelable Extra < Browser Open able >( Browser Manager . EXTRA _ OP ENABLE ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen able . open ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Controller . REQUEST _ SETTING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data . load ( application Context , Ġm oshi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Preference Reset () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Controller . REQUEST _ USER AGENT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠRESULT _ OK Ġ|| Ġdata Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġua Ġ= Ġdata . getString Extra ( Intent . EXTRA _ TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġtab Manager In . current Tab Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . m WebView . web Settings . userAgent String Ġ= Ġif Ġ( ua . isNull OrEmpty () Ġ&& ĠApp Data . fake _ chrome . get ()) Ġget Fake Chrome UserAgent () Ġelse Ġua ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . m WebView . reload () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Controller . REQUEST _ DEFAULT _ USER AGENT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠRESULT _ OK Ġ|| Ġdata Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġua Ġ= Ġdata . getString Extra ( Intent . EXTRA _ TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data . user _ agent . set ( ua ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbrowser UA Ġ= Ġif Ġ( ua . isNull OrEmpty () Ġ&& ĠApp Data . fake _ chrome . get ()) Ġget Fake Chrome UserAgent () Ġelse Ġua ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data . commit ( this , ĠApp Data . user _ agent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( tab Data Ġin Ġtab Manager In . loaded Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Data . m WebView . web Settings . userAgent String Ġ= Ġbrowser UA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Data . m WebView . reload () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Controller . REQUEST _ USER JS _ SETTING Ġ-> Ġweb Client . reset User Script ( AppData . user js _ enable . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Controller . REQUEST _ WEB _ ENCODE _ SETTING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠRESULT _ OK Ġ|| Ġdata Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġencoding Ġ= Ġdata . getString Extra ( Intent . EXTRA _ TEXT ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġtab Manager In . current Tab Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . m WebView . web Settings . default Text Encoding Name Ġ= Ġencoding ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . m WebView . reload () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Controller . REQUEST _ SHARE _ IMAGE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠRESULT _ OK Ġ|| Ġdata Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġuri Ġ= Ġdata . data Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmine Type Ġ= Ġdata . getString Extra ( Fast Download Activity . EXTRA _ M INE _ TYPE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N Ġ&& Ġuri . scheme Ġ== Ġ" file ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= Ġ( application Context Ġas ĠBrowser Application ). provider Manager . download File Provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuri Ġ= Ġprovider . get Uri From Path ( uri . path Ġ?: Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopen Ġ= ĠIntent ( Intent . ACTION _ SEND ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( mine Type Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen . type Ġ= Ġmine Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen . type Ġ= Ġ" image /* " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen . add Flags ( Intent . FLAG _ ACTIVITY _ NEW _ DOCUMENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen . putExtra ( Intent . EXTRA _ STREAM , Ġuri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen . add Flags ( Intent . FLAG _ GRANT _ READ _ URI _ PERMISSION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent . create Chooser ( open , ĠgetText ( R . string . share ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Controller . REQUEST _ ACTION _ LIST Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠRESULT _ OK Ġ|| Ġdata Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġdata . get Parcelable Extra < Action >( Action Activity . EXTRA _ ACTION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . w ( TAG , Ġ" Action Ġis Ġnull ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Res umed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Controller . run ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Action Ġ= Ġaction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon KeyDown ( keyCode : ĠInt , Ġevent : ĠKeyEvent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( keyCode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyEvent . KEYCODE _ VOLUME _ UP Ġ-> Ġif Ġ( AppData . volume _ default _ playing . get () Ġ&& Ġ( getSystem Service ( Context . AUDIO _ SERVICE ) Ġas ĠAudio Manager ). is Music Active ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . on KeyDown ( keyCode , Ġevent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( web Custom View Handler ?. is Custom View Showing Ġ!= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Action Manager . on Volume Key ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyEvent . KEYCODE _ VOLUME _ DOWN Ġ-> Ġif Ġ( AppData . volume _ default _ playing . get () Ġ&& Ġ( getSystem Service ( Context . AUDIO _ SERVICE ) Ġas ĠAudio Manager ). is Music Active ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . on KeyDown ( keyCode , Ġevent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( web Custom View Handler ?. is Custom View Showing Ġ!= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Action Manager . on Volume Key ( false )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on KeyDown ( keyCode , Ġevent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon KeyUp ( keyCode : ĠInt , Ġevent : ĠKeyEvent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( keyCode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyEvent . KEYCODE _ VOLUME _ UP Ġ-> Ġif Ġ( web Custom View Handler ?. is Custom View Showing Ġ!= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Action Manager . is Volume Action NotEmpty ( true )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyEvent . KEYCODE _ VOLUME _ DOWN Ġ-> Ġif Ġ( web Custom View Handler ?. is Custom View Showing Ġ!= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Action Manager . is Volume Action NotEmpty ( false )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyEvent . KEYCODE _ CAMERA Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! event . is Canceled Ġ&& Ġuser Action Manager . on Camera Key ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyEvent . KEYCODE _ MENU Ġ-> Ġif Ġ(! event . is Canceled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( menu Window . is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Window . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Window . show ( findViewById ( R . id . super Frame Layout ), ĠOpen Options Menu Action . get Gravity ( AppData . menu _ btn _ list _ mode . get ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on KeyUp ( keyCode , Ġevent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Key Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( menu Window . is Showing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Window . dismiss () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( web Custom View Handler ?. is Custom View Showing Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Custom View Handler !!. hide Custom View ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( sub Gesture View Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper Frame Layout . remove View ( sub Gesture View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub Gesture View Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( mouse Cursor View ?. back Finish Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmouse Cursor View !!. setView ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Frame Layout . remove View ( mouse Cursor View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmouse Cursor View Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( tab ListView Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab ListView !!. close () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( find On Page Ġ!= Ġnull Ġ&& Ġfind On Page !!. isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind On Page !!. hide () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( web View Page Fast Scroller Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Page Fast Scroller !!. close () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( web View Auto Scroll Manager Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Auto Scroll Manager !!. stop () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( tab Manager In . current Tab Data ?. m WebView ?. can Go Back () Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Manager In . current Tab Data . m WebView . go Back () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post Delayed ( take Current Tab Screen , Ġ 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post Delayed ( padding Reset , Ġ 5 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Action Manager . on Back Key () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Key Long Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġuser Action Manager . on Back Key Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispatch KeyEvent ( event : ĠKeyEvent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . action Ġ== ĠKeyEvent . ACTION _ UP Ġ&& Ġevent . keyCode Ġ== ĠKeyEvent . KEYCODE _ SEARCH Ġ&& Ġ! event . is Canceled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Action Manager . on Search Key () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . dispatch KeyEvent ( event ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadjust Browser Padding ( tab : ĠMain Tab Data ) Ġ{ ĊĠĠĠĠĠĠĠ ĠwebView Behavior . adjust WebView ( tab , Ġtop Toolbar . height Ġ+ Ġbottom Overlay Layout . height ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Intent ( intent : ĠIntent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( intent Ġ== Ġnull ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġintent . action ĊĠĠĠĠĠĠĠ Ġset Intent ( Intent ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( action Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( Constants . intent . ACTION _ FIN ISH Ġ== Ġaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforce Destroy Ġ= Ġintent . getBoolean Extra ( Constants . intent . EXTRA _ FORCE _ DESTROY , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowser State . is Need Load Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( parent Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . re create ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrestart Ġ= ĠIntent ( this , ĠBrowser Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( restart ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Constants . intent . ACTION _ NEW _ TAB Ġ== Ġaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab ListView ?. close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen In New Tab ( AppData . home _ page . get (), ĠTab Type . DEFAULT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . flags Ġand ĠIntent . FLAG _ ACTIVITY _ LA UNCH ED _ FROM _ HISTORY Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Intent . ACTION _ VIEW Ġ== Ġaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġurl Ġ= Ġintent . data String ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġintent . getBoolean Extra ( EXTRA _ WINDOW _ MODE , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( url . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġintent . getString Extra ( Intent . EXTRA _ TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! url . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In New Tab ( url , Ġif Ġ( window ) ĠTab Type . WINDOW Ġelse ĠTab Type . INT ENT , Ġintent . getBoolean Extra ( EXTRA _ SHO ULD _ OPEN _ IN _ NEW _ TAB , Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . w ( TAG , Ġ" ACTION _ VIEW Ġ: Ġurl Ġis Ġnull Ġor Ġempty .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Constants . intent . ACTION _ OPEN _ DEFAULT Ġ== Ġaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġintent . data String Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen In New Tab ( url , ĠTab Type . DEFAULT ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtab ListView ?. close () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Preference Reset () Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . on Preference Reset () ĊĠĠĠĠĠĠĠ Ġtab Manager In . on Preference Reset () ĊĠĠĠĠĠĠĠ Ġuser Action Manager . on Preference Reset () ĊĠĠĠĠĠĠĠ ĠCrash ly t ics Utils . set WebView Mode () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Theme Data . create Instance ( application Context , ĠApp Data . theme _ setting . get ()) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtheme Data Ġ= ĠTheme Data . getInstance () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . on Theme Changed ( theme Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Action Manager . on Theme Changed ( theme Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . notify Change Web State () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( theme Data . status Bar Color Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear Flags ( WindowManager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Bar Color Ġ= Ġtheme Data . status Bar Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor View . system Ui Visibility Ġ= ĠTheme Data . getSystem Ui Visibility Flag () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( theme Data . scrollbar Accent Color Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Fast Scroller . handle Pressed Color Ġ= Ġtheme Data . scrollbar Accent Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( theme Data . tab Accent Color Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Fast Scroller . handle Pressed Color Ġ= Ġtheme Data . tab Accent Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmenu Window Ġ= ĠMenu Window ( this , ĠMenu Action Manager . getInstance ( application Context ). browser _ activity . list , Ġaction Controller , Ġicon Manager ) ĊĊĠĠĠĠĠĠĠ Ġweb Client . on Preference Reset () ĊĠĠĠĠĠĠĠ Ġis Enable Quick Control Ġ= ĠApp Data . qc _ enable . get () ĊĠĠĠĠĠĠĠ Ġrequested Orientation Ġ= ĠApp Data . or it ent ation . get () ĊĠĠĠĠĠĠĠ Ġis Fullscreen Mode Ġ= ĠApp Data . fullscreen . get () ĊĠĠĠĠĠĠĠ Ġis Enable Multi F inger Gesture Ġ= ĠApp Data . multi _ f inger _ gesture . get () ĊĠĠĠĠĠĠĠ Ġuser Action Manager . set Enable Gesture ( web Gesture Overlay View ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( AppData . keep _ screen _ on . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ KEEP _ SCREEN _ ON ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . clear Flags ( WindowManager . LayoutParams . FLAG _ KEEP _ SCREEN _ ON ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtouch Scrollbar Ġ= ĠApp Data . touch _ scrollbar . get () ĊĠĠĠĠĠĠĠ Ġif Ġ( touch Scrollbar Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Fast Scroller . set Scroll Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Fast Scroller . is Show Left Ġ= Ġtouch Scrollbar Ġ== Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Fast Scroller . set Scroll Enabled ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠError Report . set Detailed Log ( AppData . detailed _ log . get ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Tab OrNull ( target : ĠInt ): ĠMain Tab Data ? Ġ= Ġtab Manager In [ target ] ĊĊĠĠĠ Ġoverride Ġfun Ġget Tab OrNull ( target : ĠCustom WebView ): ĠMain Tab Data ? Ġ= Ġtab Manager In [ target ] ĊĊĠĠĠ Ġoverride Ġfun ĠindexOf ( id : ĠLong ): ĠInt Ġ= Ġtab Manager In . indexOf ( id ) ĊĊĠĠĠ Ġoverride Ġfun ĠsetCurrent Tab ( target : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġold Tab Ġ= Ġtab Manager In . current Tab Data ĊĠĠĠĠĠĠĠ Ġval Ġnew Tab Ġ= Ġtab Manager In [ target ] ĊĊĠĠĠĠĠĠĠ Ġtab Manager In . setCurrent Tab ( target , Ġold Tab , Ġnew Tab ) ĊĠĠĠĠĠĠĠ Ġtab Manager In . save Data () ĊĊĠĠĠĠĠĠĠ ĠwebView Find Dialog ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isVisible ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠwebView Page Fast Scroller ?. close () ĊĠĠĠĠĠĠĠ ĠwebView Auto Scroll Manager ?. stop () ĊĊĠĠĠĠĠĠĠ Ġold Tab ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm WebView . setOn My Create ContextMenu Listener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm WebView . set WebView Touch Detector ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm WebView . scroll able ChangeListener Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Frame Layout . remove View ( m WebView . view ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Behavior . set WebView ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Fast Scroller . detach WebView () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġnew Tab . m WebView . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . resume Timers () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . on Resume () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( it . view . parent Ġas ? ĠViewGroup )?. remove View ( it . view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Frame Layout . addView ( it . view , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Behavior . set WebView ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Fast Scroller . attach WebView ( it ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setOn My Create ContextMenu Listener ( user Action Manager . onCreate ContextMenu Listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// TODO ĠRewrite ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set My On Scroll Changed Listener ( scroll Changed Listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . scroll able ChangeListener Ġ= Ġscroll able ChangeListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Action Manager . set Gesture Detector ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠCookie Manager . getInstance (). set Accept Cookie ( new Tab . is Enable Cookie ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( old Tab Ġ== Ġnull Ġ|| Ġold Tab . m WebView . is Scroll able Ġ!= Ġnew Tab . m WebView . is Scroll able ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadjust Browser Padding ( new Tab ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Tab ( index : ĠInt , Ġtab : ĠMain Tab Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Manager . add Tab ( index , Ġtab ) ĊĠĠĠĠĠĠĠ Ġif Ġ( AppData . save _ closed _ tab . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclosed Tabs ?. poll () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Tab ( target : ĠInt , Ġerror : ĠBoolean , Ġdestroy : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tab Manager In . size () Ġ<= Ġ 1 ) Ġ{ Ġ// ĠLast Ġtab ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġold Data Ġ= Ġtab Manager In [ target ] ĊĊĠĠĠĠĠĠĠ Ġif Ġ( old Data . is Pin ning ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error ) ĠToast . makeText ( application Context , ĠR . string . pinned _ tab _ warning , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( tab Manager In . current Tab Data Ġ== Ġold Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetCurrent Tab ( getNew Tab No ( target , Ġold Data )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġold Web Ġ= Ġold Data . m WebView ĊĊĠĠĠĠĠĠĠ Ġif Ġ( AppData . save _ closed _ tab . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġout State Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Web . save State ( out State ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout State . put Int ( TAB _ TYPE , Ġold Data . tab Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( closed Tabs Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclosed Tabs Ġ= ĠArray Deque () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclosed Tabs !!. push ( out State ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġold Web . set Embedded Title Bar Method ( null ) ĊĊĠĠĠĠĠĠĠ Ġtab Manager In . remove ( target ) ĊĠĠĠĠĠĠĠ Ġtoolbar . notify Change Web State () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( destroy ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Web . destroy () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget New Tab No ( no : ĠInt , Ġold Data : ĠMain Tab Data ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( AppData . move _ to _ parent . get () Ġ&& Ġold Data . tab Type Ġ== ĠTab Type . WINDOW Ġ&& Ġold Data . parent Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew No Ġ= Ġtab Manager In . search Parent Tab No ( old Data . parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new No Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnew No ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( AppData . move _ to _ left _ tab . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( no Ġ== Ġ 0 ) Ġ 1 Ġelse Ġno Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( no Ġ== Ġtab Manager In . last Tab No ) Ġno Ġ- Ġ 1 Ġelse Ġno Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġswap Tab ( i : ĠInt , Ġj : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Manager In . swap ( i , Ġj ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Url ( url : ĠString , Ġtarget : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload Url ( tab Manager In . current Tab Data , Ġurl , Ġtarget , ĠTab Type . WINDOW ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Url ( tab : ĠMain Tab Data , Ġurl : ĠString , Ġshould Open In New Tab : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġweb Client . load Url ( tab , Ġurl , Ġshould Open In New Tab ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Url ( tab : ĠMain Tab Data , Ġurl : ĠString , Ġtarget : ĠInt , Ġtype : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġweb Client . load Url ( tab , Ġurl , Ġtarget , Ġtype ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Ad Block List Update () Ġ{ ĊĠĠĠĠĠĠĠ Ġweb Client . update Ad Block List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Tab List ( action : ĠTab List Single Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tab ListView Ġ!= Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġtab ListView Ġ= ĠTab List Layout ( this , Ġaction . mode , Ġaction . is Left Button , Ġaction . last Tab Mode ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Tab Manager ( tab Manager In ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Callback ( object Ġ: ĠTab List Layout . Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrequest Tab List Close () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper Frame Layout . remove View ( tab ListView ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab ListView Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrequest Show Tab History ( no : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Tab History ( no ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrequest Add Tab ( index : ĠInt , Ġdata : ĠMain Tab Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Tab ( index , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrequest Select Tab ( no : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetCurrent Tab ( no ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . scroll Tab To ( no ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrequest Add Tab () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In New Tab ( AppData . home _ page . get (), ĠTab Type . DEFAULT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrequest Move Tab ( position From : ĠInt , Ġposition To : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmove Tab ( position From , Ġposition To ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrequest Remove Tab ( no : ĠInt , Ġdestroy : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Tab ( no , Ġfalse , Ġdestroy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrequest Close All Tab () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In New Tab ( AppData . home _ page . get (), ĠTab Type . DEFAULT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġtab Manager In . last Tab No Ġ- Ġ 1 Ġdown To Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Tab ( i , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrequest Finish ( alert : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( alert ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Alert (- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Quick (- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper Frame Layout . addView ( tab ListView , ĠViewGroup . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . MATCH _ PARENT )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Tab History ( target : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġtab Manager In [ target ] ĊĠĠĠĠĠĠĠ Ġval Ġhistory List Ġ= Ġtab . m WebView . copy My Back Forward List () ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= Ġobject Ġ: ĠArray Adapter < Custom Web History Item >( application Context , Ġ 0 , Ġhistory List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , Ġview : ĠView ?, Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġview Ġ?: Ġlayout Inflater . inflate ( R . layout . tab _ history _ list _ item , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( v . findViewById < View >( R . id . site Title Text ) Ġas ĠTextView ). text Ġ= Ġitem . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( v . findViewById < View >( R . id . site Url Text ) Ġas ĠTextView ). text Ġ= Ġitem . url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( v . findViewById < View >( R . id . site Icon ImageView ) Ġas ĠImageView ). setImage Bitmap ( item . favicon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠlistView Ġ= ĠListView ( this ). also Ġ{ Ġit . adapter Ġ= Ġadapter Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . tab _ history ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setView ( list View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĊĠĠĠĠĠĠĠ ĠlistView . setOn ItemClickListener Ġ{ Ġ_, Ġ_, Ġposition , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġposition Ġ- Ġhistory List . current ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab . m WebView . can Go Back Or Forward ( next )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab . is Nav Lock ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġhistory List . get Back Or Forward ( next ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform New Tab Link ( Browser Manager . LOAD _ URL _ TAB _ NEW _ RIGHT , Ġtab , Ġitem . url , ĠTab Type . DEFAULT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . m WebView . go Back Or Forward ( next ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . m WebView . go Back Or Forward ( next ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post Delayed ( padding Reset , Ġ 5 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrestore Tab () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= Ġclosed Tabs ?. poll () ĊĠĠĠĠĠĠĠ Ġif Ġ( bundle Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( AppData . save _ closed _ tab . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , ĠR . string . tab _ restore d _ failed , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , ĠR . string . tab _ restore d _ setting _ error , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen In New Tab ( bundle ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , ĠR . string . tab _ restore d _ suc ceed , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Search Box ( query : ĠString , Ġtarget : ĠInt , Ġopen New Tab : ĠBoolean , Ġreverse : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( EXTRA _ DATA _ TARGET , Ġtarget ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( application Context , ĠSearch Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Search Activity . EXTRA _ QUERY , Ġquery ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Constants . intent . EXTRA _ MODE _ FULL SCREEN , Ġis Fullscreen Mode Ġ&& ĠDisplay Utils . is Need FullScreen Flag ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Search Activity . EXTRA _ RE VERSE , Ġreverse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Search Activity . EXTRA _ APP _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Search Activity . EXTRA _ OPEN _ NEW _ TAB , Ġopen New Tab ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠstartActivity ( intent , ĠBrowser Controller . REQUEST _ SEARCH BOX ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Sub Gesture () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= ĠGest ure Manager . getInstance ( application Context , ĠGest ure Manager . GEST URE _ TYPE _ SUB ) ĊĊĠĠĠĠĠĠĠ Ġsub Gesture View Ġ= ĠGest ure Overlay View ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Events Inter ception Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgesture Stroke Type Ġ= ĠGest ure Overlay View . GEST URE _ ST RO KE _ TYPE _ MULTIPLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgesture Stroke Width Ġ= Ġ 8 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset BackgroundColor ( 0 x 7 0 0 0 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Gesture Performed Listener Ġ{ Ġ_, Ġgesture Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . re cognize ( gesture )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Controller . run ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper Frame Layout . remove View ( sub Gesture View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub Gesture View Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuper Frame Layout . addView ( sub Gesture View , ĠViewGroup . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . MATCH _ PARENT )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Menu ( button : ĠView ?, Ġaction : ĠOpen Options Menu Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( button Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Window . show As DropDown ( button ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Window . show ( super Frame Layout , Ġaction . gravity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Custom View ( view : ĠView , Ġcallback : ĠWeb Chrome Client . Custom View Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( web Custom View Handler Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Custom View Handler Ġ= ĠWeb Custom View Handler ( fullscreen Layout ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġweb Custom View Handler !!. show Custom View ( this , Ġview , ĠApp Data . web _ custom view _ or it ent ation . get (), Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Custom View () Ġ{ ĊĠĠĠĠĠĠĠ Ġweb Custom View Handler ?. hide Custom View ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrequest Adjust WebView () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġtab Manager In . current Tab Data Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġdata . m WebView . compute Vertical Scroll Range Method () ĊĠĠĠĠĠĠĠ Ġadjust Browser Padding ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexpand Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġapp Bar Layout . set Expanded ( true , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbottom Bar Behavior . set Expanded ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Video Loading Progress View (): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( video Loading Progress View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Loading Progress View Ġ= ĠView . inflate ( this , ĠR . layout . video _ loading , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġvideo Loading Progress View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfinish Alert ( clear Tab No : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠFinish AlertDialog ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( android . R . string . yes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( android . R . string . no ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Neutral Button ( R . string . minimize ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Clear Tab No ( clear Tab No ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( support FragmentManager ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Finish Positive Button Clicked ( clear Tab No : ĠInt , Ġnew Setting : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish Quick ( clear Tab No , Ġnew Setting ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Finish Neutral Button Clicked ( clear Tab No : ĠInt , Ġnew Setting : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( clear Tab No Ġ>= Ġ 0 Ġ&& Ġtab Manager In . size () Ġ>= Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Tab ( clear Tab No ) ĊĠĠĠĠĠĠĠ Ġmove Task To Back ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfinish Quick ( clear Tab No : ĠInt , Ġfinish _ clear : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( clear Tab No Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab Manager In . size () Ġ>= Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Tab ( clear Tab No ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( finish _ clear Ġand Ġ 0 x 0 1 Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . clear Cache ( application Context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( finish _ clear Ġand Ġ 0 x 0 2 Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCookie Manager . getInstance (). removeAll Cookies ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( finish _ clear Ġand Ġ 0 x 0 4 Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . clear Web Database () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( finish _ clear Ġand Ġ 0 x 0 8 Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWebView Database . getInstance ( application Context ). clear Http Auth Username Password () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . O Ġ&& Ġfinish _ clear Ġand Ġ 0 x 1 0 Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWebView Database . getInstance ( application Context ). clear FormData () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( finish _ clear Ġand Ġ 0 x 2 0 Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= ĠBrowser History Manager . getInstance ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . delete All () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( finish _ clear Ġand Ġ 0 x 4 0 Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Resolver . delete (( application Context Ġas ĠBrowser Application ). provider Manager . suggest Provider . uri Local , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( finish _ clear Ġand Ġ 0 x 8 0 Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . clear Geo location () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( finish _ clear Ġand Ġ 0 x 1 0 0 Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF av icon Manager . getInstance ( application Context ). clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġhandler . remove Callbacks ( save Tabs Runnable ) ĊĠĠĠĠĠĠĠ Ġif Ġ( AppData . save _ last _ tabs . get () Ġ&& Ġfinish _ clear Ġand Ġ 0 x 1 0 0 0 Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Manager In . save Data () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( AppData . save _ pinned _ tabs . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Manager In . clear Except Pin ned Tab () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Manager In . save Data () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Manager In . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbrowser State . is Need Load Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd New Tab (@ Tab Type Ġtype : ĠInt ): ĠMain Tab Data Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġadd New Tab ( web View Factory . mode , Ġtype ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd New Tab (@ WebView Type Ġcache Type : ĠInt , Ġ@ Tab Type Ġtype : ĠInt ): ĠMain Tab Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġweb Ġ= Ġmake WebView ( cache Type ) ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠRestore Ġthis Ġwhen ĠGoogle Ġfixes Ġthe Ġbug Ġwhere Ġthe ĠWebView Ġis Ġblank Ġafter Ġcalling Ġon Pause Ġfollowed Ġby Ġon Resume . ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġif Ġ( AppData . pause _ web _ tab _ change . get ()) ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġweb . on Pause (); ĊĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġtab Manager In . add ( web , Ġtype ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Theme Data . isEnabled ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab . on Move Tab To Background ( resources , Ġtheme ) ĊĊĠĠĠĠĠĠĠ Ġtoolbar . notify Change Web State () ĊĠĠĠĠĠĠĠ Ġif Ġ( AppData . toolbar _ auto _ open . get ()) Ġexpand Toolbar () ĊĠĠĠĠĠĠĠ Ġreturn Ġtab ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmove Tab ( a : ĠInt , Ġb : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( a Ġ== Ġb ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġtab Manager In . move ( a , Ġb ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake WebView (@ WebView Type Ġcache Type : ĠInt ): ĠCustom WebView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġweb Ġ= ĠwebView Factory . create ( this , Ġcache Type ) ĊĠĠĠĠĠĠĠ Ġweb . view . id Ġ= ĠView . generate View Id () ĊĠĠĠĠĠĠĠ Ġweb . web View . is Focus able In Touch Mode Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġweb . web View . is Focus able Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ<= ĠBuild . VERSION _ CODES . P ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb . web View . is Drawing Cache Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb . web View . set Will Not Cache Drawing ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġweb Client . init Web Setting ( web ) ĊĠĠĠĠĠĠĠ Ġval Ġenable Cookie Ġ= Ġif Ġ( AppData . private _ mode . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data . accept _ cookie . get () Ġ&& ĠApp Data . accept _ cookie _ private . get () ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data . accept _ cookie . get () ĊĠĠĠĠĠĠĠ Ġweb . set Accept Third Party Cookies ( Cookie Manager . getInstance (), Ġenable Cookie Ġ&& ĠApp Data . accept _ third _ cookie . get ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġweb ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen In Current Tab ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload Url ( tab Manager In . current Tab Data , Ġurl , ĠBrowser Manager . LOAD _ URL _ TAB _ CURRENT _ FORCE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen In New Tab ( web Transport : ĠWebView . WebView Transport ) Ġ{ ĊĠĠĠĠĠĠĠ Ġweb Transport . web View Ġ= Ġopen New Tab ( Tab Type . WINDOW ). m WebView . web View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen In New Tab ( tab : ĠMain Tab Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġtab . m WebView . save State ( bundle ) ĊĠĠĠĠĠĠĠ Ġopen New Tab ( web View Factory . get Mode ( bundle ), Ġbundle . getInt ( TAB _ TYPE , Ġtab . tab Type )). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm WebView . restore State ( bundle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm WebView . identity Id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġtab . url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtab . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent Ġ= Ġtab . parent ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen In New Tab ( url : ĠString , Ġtype : ĠInt , Ġshould Open In New Tab : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload Url ( open New Tab ( type ), Ġurl , Ġshould Open In New Tab ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen In New Tab ( state : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġopen New Tab ( web View Factory . get Mode ( state ), Ġstate . getInt ( TAB _ TYPE , Ġ 0 )). m WebView . restore State ( state ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen New Tab (@ Tab Type Ġtype : ĠInt ): ĠMain Tab Data Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġopen New Tab ( web View Factory . mode , Ġtype ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen New Tab (@ WebView Type Ġcache Type : ĠInt , Ġ@ Tab Type Ġtype : ĠInt ): ĠMain Tab Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġadd New Tab ( cache Type , Ġtype ) ĊĠĠĠĠĠĠĠ ĠsetCurrent Tab ( tab Manager In . last Tab No ) ĊĠĠĠĠĠĠĠ Ġtoolbar . scroll Tab Right () ĊĠĠĠĠĠĠĠ Ġreturn Ġtab ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen In Background ( url : ĠString , Ġtype : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġadd New Tab ( type ) ĊĠĠĠĠĠĠĠ Ġtab . setUp Bg Tab () ĊĠĠĠĠĠĠĠ Ġload Url ( tab , Ġurl ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen In Background ( web Transport : ĠWebView . WebView Transport ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġadd New Tab ( Tab Type . WINDOW ) ĊĠĠĠĠĠĠĠ Ġdata . setUp Bg Tab () ĊĠĠĠĠĠĠĠ Ġweb Transport . web View Ġ= Ġdata . m WebView . web View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Right New Tab (@ Tab Type Ġtype : ĠInt ): ĠMain Tab Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġadd New Tab ( type ) ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= Ġtab Manager In . last Tab No ĊĠĠĠĠĠĠĠ Ġval Ġto Ġ= Ġtab Manager In . current Tab No Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ ĠsetCurrent Tab ( from ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! move Tab ( from , Ġto )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . scroll Tab Right () ĊĠĠĠĠĠĠĠ Ġreturn Ġtab ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen In Right New Tab ( url : ĠString , Ġtype : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload Url ( open Right New Tab ( type ), Ġurl ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen In Right New Tab ( web Transport : ĠWebView . WebView Transport ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠwebView Ġ= Ġopen Right New Tab ( Tab Type . WINDOW ). m WebView . web View ĊĠĠĠĠĠĠĠ Ġweb Transport . web View Ġ= ĠwebView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Right Bg Tab (@ Tab Type Ġtype : ĠInt ): ĠMain Tab Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġadd New Tab ( type ) ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= Ġtab Manager In . last Tab No ĊĠĠĠĠĠĠĠ Ġval Ġto Ġ= Ġtab Manager In . current Tab No Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġmove Tab ( from , Ġto ) ĊĠĠĠĠĠĠĠ Ġtab . setUp Bg Tab () ĊĠĠĠĠĠĠĠ Ġreturn Ġtab ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen In Right Bg Tab ( url : ĠString , Ġtype : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġload Url ( open Right Bg Tab ( type ), Ġurl ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen In Right Bg Tab ( web Transport : ĠWebView . WebView Transport ) Ġ{ ĊĠĠĠĠĠĠĠ Ġweb Transport . web View Ġ= Ġopen Right Bg Tab ( Tab Type . WINDOW ). m WebView . web View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcheck New Tab Link ( perform : ĠInt , Ġtransport : ĠWebView . WebView Transport ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( perform ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . LOAD _ URL _ TAB _ NEW Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In New Tab ( transport ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . LOAD _ URL _ TAB _ BG Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In Background ( transport ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . LOAD _ URL _ TAB _ NEW _ RIGHT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In Right New Tab ( transport ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . LOAD _ URL _ TAB _ BG _ RIGHT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In Right Bg Tab ( transport ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unknown Ġperform :$ perform ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġperform New Tab Link ( perform : ĠInt , Ġtab : ĠMain Tab Data , Ġurl : ĠString , Ġtype : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( perform ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . LOAD _ URL _ TAB _ CURRENT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Url ( tab , Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . LOAD _ URL _ TAB _ NEW Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In New Tab ( url , Ġtype ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . LOAD _ URL _ TAB _ BG Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In Background ( url , Ġtype ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . LOAD _ URL _ TAB _ NEW _ RIGHT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In Right New Tab ( url , Ġtype ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Manager . LOAD _ URL _ TAB _ BG _ RIGHT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen In Right Bg Tab ( url , Ġtype ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unknown Ġperform :$ perform ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Bookmark ( tab : ĠMain Tab Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Add Bookmark Dialog ( this , Ġsupport FragmentManager , Ġtab . title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab . url Ġ?: Ġtab . m WebView . url Ġ?: Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsave Page ( tab : ĠMain Tab Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġread It Later ( this , Ġcontent Resolver , Ġtab . original Url , Ġtab . m WebView ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save WebView ToFile ( root : Ġandroidx . document file . provider . Document File , Ġfile : ĠDownload File , ĠwebView No : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Manager In [ web View No ]. m WebView . save Archive ( root , Ġfile ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠstartActivity ( intent : ĠIntent , Ġ@ Request Cause Ġcause : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , Ġcause ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon WebView Created ( tab : ĠMain Tab Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġweb Client . check Pattern Match ( tab , Ġtab . url , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Action Name ( text : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( text Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Name TextView . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Name TextView . text Ġ= Ġtext ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Action Name () Ġ{ ĊĠĠĠĠĠĠĠ Ġaction Name TextView . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġresources By Info : ĠResources ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġresources ĊĊĠĠĠ Ġoverride Ġval Ġtheme By Info : ĠResources . Theme ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtheme ĊĊĠĠĠ Ġoverride Ġval Ġapplication Context Info : ĠContext ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġapplication Context ĊĊĠĠĠ Ġoverride Ġvar Ġis I me Shown : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġval Ġtab Manager : ĠTab Manager ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtab Manager In ĊĊĠĠĠ Ġoverride Ġval Ġapp Bar Layout : ĠApp Bar Layout ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġapp bar ĊĊĠĠĠ Ġoverride Ġval Ġsuper Frame Layout Info : Ġandroidx . coordinator layout . widget . Coordinator Layout ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġsuper Frame Layout ĊĊĠĠĠ Ġoverride Ġval Ġactivity : ĠAppCompatActivity ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ĊĊĠĠĠ Ġoverride Ġval Ġtoolbar Manager : ĠToolbar Manager ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtoolbar ĊĊĠĠĠ Ġoverride Ġval Ġaction Name Array : ĠAction Name Array Ġby Ġlazy Ġ{ ĠAction Name Array ( this ) Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġrequested Orientation By Ctrl : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrequested Orientation ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequested Orientation Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġrendering Mode : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġweb Client . rendering Mode ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Client . rendering Mode Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġpage Padding Height : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtop Always Toolbar . height Ġ+ Ġbottom Always Toolbar . height Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( if Ġ( toolbar Padding . visibility Ġ== ĠView . VISIBLE ) Ġtoolbar Padding . height Ġelse Ġ 0 ) ĊĊĠĠĠ Ġoverride Ġvar Ġis Fullscreen Mode : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( enable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ== Ġenable ) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġenable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . on Fullscreen Changed ( enable ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( enable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvisibility Ġ= ĠDisplay Utils . getFull Screen Visibility () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= Ġvisibility ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Window . set System Ui Visibility ( visibility ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Display Utils . is Need FullScreen Flag ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ FULL SCREEN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġflag Ġ= ĠTheme Data . getSystem Ui Visibility Flag () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= Ġflag ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Window . set System Ui Visibility ( flag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . clear Flags ( WindowManager . LayoutParams . FLAG _ FULL SCREEN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġis Private Mode : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( is Private ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Private Ġ== Ġfield ) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġis Private ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġno Private Ġ= Ġ! is Private ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenable Cookie Ġ= Ġif Ġ( is Private ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data . accept _ cookie . get () Ġ&& ĠApp Data . accept _ cookie _ private . get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data . accept _ cookie . get () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Client . is Enable History Ġ= Ġno Private Ġ&& ĠApp Data . save _ history . get () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCookie Manager . getInstance (). set Accept Cookie ( enable Cookie ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Manager In . loaded Data . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= Ġit . m WebView . web Settings ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . m WebView . set Accept Third Party Cookies ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCookie Manager . getInstance (), Ġenable Cookie Ġ&& ĠApp Data . accept _ third _ cookie . get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . save FormData Ġ= Ġno Private Ġ&& ĠApp Data . save _ form data . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . database Enabled Ġ= Ġno Private Ġ&& ĠApp Data . web _ db . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . dom Storage Enabled Ġ= Ġno Private Ġ&& ĠApp Data . web _ dom _ db . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . geo location Enabled Ġ= Ġno Private Ġ&& ĠApp Data . web _ geo location . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . app Cache Enabled Ġ= Ġno Private Ġ&& ĠApp Data . web _ app _ cache . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . set App Cache Path ( app Cache FilePath ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . notify Change Web State () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Enable Fast Page Scroller : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠwebView Page Fast Scroller Ġ!= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġshow Fast Page Scroller ( target : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( web View Page Fast Scroller Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Page Fast Scroller Ġ= ĠWebView Page Fast Scroller ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . bottom Toolbar Always Layout . addView ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ( tab Manager In . current Tab Data . m WebView ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset On End Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . bottom Toolbar Always Layout . remove View ( web View Page Fast Scroller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Page Fast Scroller Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose Fast Page Scroller () Ġ{ ĊĠĠĠĠĠĠĠ ĠwebView Page Fast Scroller ?. close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Enable Auto Scroll : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠwebView Auto Scroll Manager Ġ!= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġstart Auto Scroll ( target : ĠInt , Ġaction : ĠAuto Page Scroll Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( web View Auto Scroll Manager Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠwebView Auto Scroll Manager Ġ= ĠWebView Auto Scroll Manager (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset On Stop Listener Ġ{ ĠwebView Auto Scroll Manager Ġ= Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart ( tab Manager In . current Tab Data . m WebView , Ġaction . scroll Speed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop Auto Scroll () Ġ{ ĊĠĠĠĠĠĠĠ ĠwebView Auto Scroll Manager ?. stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġis Enable Mouse Pointer : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmouse Cursor View Ġ!= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġshow Mouse Pointer ( is Back Finish : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( mouse Cursor View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmouse Cursor View Ġ= ĠPointer View ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġback Finish Ġ= Ġis Back Finish ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset View ( tab Manager In . current Tab Data . m WebView . view ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweb Frame Layout . addView ( this , ĠViewGroup . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . MATCH _ PARENT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose Mouse Pointer () Ġ{ ĊĠĠĠĠĠĠĠ Ġmouse Cursor View ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset View ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Frame Layout . remove View ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmouse Cursor View Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġweb Rtc Handler Ġby Ġlazy Ġ{ ĠWeb Rtc Permission Handler ( application Context , Ġasync Permissions ) Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġrequest Permissions ( permissions : ĠList < String >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġweb Rtc Handler . request Permissions ( permissions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrequest Page Permission ( host : ĠString , Ġresources : ĠArray < String >, Ġon Grant : Ġ( Boolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . permission _ request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( getRequest Rtc List ( host , Ġresources )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . allow ) Ġ{ Ġ_, Ġ_ Ġ-> Ġon Grant ( true ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . block ) Ġ{ Ġ_, Ġ_ Ġ-> Ġon Grant ( false ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Cancel Listener Ġ{ Ġon Grant ( false ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Request Rtc List ( host : ĠString , Ġresources : ĠArray < String >): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġresources . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Request . RESOURCE _ AUDIO _ CAPTURE Ġ-> Ġbuilder . append ( getString ( R . string . mic )). append ('\ n ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Request . RESOURCE _ MIDI _ SY SE X Ġ-> Ġbuilder . append ( getString ( R . string . midi _ device )). append ('\ n ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Request . RESOURCE _ PROTECT ED _ MEDIA _ ID Ġ-> Ġbuilder . append ( getString ( R . string . protected _ media _ id )). append ('\ n ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPermission Request . RESOURCE _ VIDEO _ CAPTURE Ġ-> Ġbuilder . append ( getString ( R . string . camera )). append ('\ n ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠgetString ( R . string . permission _ request _ mes , Ġhost , Ġbuilder . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġweb Rtc Request : ĠWeb Rtc Request ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis ĊĊĠĠĠ Ġoverride Ġvar Ġis Enable Find On Page : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfind On Page ?. isVisible Ġ== Ġtrue ĊĠĠĠĠĠĠĠ Ġset ( enable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( enable Ġ== Ġis Enable Find On Page ) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( find On Page Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind On Page Ġ= ĠWebView Find Dialog Factory . create Instance ( this , Ġtoolbar . find On Page ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( enable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind On Page !!. show ( tab Manager In . current Tab Data . m WebView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind On Page !!. hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġis Enable F lick : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠApp Data . f lick _ enable . get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data . f lick _ enable . set ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Data . commit ( application Context , ĠApp Data . f lick _ enable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġis Enable User Script : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġweb Client . is Enable User Script ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Client . is Enable User Script Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġis Enable Quick Control : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġuser Action Manager . is Pie Enabled ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Action Manager . set Pie Enable ( value , Ġweb Frame Layout ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġis Enable Multi F inger Gesture : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġuser Action Manager . is Enable Multi F inger Gesture ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Action Manager . is Enable Multi F inger Gesture Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġis Enable Ad Block : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġweb Client . is Enable Ad Block ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Client . is Enable Ad Block Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġis Enable Gesture : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġweb Gesture Overlay View . isEnabled ĊĠĠĠĠĠĠĠ Ġset ( enable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweb Gesture Overlay View . isEnabled Ġ= Ġenable ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ** ĠWork around Ġfor ĠM Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġget Assets (): ĠAsset Manager Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġresources . assets ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Browser Activity " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAB _ TYPE Ġ= Ġ" tab Type " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEX TRA _ DATA _ TARGET Ġ= Ġ" Browser Activity . target " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ WINDOW _ MODE Ġ= Ġ" window _ mode " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ SHO ULD _ OPEN _ IN _ NEW _ TAB Ġ= Ġ" should Open In New Tab " ĊĠĠĠ Ġ} Ċ }