package Ġorg . e uro f uren ce . con navigator . ui . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Parcelable Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . view pager . widget . Pager Adapter Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġcom . p aw eg io . k android . run Delayed Ċ import Ġcom . p aw eg io . k android . text Watcher Ċ import Ġorg . e uro f uren ce . con navigator . R Ċ import Ġorg . e uro f uren ce . con navigator . database . Has Db Ċ import Ġorg . e uro f uren ce . con navigator . database . lazy Loc ate Db Ċ import Ġorg . e uro f uren ce . con navigator . preferences . Background Preferences Ċ import Ġorg . e uro f uren ce . con navigator . ui . adapter . Day Event Pager Adapter Ċ import Ġorg . e uro f uren ce . con navigator . ui . adapter . Favorite Event Pager Adapter Ċ import Ġorg . e uro f uren ce . con navigator . ui . adapter . Room Event Pager Adapter Ċ import Ġorg . e uro f uren ce . con navigator . ui . adapter . Track Event Pager Adapter Ċ import Ġorg . e uro f uren ce . con navigator . ui . filters . Filter By Title Ċ import Ġorg . e uro f uren ce . con navigator . ui . filters . Order Day And Time Ċ import Ġorg . e uro f uren ce . con navigator . ui . filters . then Ċ import Ġorg . e uro f uren ce . con navigator . util . extensions . set FA Icon Ċ import Ġorg . jetbrains . ank o .* Ċ import Ġorg . jetbrains . ank o . design . tab Layout Ċ import Ġorg . jetbrains . ank o . support . v 4 . UI Ċ import Ġorg . jetbrains . ank o . support . v 4 . selector Ċ import Ġorg . jetbrains . ank o . support . v 4 . view Pager Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠDavid Ġon Ġ 5 / 3 / 2 0 1 6 . Ċ Ġ*/ Ċ class ĠEvent List Fragment Ġ: ĠFragment (), ĠHas Db , ĠAn ko Logger Ġ{ ĊĠĠĠ Ġoverride Ġval Ġdb Ġby Ġlazy Loc ate Db () ĊĊĠĠĠ Ġval Ġui Ġ= ĠEvent List Ui () ĊĊĠĠĠ Ġprivate Ġval Ġsearch Fragment Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠEvent Recycler Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( days Instead Of Glyph s Ġ= Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUI Ġ{ Ġui . create View ( this ) Ġ}. view ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġchange Pager Adapter ( Background Preferences . event Pager Mode ) ĊĊĠĠĠĠĠĠĠ Ġchild FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . event Search , Ġsearch Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit Allow ing State Loss () ĊĊĠĠĠĠĠĠĠ Ġui . search . text Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġafter TextChanged Ġ{ Ġtext Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Fragment . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilters Ġ= ĠFilter By Title ( text . toString ()) Ġthen ĠOrder Day And Time () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. data Updated () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchange Pager Adapter ( mode : ĠEvent Pager Mode ) Ġ= Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠ ĠEvent Pager Mode . RO O MS Ġ-> Ġchange Pager Adapter ( Room Event Pager Adapter ( db , Ġchild FragmentManager )) ĊĠĠĠĠĠĠĠ ĠEvent Pager Mode . TRACK S Ġ-> Ġchange Pager Adapter ( Track Event Pager Adapter ( db , Ġchild FragmentManager )) ĊĠĠĠĠĠĠĠ ĠEvent Pager Mode . FA V OR ITES Ġ-> Ġchange Pager Adapter ( Favorite Event Pager Adapter ( db , Ġchild FragmentManager )) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġchange Pager Adapter ( Day Event Pager Adapter ( db , Ġchild FragmentManager ), ĠDay Event Pager Adapter . indexOf Today ( db )) ĊĠĠĠ Ġ}. apply Ġ{ ĠBackground Preferences . event Pager Mode Ġ= Ġmode Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġchange Pager Adapter ( adapter : ĠP ager Adapter , Ġpreferred Position : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġui . pager . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġui . tabs . setup With ViewPager ( ui . pager ) ĊĊĠĠĠĠĠĠĠ Ġpreferred Position ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġui . pager . setCurrent Item ( it , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġactivity ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . findViewById < Toolbar >( R . id . toolbar ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Menu ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Menu ( toolbar : ĠToolbar ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . menu . clear () ĊĠĠĠĠĠĠĠ Ġtoolbar . inflate Menu ( R . menu . event _ list _ menu ) ĊĠĠĠĠĠĠĠ Ġcontext ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . menu . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . set FA Icon ( context !! , ĠR . id . action _ filter , ĠR . string . fa _ filter _ solid , Ġwhite Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . set FA Icon ( context !! , ĠR . id . action _ search , ĠR . string . fa _ search _ solid , Ġwhite Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtoolbar . setOn MenuItem ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ filter Ġ-> Ġon Filter Button Click (). let Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ search Ġ-> Ġon Search Button Click (). let Ġ{ Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĊĠĠĠĠĠĠĠ Ġactivity ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoolbar Ġ= Ġthis . findViewById < Toolbar >( R . id . toolbar ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . menu . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġactivity ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoolbar Ġ= Ġthis . findViewById < Toolbar >( R . id . toolbar ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . menu . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Search Button Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ui . pager . visibility ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView . VISIBLE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui . pager . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui . tabs . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui . search Layout . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui . search . request Focus () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !!. input Method Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toggle Soft Input ( Input Method Manager . SHOW _ IMP LICIT , ĠInput Method Manager . HIDE _ IMP LICIT _ ONLY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui . pager . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui . tabs . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui . search Layout . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Filter Button Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġselector ( getString ( R . string . misc _ filter _ change _ mode ), ĠlistOf ( getString ( R . string . misc _ days ), ĠgetString ( R . string . misc _ rooms ), ĠgetString ( R . string . event _ tracks ), ĠgetString ( R . string . event _ schedule ))) Ġ{ Ġ_, Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġchange Pager Adapter ( Event Pager Mode . RO O MS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġchange Pager Adapter ( Event Pager Mode . TRACK S ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġchange Pager Adapter ( Event Pager Mode . FA V OR ITES ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġchange Pager Adapter ( Event Pager Mode . DAYS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ enum Ġclass ĠEvent Pager Mode Ġ{ ĊĠĠĠ ĠDAY S , ĊĠĠĠ ĠR OO MS , ĊĠĠĠ ĠTR ACK S , ĊĠĠĠ ĠF AV OR ITES Ċ } Ċ Ċ class ĠEvent List Ui Ġ: ĠAn ko Component < Fragment > Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġtabs : ĠTab Layout ĊĠĠĠ Ġlateinit Ġvar Ġpager : ĠView Pager ĊĠĠĠ Ġlateinit Ġvar Ġsearch : ĠEditText ĊĠĠĠ Ġlateinit Ġvar Ġsearch Layout : ĠView ĊĠĠĠ Ġoverride Ġfun Ġcreate View ( ui : ĠAn ko Context < Fragment >) Ġ= Ġwith ( ui ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvertical Layout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtabs Ġ= Ġtab Layout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Resource Ġ= ĠR . color . primary Dark ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Tab Text Colors ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , ĠR . color . text White ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , ĠR . color . text White ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Mode Ġ= ĠTab Layout . MODE _ SCROLL ABLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. l params ( match Parent , Ġwrap Content ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpager Ġ= Ġview Pager Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠR . id . event List Pager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// off screen Page Limit Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. l params ( match Parent , Ġmatch Parent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġscroll View Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Layout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Ġ= Ġedit Text Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhint Ġ= Ġ" Search Ġfor Ġan Ġevent Ġtitle " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. l params ( match Parent , Ġwrap Content ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmargin Ġ= Ġdip ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Layout Ġ= Ġlinear Layout () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠR . id . event Search ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. l params ( match Parent , Ġwrap Content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. l params ( match Parent , Ġwrap Content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. l params ( match Parent , Ġmatch Parent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }