package Ġru . tech . easy search . activity Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . speech . Recognizer Intent Ċ import Ġandroid . util . Patterns Ċ import Ġandroid . view . View . GONE Ċ import Ġandroid . webkit . URL Util Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . activity . result . Activity Result Launcher Ċ import Ġandroidx . activity . result . contract . Activity Result Contracts Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . widget . AppCompat ImageView Ċ import Ġandroidx . appcompat . widget . Search View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . recyclerview . widget . Pager Snap Helper Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . be k aw est berg . loop ing layout . library . Loop ing LayoutManager Ċ import Ġcom . google . android . material . card . Material Card View Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġru . tech . easy search . R Ċ import Ġru . tech . easy search . adapter . shortcuts . Shortcut s Pager Recycler Adapter Ċ import Ġru . tech . easy search . adapter . toolbar . Toolbar Adapter Ċ import Ġru . tech . easy search . application . E Search Application . Companion . database Ċ import Ġru . tech . easy search . data . Browser Tabs . load Opened Tabs Ċ import Ġru . tech . easy search . data . Browser Tabs . opened Tabs Ċ import Ġru . tech . easy search . data . Browser Tabs . update Tabs Ċ import Ġru . tech . easy search . data . Data Arrays . prefix Dict Ċ import Ġru . tech . easy search . data . SharedPreferences Access . load Label List Ċ import Ġru . tech . easy search . data . SharedPreferences Access . load Theme Ċ import Ġru . tech . easy search . database . E Search Database Ċ import Ġru . tech . easy search . database . shortcuts . Shortcut Ċ import Ġru . tech . easy search . databinding . Activity Main Binding Ċ import Ġru . tech . easy search . extensions . Extensions . get Bitmap Ċ import Ġru . tech . easy search . extensions . Extensions . set Coeff Ċ import Ġru . tech . easy search . extensions . Extensions . toByteArray Ċ import Ġru . tech . easy search . fragment . bookmarks . Book marks Fragment Ċ import Ġru . tech . easy search . fragment . dialog . Select Labels Dialog Ċ import Ġru . tech . easy search . fragment . history . History Fragment Ċ import Ġru . tech . easy search . fragment . results . SearchResults Fragment Ċ import Ġru . tech . easy search . fragment . settings . Settings Fragment Ċ import Ġru . tech . easy search . fragment . tabs . Tabs Fragment Ċ import Ġru . tech . easy search . functions . Functions . do In Background Ċ import Ġru . tech . easy search . helper . ad block . Ad Block er Ċ import Ġru . tech . easy search . helper . interfaces . Label List Changed Interface Ċ import Ġjava . util .* Ċ import Ġkotlin . system . exit Process Ċ Ċ @ Suppress Lint (" Notify DataSet Changed ") Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠLabel List Changed Interface Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġbinding : ĠActivity Main Binding ĊĊĠĠĠ Ġprivate Ġvar Ġsearch View : ĠSearch View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtoolbar Adapter : ĠToolbar Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlayout Manager : ĠLoop ing LayoutManager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcard : ĠMaterial Card View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlabel Recycler : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtoolbar Recycler : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfab : ĠFloating ActionButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġforward : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbackward : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmanage List : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġclose : ĠImage Button ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġhistory : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcurrent Windows : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbook marks : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsettings : ĠImage Button ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġpager Snap Helper Ġ= ĠP ager Snap Helper () ĊĊĠĠĠ Ġprivate Ġval Ġresult Launcher Ġ= ĊĠĠĠĠĠĠĠ Ġregister For Activity Result ( Activity Result Contracts . Start Activity For Result ()) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata : ĠIntent ? Ġ= Ġresult . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecognized ( data ?. getString ArrayList Extra ( Recognizer Intent . EXTRA _ RESULTS )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrecognized ( string ArrayList Extra : ĠArrayList < String > ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠString Ġ= Ġstring ArrayList Extra . toString (). drop ( 1 ). drop Last ( 1 ) ĊĠĠĠĠĠĠĠ Ġsearch View ?. findViewById < AppCompat ImageView >( android x . appcompat . R . id . search _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . perform Click () ĊĠĠĠĠĠĠĠ Ġsearch View ?. set Query ( result , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġsearch View ?. clear Focus () ĊĊĠĠĠĠĠĠĠ Ġstart Browser With Query ( result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Browser With Query ( query : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager ?. find Last Comp let ely Visible Item Position () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġtoolbar Adapter ?. label List ?. get ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġprefix Ġ= Ġprefix Dict [ key ] !! ĊĊĠĠĠĠĠĠĠ Ġval Ġtemp Url Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! query . contains (" https :// ") Ġ&& Ġ! query . contains (" http :// ") Ġ-> Ġ" https :// $ query " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġquery ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( URL Util . isValid Url ( temp Url ) Ġ&& ĠPattern s . WEB _ URL . matcher ( temp Url ). matches ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Browser Ġ= ĠIntent ( this , ĠBrowser Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent Browser . putExtra (" url ", Ġtemp Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent Browser ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . put CharSequence (" url ", Ġprefix Ġ+ Ġquery ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . put CharSequence (" prefix ", Ġprefix ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSearch Results Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= Ġargs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Added ) Ġshow ( support FragmentManager , Ġ" results ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġval Ġlabel List : ĠArrayList < String > Ġ= ĠArrayList ( load Label List ( this ) !!. split ("+ ")) ĊĠĠĠĠĠĠĠ ĠonStart List ( label List ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( opened Tabs . isEmpty ()) Ġload Opened Tabs () ĊĊĠĠĠĠĠĠĠ Ġdisplay Offset Y Ġ= Ġ- resources . display Metrics . height Pixels . toFloat () ĊĠĠĠĠĠĠĠ Ġdisplay Offset X Ġ= Ġ- resources . display Metrics . width Pixels . toFloat () ĊĊĠĠĠĠĠĠĠ Ġdo In Background Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAd Block er . create Ad List ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Set JavaScript Enabled ") ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġset Theme ( load Theme (( this ))) ĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . enter _ slide _ up , ĠR . anim . exit _ slide _ down ) ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Main Binding . inflate ( layout Inflater ) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĊĠĠĠĠĠĠĠ Ġset Coeff () ĊĊĠĠĠĠĠĠĠ Ġdatabase Ġ= ĠE Search Database . getInstance ( application Context ) ĊĊĠĠĠĠĠĠĠ Ġdisplay Offset Y Ġ= Ġ- resources . display Metrics . height Pixels . toFloat () ĊĠĠĠĠĠĠĠ Ġdisplay Offset X Ġ= Ġ- resources . display Metrics . width Pixels . toFloat () ĊĊĠĠĠĠĠĠĠ Ġtoolbar Recycler Ġ= Ġbinding . app Bar . toolbar Recycler ĊĊĠĠĠĠĠĠĠ Ġval Ġlabel List : ĠArrayList < String > Ġ= ĠArrayList ( load Label List ( this ) !!. split ("+ ")) ĊĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLoop ing LayoutManager ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLoop ing LayoutManager . HORIZONTAL , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtoolbar Recycler !!. layout Manager Ġ= Ġlayout Manager ĊĊĠĠĠĠĠĠĠ Ġfab Ġ= Ġbinding . fab ĊĠĠĠĠĠĠĠ Ġfab !!. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Speech Recognize ( result Launcher ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcard Ġ= Ġbinding . label Suggestion Card ĊĠĠĠĠĠĠĠ Ġcard !!. translation Y Ġ= Ġdisplay Offset Y ĊĠĠĠĠĠĠĠ Ġmanage List Ġ= Ġbinding . manage List ĊĠĠĠĠĠĠĠ Ġmanage List !!. translation Y Ġ= Ġdisplay Offset Y ĊĠĠĠĠĠĠĠ Ġclose Ġ= Ġbinding . close Button ĊĠĠĠĠĠĠĠ Ġclose !!. translation X Ġ= Ġdisplay Offset X ĊĊĠĠĠĠĠĠĠ Ġhistory Ġ= Ġbinding . history Button ĊĠĠĠĠĠĠĠ Ġcurrent Windows Ġ= Ġbinding . current Pages Button ĊĠĠĠĠĠĠĠ Ġbook marks Ġ= Ġbinding . bookmarks Button ĊĠĠĠĠĠĠĠ Ġsettings Ġ= Ġbinding . settings Button ĊĊĠĠĠĠĠĠĠ Ġlabel Recycler Ġ= Ġbinding . label Recycler ĊĊĠĠĠĠĠĠĠ Ġforward Ġ= Ġbinding . forward ĊĠĠĠĠĠĠĠ Ġbackward Ġ= Ġbinding . backward ĊĊĠĠĠĠĠĠĠ Ġrecursive Click Forward () ĊĠĠĠĠĠĠĠ Ġrecursive Click Backward () ĊĊĠĠĠĠĠĠĠ Ġtoolbar Adapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToolbar Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Recycler !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar Recycler !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġforward , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbackward , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanage List !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtoolbar Recycler !!. adapter Ġ= Ġtoolbar Adapter ĊĊĠĠĠĠĠĠĠ Ġval Ġselect Labels Fragment Ġ= ĠSelect Labels Dialog ( this ) ĊĠĠĠĠĠĠĠ Ġmanage List !!. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! select Labels Fragment . is Added ) Ġselect Labels Fragment . show ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" custom " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclose !!. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Search Selection Card ( start Action Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab !!. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsearch View Ġ= Ġbinding . search View ĊĠĠĠĠĠĠĠ Ġsearch View !!. is Submit Button Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġsearch View ?. setOn Query Text Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠSearch View . On Query Text Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Query Text Change ( new Text : ĠString ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Query Text Submit ( query : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Browser With Query ( query ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġsearch View ?. findViewById < AppCompat ImageView >( android x . appcompat . R . id . search _ button ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . perform Click () ĊĠĠĠĠĠĠĠ Ġsearch View ?. clear Focus () ĊĊĊĠĠĠĠĠĠĠ Ġval Ġhelper Ġ= ĠP ager Snap Helper () ĊĠĠĠĠĠĠĠ Ġhelper . attach To RecyclerView ( toolbar Recycler !! ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġanim ating Ġ= Ġfalse ĊĊĊĠĠĠĠĠĠĠ Ġtoolbar Recycler !!. add On Scroll Listener ( object Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sc rolled ( re cyclerView : ĠRecyclerView , Ġdx : ĠInt , Ġdy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Sc rolled ( re cyclerView , Ġdx , Ġdy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! anim ating Ġ&& Ġcard !!. translation Y Ġ== Ġ 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Search Selection Card ( start Action Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim ating Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġend Action Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab !!. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim ating Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdatabase . shortcut Dao (). getAll Shortcut s (). observe ( this ) Ġ{ Ġmain List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplus Shortcut Ġ= ĠShort cut ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . add Shortcut ), Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( this , ĠR . drawable . ic _ baseline _ add _ box _ 2 4 ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Bitmap () !!. toByteArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtemp List : ĠArrayList < Shortcut > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew List : ĠArrayList < ArrayList < Shortcut >> Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( main List . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġmain List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( temp List . size Ġ== Ġ 2 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew List . add ( temp List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp List Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġtemp List . add ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( temp List . isNotEmpty ()) Ġnew List . add ( temp List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew List [ new List . last Index ]. add ( plus Shortcut ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . recycler Include . main Recycler . adapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShort cuts Pager Recycler Adapter ( this , Ġnew List ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpager Snap Helper . attach To RecyclerView ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpager Snap Helper . attach To RecyclerView ( binding . recycler Include . main Recycler ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp List . add ( plus Shortcut ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew List . add ( temp List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . recycler Include . main Recycler . adapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShort cuts Pager Recycler Adapter ( this , Ġnew List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . indicator . attach To RecyclerView ( binding . recycler Include . main Recycler ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrecursive Bottom Navigation Click () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrecursive Bottom Navigation Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġhistory ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHistory Fragment (). show ( support FragmentManager , Ġ" custom ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Before Next Click () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcurrent Windows ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTabs Fragment (). show ( support FragmentManager , Ġ" windows ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Before Next Click () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbook marks ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBook marks Fragment (). show ( support FragmentManager , Ġ" custom ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Before Next Click () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsettings ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings Fragment (). show ( support FragmentManager , Ġ" custom ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay Before Next Click () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdelay Before Next Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Listeners () ĊĠĠĠĠĠĠĠ ĠHandler ( main Looper ). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecursive Bottom Navigation Click () ĊĠĠĠĠĠĠĠ Ġ}, Ġ 3 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġhistory ?. setOnClickListener Ġ{} ĊĠĠĠĠĠĠĠ Ġcurrent Windows ?. setOnClickListener Ġ{} ĊĠĠĠĠĠĠĠ Ġbook marks ?. setOnClickListener Ġ{} ĊĠĠĠĠĠĠĠ Ġsettings ?. setOnClickListener Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrecursive Click Forward () Ġ{ ĊĠĠĠĠĠĠĠ Ġforward !!. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Pos Ġ= Ġlayout Manager !!. find Last Comp let ely Visible Item Position () Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Pos Ġ== Ġtoolbar Adapter !!. item Count ) Ġscroll To Position ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġtoolbar Recycler !!. smooth Scroll To Position ( new Pos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setOnClickListener Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler ( main Looper ). post Delayed ({ Ġrecursive Click Forward () Ġ}, Ġ 2 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrecursive Click Backward () Ġ{ ĊĠĠĠĠĠĠĠ Ġbackward !!. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Pos Ġ= Ġlayout Manager !!. find Last Comp let ely Visible Item Position () Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Pos Ġ== Ġ- 1 ) Ġscroll To Position ( toolbar Adapter !!. item Count ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġtoolbar Recycler !!. smooth Scroll To Position ( new Pos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackward !!. setOnClickListener Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler ( main Looper ). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecursive Click Backward () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 2 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Speech Recognize ( result Launcher : ĠActivity Result Launcher < Intent >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Recognizer Intent . ACTION _ RE CO GN IZE _ SPE E CH ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRe cognizer Intent . EXTRA _ LANGUAGE _ MODEL , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRe cognizer Intent . LANGUAGE _ MODEL _ FREE _ FORM ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Recognizer Intent . EXTRA _ LANGUAGE , ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġresult Launcher . launch ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġdisplay Offset Y Ġ= Ġ- 5 0 0 0 f ĊĠĠĠĠĠĠĠ Ġvar Ġdisplay Offset X Ġ= Ġ- 1 0 0 0 f ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġdouble Back To Exit Pressed Once Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( card ?. translation Y Ġ== Ġ 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Search Selection Card ( end Action Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Recycler ?. adapter Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfab ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( double Back To Exit Pressed Once ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Affinity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexit Process ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . double Back To Exit Pressed Once Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠgetString ( R . string . exit Confirm ), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler ( main Looper ). post Delayed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġdouble Back To Exit Pressed Once Ġ= Ġfalse Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon End List () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart List ( label List : ĠArrayList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar Adapter ?. label List Ġ= Ġlabel List ĊĠĠĠĠĠĠĠ Ġtoolbar Adapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġtoolbar Adapter ?. label ListAdapter ?. label List Ġ= Ġlabel List ĊĠĠĠĠĠĠĠ Ġtoolbar Adapter ?. label ListAdapter ?. notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Tabs () ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġscroll To Position ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar Recycler !!. scrollTo Position ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Search Selection Card ( ĊĠĠĠĠĠĠĠ Ġstart Action : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġend Action : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcard ?. animate ()?. y ( display Offset Y )?. set Duration ( 3 5 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . with Start Action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Action ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . with End Action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard ?. visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Action ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. start () ĊĠĠĠĠĠĠĠ Ġforward ?. animate ()?. y ( 0 f )?. set Duration ( 3 0 0 )?. start () ĊĠĠĠĠĠĠĠ Ġbackward ?. animate ()?. y ( 0 f )?. set Duration ( 3 0 0 )?. start () ĊĠĠĠĠĠĠĠ Ġclose ?. animate ()?. x ( display Offset X )?. set Duration ( 2 0 0 )?. start () ĊĠĠĠĠĠĠĠ Ġmanage List ?. animate ()?. y ( display Offset Y )?. set Duration ( 2 0 0 )?. start () ĊĠĠĠ Ġ} Ċ Ċ }