/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 ĠZ ac ĠS we ers Ċ Ġ* Ċ Ġ* Ġ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 Ġio . s we ers . catch up . ui . logs Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . Intent Ċ import Ġandroid . widget . ListView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . core . net . to Uri Ċ import Ġio . reactivex . Single Observer Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġio . s we ers . catch up . data . L umber Y ard Ċ import Ġio . s we ers . catch up . util . maybe Start Chooser Ċ import Ġjava . io . File Ċ Ċ class ĠLogs Dialog ( context : ĠContext , Ġprivate Ġval Ġl umber Y ard : ĠL umber Y ard ) Ġ: ĠAlertDialog ( context ) Ġ{ ĊĠ Ġprivate Ġval Ġadapter : ĠLog Adapter Ġ= ĠLog Adapter ( context ) ĊĊĠ Ġprivate Ġvar Ġdis pos ables : ĠComposite Disposable ? Ġ= Ġnull ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġval ĠlistView Ġ= ĠListView ( context ) ĊĠĠĠ ĠlistView . transcript Mode Ġ= ĠListView . TRAN SCRIPT _ MODE _ NORMAL ĊĠĠĠ ĠlistView . adapter Ġ= Ġadapter ĊĊĠĠĠ ĠsetTitle (" Logs ") ĊĠĠĠ Ġset View ( list View ) ĊĠĠĠ Ġset Button ( DialogInterface . BUTTON _ NEGATIVE , Ġ" Close ") Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠ Ġ// ĠNO - OP . ĊĠĠĠ Ġ} ĊĠĠĠ Ġset Button ( DialogInterface . BUTTON _ POSITIVE , Ġ" Share ") Ġ{ Ġ_, Ġ_ Ġ-> Ġshare () Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠ Ġsuper . onStart () ĊĊĠĠĠ Ġadapter . set Logs ( l umber Y ard . buffered Logs ()) ĊĊĠĠĠ Ġdis pos ables Ġ= ĠComposite Disposable (). apply Ġ{ ĊĠĠĠĠĠ Ġadd ( l umber Y ard . logs () ĊĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( adapter )) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠ Ġsuper . on Stop () ĊĠĠĠ Ġdis pos ables ?. dispose () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġshare () Ġ{ ĊĠĠĠ Ġl umber Y ard . save () ĊĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠ Ġ. subscribe ( object Ġ: ĠSingle Observer < File > Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Subscribe ( d : ĠDis posable ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( file : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsend Intent Ġ= ĠIntent ( Intent . ACTION _ SEND ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Intent . type Ġ= Ġ" text / plain " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Intent . putExtra ( Intent . EXTRA _ STREAM , Ġfile . to Uri ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . maybe Start Chooser ( send Intent ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Couldn 't Ġsave Ġthe Ġlogs Ġfor Ġsharing .", ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠ Ġ} Ċ } Ċ