package Ġio . github . w ulkan owy . ui . modules . about . log viewer Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent . EXTRA _ EMAIL Ċ import Ġandroid . content . Intent . EXTRA _ STREAM Ċ import Ġandroid . content . Intent . FLAG _ GRANT _ READ _ URI _ PERMISSION Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . Menu Inflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . content . File Provider Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġio . github . w ulkan owy . Build Config . APPLICATION _ ID Ċ import Ġio . github . w ulkan owy . R Ċ import Ġio . github . w ulkan owy . databinding . Fragment Log viewer Binding Ċ import Ġio . github . w ulkan owy . ui . base . Base Fragment Ċ import Ġio . github . w ulkan owy . ui . modules . main . Main View Ċ import Ġjava . io . File Ċ import Ġjavax . inject . Inject Ċ Ċ @ Android EntryPoint Ċ class ĠLog Viewer Fragment Ġ: ĠBase Fragment < Fragment Log viewer Binding >( R . layout . fragment _ log viewer ), ĊĠĠĠ ĠLog Viewer View , ĠMain View . Title d View Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠLog Viewer Presenter ĊĊĠĠĠ Ġprivate Ġval Ġlog Adapter Ġ= ĠLog Viewer Adapter () ĊĊĠĠĠ Ġoverride Ġval Ġtitle String Id : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠR . string . log viewer _ title ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĠLog Viewer Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Log viewer Binding . bind ( view ) ĊĠĠĠĠĠĠĠ Ġmessage Container Ġ= Ġbinding . log Viewer Recycler ĊĠĠĠĠĠĠĠ Ġpresenter . on Attach View ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . action _ menu _ log viewer , Ġmenu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( item . itemId Ġ== ĠR . id . log Viewer Menu Share ) Ġpresenter . on Share Logs Selected () ĊĠĠĠĠĠĠĠ Ġelse Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( binding . log Viewer Recycler ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġlog Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . log View Refresh Button . setOnClickListener Ġ{ Ġpresenter . on Refresh Click () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Lines ( lines : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog Adapter . lines Ġ= Ġlines ĊĠĠĠĠĠĠĠ Ġlog Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġbinding . log Viewer Recycler . scrollTo Position ( lines . size Ġ- Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshare Logs ( files : ĠList < File >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ SEND _ MULTIPLE ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" text / plain " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( EXTRA _ EMAIL , ĠarrayOf (" w ulkan owy inc @ gmail . com ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Flags ( FLAG _ GRANT _ READ _ URI _ PERMISSION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Parcelable ArrayList Extra ( EXTRA _ STREAM , ĠArrayList ( files . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Provider . get Uri For File ( require Context (), Ġ"$ APPLICATION _ ID . file provider ", Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent . create Chooser ( intent , ĠgetString ( R . string . log viewer _ share ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . on Detach View () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} Ċ } Ċ