package Ġcom . ch imer apps . n idd ler . ui . component Ċ Ċ import Ġcom . ch imer apps . discovery . device . Device Ċ import Ġcom . ch imer apps . discovery . device . Direct Prepared Connection Ċ import Ġcom . ch imer apps . discovery . device . Prepared Device Connection Ċ import Ġcom . ch imer apps . discovery . device . ide vice . I Device Bootstrap Ċ import Ġcom . ch imer apps . discovery . ui . Base 6 4 Session Icon Provider Ċ import Ġcom . ch imer apps . discovery . ui . Compound Session Icon Provider Ċ import Ġcom . ch imer apps . discovery . ui . Connect Dialog Ċ import Ġcom . ch imer apps . discovery . ui . Default Session Icon Provider Ċ import Ġcom . ch imer apps . discovery . ui . Dis covered Device Connection Ċ import Ġcom . ch imer apps . discovery . ui . Manual Connection Ċ import Ġcom . ch imer apps . discovery . utils . free Port Ċ import Ġcom . ch imer apps . n idd ler . ui . N idd ler Tool Window Ċ import Ġcom . ch imer apps . n idd ler . ui . actions . Connect Action Ċ import Ġcom . ch imer apps . n idd ler . ui . actions . Connect Debugger Action Ċ import Ġcom . ch imer apps . n idd ler . ui . actions . Disconnect Action Ċ import Ġcom . ch imer apps . n idd ler . ui . actions . Export Action Ċ import Ġcom . ch imer apps . n idd ler . ui . actions . Linked Action Ċ import Ġcom . ch imer apps . n idd ler . ui . actions . Scroll To Bottom Action Ċ import Ġcom . ch imer apps . n idd ler . ui . actions . Simple Action Ċ import Ġcom . ch imer apps . n idd ler . ui . actions . Timeline Action Ċ import Ġcom . ch imer apps . n idd ler . ui . actions . Toggle Wifi Action Ċ import Ġcom . ch imer apps . n idd ler . ui . component . view . BaseUrl Hide Listener Ċ import Ġcom . ch imer apps . n idd ler . ui . component . view . Linked View Ċ import Ġcom . ch imer apps . n idd ler . ui . component . view . Message Detail View Ċ import Ġcom . ch imer apps . n idd ler . ui . component . view . Messages View Ċ import Ġcom . ch imer apps . n idd ler . ui . component . view . N idd ler StatusBar Ċ import Ġcom . ch imer apps . n idd ler . ui . component . view . Timeline View Ċ import Ġcom . ch imer apps . n idd ler . ui . debugging . map local . Project File Resolver Ċ import Ġcom . ch imer apps . n idd ler . ui . debugging . rewrite . Rewrite Config Ċ import Ġcom . ch imer apps . n idd ler . ui . model . App Preferences Ċ import Ġcom . ch imer apps . n idd ler . ui . model . Project Config Ċ import Ġcom . ch imer apps . n idd ler . ui . settings . N idd ler Settings Ċ import Ġcom . ch imer apps . n idd ler . ui . util . session . Session Finder Util Ċ import Ġcom . ch imer apps . n idd ler . ui . util . ui . Included Icons Ċ import Ġcom . ch imer apps . n idd ler . ui . util . ui . Notification Util Ċ import Ġcom . ch imer apps . n idd ler . ui . util . ui . Project Session Icon Provider Ċ import Ġcom . ch imer apps . n idd ler . ui . util . ui . choose Save File Ċ import Ġcom . ch imer apps . n idd ler . ui . util . ui . dispatch Main Ċ import Ġcom . ch imer apps . n idd ler . ui . util . ui . ensure Main Ċ import Ġcom . ic apps . n idd ler . lib . connection . N idd ler Client Ċ import Ġcom . ic apps . n idd ler . lib . connection . model . N idd ler Message Ċ import Ġcom . ic apps . n idd ler . lib . connection . model . N idd ler Server Info Ċ import Ġcom . ic apps . n idd ler . lib . connection . protocol . N idd ler Message Listener Ċ import Ġcom . ic apps . n idd ler . lib . debugger . Dispatch ing N idd ler Debug Listener Ċ import Ġcom . ic apps . n idd ler . lib . debugger . model . Debugger Service Ċ import Ġcom . ic apps . n idd ler . lib . debugger . model . map local . Map Local Configuration Ċ import Ġcom . ic apps . n idd ler . lib . debugger . model . map local . Map Local Debug Listener Ċ import Ġcom . ic apps . n idd ler . lib . debugger . model . rewrite . Rewrite Debug Listener Ċ import Ġcom . ic apps . n idd ler . lib . export . Har Export Ċ import Ġcom . ic apps . n idd ler . lib . model . BaseUrl H ider Ċ import Ġcom . ic apps . n idd ler . lib . model . N idd ler Message Body Parser Ċ import Ġcom . ic apps . n idd ler . lib . model . N idd ler Message Container Ċ import Ġcom . ic apps . n idd ler . lib . model . Parsed N idd ler Message Provider Ċ import Ġcom . ic apps . n idd ler . lib . model . Simple Url Match Filter Ċ import Ġcom . ic apps . n idd ler . lib . model . classifier . Header Body Classifier Ċ import Ġcom . ic apps . n idd ler . lib . model . storage . N idd ler Message Storage Ċ import Ġcom . ic apps . n idd ler . lib . model . storage . binary . Quick Binary Message Storage Ċ import Ġcom . intellij . icons . All Icons Ċ import Ġcom . intellij . openapi . Disposable Ċ import Ġcom . intellij . openapi . action System . Action Manager Ċ import Ġcom . intellij . openapi . action System . Action Toolbar Ċ import Ġcom . intellij . openapi . action System . An Action Ċ import Ġcom . intellij . openapi . action System . Default Action Group Ċ import Ġcom . intellij . openapi . application . run Write Action Ċ import Ġcom . intellij . openapi . options . Show Settings Util Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . intellij . ui . Filter Component Ċ import Ġcom . intellij . ui . JB Splitter Ċ import Ġcom . intellij . ui . content . Content Ċ import Ġcom . intellij . util . Icon Util Ċ import Ġjava . awt . Border Layout Ċ import Ġjava . io . File Ċ import Ġjava . io . File OutputStream Ċ import Ġjavax . swing . Border Factory Ċ import Ġjavax . swing . J Component Ċ import Ġjavax . swing . JOptionPane Ċ import Ġjavax . swing . JPanel Ċ import Ġjavax . swing . Swing Utilities Ċ import Ġjavax . swing . Swing Worker Ċ Ċ class ĠN idd ler Session Window ( ĊĠĠĠ Ġprivate Ġval Ġproject : ĠProject , ĊĠĠĠ Ġdis posable : ĠDis posable , ĊĠĠĠ Ġprivate Ġval Ġn idd ler Tool Window : ĠN idd ler Tool Window Ċ ) Ġ: ĠJPanel ( Border Layout ()), ĠN idd ler Message Listener , ĠBase Url Hide Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAPP _ PREFER ENCE _ SCROLL _ TO _ END Ġ= Ġ" scrollTo End " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAPP _ PREFER ENCE _ SPLIT TER _ STATE Ġ= Ġ"${ App Preferences . N ID DL ER _ PREFIX } detail Splitter " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġcontent : ĠContent ĊĊĠĠĠ Ġprivate Ġval Ġroot Content Ġ= ĠJPanel ( Border Layout ()) ĊĠĠĠ Ġprivate Ġval Ġconnect Toolbar Ġ= Ġsetup Connect Toolbar () ĊĠĠĠ Ġprivate Ġval Ġexport Action Ġ= ĠExport Action (:: do Export ) ĊĠĠĠ Ġprivate Ġval Ġtoggle Wifi Action Ġ= ĠToggle Wifi Action ( this ) Ġ{ Ġdebugger Service ?. toggle Wifi () Ġ} ĊĠĠĠ Ġprivate Ġval Ġview Toolbar Ġ= Ġsetup View Toolbar () ĊĠĠĠ Ġprivate Ġval Ġstatus Bar Ġ= ĠN idd ler StatusBar () ĊĠĠĠ Ġprivate Ġval Ġsplit ter Ġ= ĠJ B Splitter ( APP _ PREFER ENCE _ SPLIT TER _ STATE , Ġ 0 . 6 f ) ĊĠĠĠ Ġprivate Ġvar ĠbaseUrl H ider : ĠBase Url H ider ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcurrent Filter : ĠN idd ler Message Storage . Filter ? Ġ= Ġnull ĊĠĠĠ Ġval Ġrewrite Debug Listener Ġ= ĠRewrite Debug Listener (:: on Wrong StatusMessage Replacement ) ĊĠĠĠ Ġval Ġmap Local Debug Listener Ġ= ĠMap Local Debug Listener ( Project File Resolver ( project )) ĊĠĠĠ Ġprivate Ġval Ġdebug Listener Ġ= ĠDispatch ing N idd ler Debug Listener (). also Ġ{ ĊĠĠĠĠĠĠĠ Ġit . add Delegate ( rewrite Debug Listener ) ĊĠĠĠĠĠĠĠ Ġit . add Delegate ( map Local Debug Listener ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġextension Based Actions Ġ= Ġmap Of < String , ĠAn Action >(" toggle Internet " Ġto Ġtoggle Wifi Action ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaction Group : ĠDefault Action Group ĊĊĠĠĠ Ġvar Ġdebugger Service : ĠDebugger Service ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ// TODO Ġdisconnect ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġvar Ġcurrent View Mode : ĠView Mode Ġ= ĠView Mode . VIEW _ MODE _ TIME LINE ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ== Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġensure Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Toolbar . update Actions Immediate ly () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġconnection Mode : ĠConnection Mode Ġ= ĠConnection Mode . MODE _ DIS CONNECTED ĊĠĠĠĠĠĠĠ Ġprivate Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġensure Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnect Toolbar . update Actions Immediate ly () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġscroll ToEnd : ĠBoolean Ġ= ĠApp Preferences . get ( APP _ PREFER ENCE _ SCROLL _ TO _ END , Ġdefault Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ== Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġensure Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Messages View ?. update Scroll ToEnd ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Preferences . put ( APP _ PREFER ENCE _ SCROLL _ TO _ END , Ġvalue , Ġdefault Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Toolbar . update Actions Immediate ly () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġcurrent Messages View : ĠMessages View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbody Parser Ġ= ĠN idd ler Message Body Parser ( Header Body Classifier ( emptyList ())) Ġ// TODO Ġextensions ! ĊĊĠĠĠ Ġprivate Ġval Ġmessage Container Ġ= ĠN idd ler Message Container ( Quick Binary Message Storage ()) ĊĠĠĠ Ġprivate Ġval Ġparsed N idd ler Message Provider Ġ= ĠParsed N idd ler Message Provider ({ Ġdispatch Main ( it ) Ġ}, Ġbody Parser , Ġmessage Container ) ĊĠĠĠ Ġprivate Ġvar Ġn idd ler Client : ĠN idd ler Client ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlast Connection : ĠPrepared Device Connection ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġdetail View Ġ= ĠMessage Detail View ( project , Ġdis posable , Ġparsed N idd ler Message Provider , Ġmessage Container ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ( root Content , ĠBorderLayout . CENTER ) ĊĠĠĠĠĠĠĠ Ġadd ( status Bar , ĠBorderLayout . SO UTH ) ĊĠĠĠĠĠĠĠ Ġupdate View () ĊĊĠĠĠĠĠĠĠ Ġsplit ter . second Component Ġ= Ġdetail View ĊĊĠĠĠĠĠĠĠ Ġroot Content . add ( splitter , ĠBorderLayout . CENTER ) ĊĠĠĠĠĠĠĠ Ġmessage Container . register Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcurrent View Mode Un selected () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Do Ġnot Ġswitch Ġto Ġother Ġview Ġmode Ġuntil Ġother Ġview Ġmode Ġis Ġsupported ĊĠĠĠĠĠĠĠ Ġcurrent View Mode Ġ= Ġif Ġ( current View Mode Ġ== ĠView Mode . VIEW _ MODE _ LINK ED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Mode . VIEW _ MODE _ TIME LINE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Mode . VIEW _ MODE _ LINK ED ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview Toolbar . update Actions Immediate ly () Ġ// Update Ġui ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Window Closed () Ġ{ ĊĠĠĠĠĠĠĠ Ġn idd ler Client ?. let Ġ{ Ġmessage Container . detach ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn idd ler Client ?. close () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġn idd ler Client Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Connection ?. te ar Down () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlast Connection Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġmessage Container . clear () ĊĠĠĠĠĠĠĠ Ġmessage Container . close () ĊĊĠĠĠĠĠĠĠ Ġmessage Container . unregister Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Connect Toolbar (): ĠAction Toolbar Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaction Group Ġ= ĠDefault Action Group () ĊĊĠĠĠĠĠĠĠ Ġaction Group . add ( Connect Action ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Connect Dialog ( with Debugger Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġaction Group . add ( Connect Debugger Action ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Connect Dialog ( with Debugger Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġaction Group . add ( Disconnect Action ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn idd ler Client ?. close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn idd ler Client Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Connection ?. te ar Down () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Connection Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Mode Ġ= ĠConnection Mode . MODE _ DIS CONNECTED ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Ġ= ĠAction Manager . getInstance (). create Action Toolbar (" N idd ler ", Ġaction Group , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Container Ġ= ĠJPanel ( Border Layout ()) ĊĠĠĠĠĠĠĠ Ġtoolbar Container . add ( toolbar . component , ĠBorderLayout . WEST ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= Ġobject Ġ: ĠFilter Component (" n idd ler - filter ", Ġ 1 0 , Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfilter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= Ġfilter . trim () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Filter : ĠN idd ler Message Storage . Filter ? Ġ= Ġif Ġ( filter . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Url Match Filter ( filter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ N idd ler Session Window . current Filter Ġ= Ġcurrent Filter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Messages View ?. filter Ġ= Ġcurrent Filter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfilter . border Ġ= ĠBorder Factory . create Empty Border ( 0 , Ġ 0 , Ġ 0 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġtoolbar Container . add ( filter , ĠBorderLayout . EAST ) ĊĊĠĠĠĠĠĠĠ Ġroot Content . add ( toolbar Container , ĠBorderLayout . NORTH ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtoolbar ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Connect Dialog ( with Debugger : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠConnect Dialog . show ( Swing Utilities . getWindow Ancestor ( this ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn idd ler Tool Window . adb Interface Ġ?: Ġreturn , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠI Device Bootstrap ( File ( N idd ler Settings . instance . state . i Device Bin aries Path Ġ?: Ġ"/ usr / local / bin ")), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDevice . N ID DL ER _ AN NOUN CE MENT _ PORT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsession Icon Provider Ġ= ĠProject Session Icon Provider . instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Ġ= ĠCompound Session Icon Provider ( Default Session Icon Provider (), ĠBase 6 4 Session Icon Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Plugin Callback Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShow Settings Util . getInstance (). show Settings Dialog ( project , Ġ" N idd ler ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn idd ler Tool Window . adb Interface !! Ġto ĠI Device Bootstrap ( File ( N idd ler Settings . instance . state . i Device Bin aries Path Ġ?: Ġ"/ usr / local / bin ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġresult . dis covered ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Connect Session ( it , Ġwith Debugger ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġresult . direct ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Connect Direct ( it , Ġwith Debugger ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup View Toolbar (): ĠAction Toolbar Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaction Group Ġ= ĠDefault Action Group () ĊĠĠĠĠĠĠĠ Ġthis . action Group Ġ= Ġaction Group ĊĊĠĠĠĠĠĠĠ Ġaction Group . add ( Timeline Action ( window Ġ= Ġthis )) ĊĠĠĠĠĠĠĠ Ġaction Group . add ( Linked Action ( window Ġ= Ġthis )) ĊĊĠĠĠĠĠĠĠ Ġaction Group . add Separator () ĊĠĠĠĠĠĠĠ Ġaction Group . add ( Scroll To Bottom Action ( window Ġ= Ġthis )) ĊĠĠĠĠĠĠĠ Ġaction Group . add Separator () ĊĊĠĠĠĠĠĠĠ Ġaction Group . add ( Simple Action (" Clear Ġlocal ", Ġ" Remove Ġlocally Ġcached Ġmessages ", Ġicon Ġ= ĠAll Icons . Actions . GC ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Container . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexport Action . isEnabled Ġ= Ġ! message Container . isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Toolbar . update Actions Immediate ly () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Messages View ?. on Messages Updated () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġaction Group . add Separator () ĊĠĠĠĠĠĠĠ Ġaction Group . add ( export Action ) ĊĠĠĠĠĠĠĠ Ġaction Group . add Separator () ĊĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Ġ= ĠAction Manager . getInstance (). create Action Toolbar (" N idd ler ", Ġaction Group , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġadd ( toolbar . component , ĠBorderLayout . WEST ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtoolbar ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate View () Ġ{ ĊĠĠĠĠĠĠĠ Ġensure Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( current View Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Mode . VIEW _ MODE _ TIME LINE Ġ-> Ġreplace Messages View ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimeline View ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject , Ġmessage Container , Ġdetail View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparsed N idd ler Message Provider , ĠbaseUrl Hide Listener Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Mode . VIEW _ MODE _ LINK ED Ġ-> Ġreplace Messages View ( Linked View ( message Container , Ġdetail View , Ġparsed N idd ler Message Provider , ĠbaseUrl Hide Listener Ġ= Ġthis )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< T > Ġreplace Messages View ( messages View : ĠT ) Ġwhere ĠT Ġ: ĠJ Component , ĠT Ġ: ĠMessages View Ġ{ ĊĠĠĠĠĠĠĠ Ġsplit ter . first Component Ġ= Ġmessages View ĊĊĠĠĠĠĠĠĠ Ġmessages View . filter Ġ= Ġcurrent Filter ĊĠĠĠĠĠĠĠ Ġmessages View . url H ider Ġ= ĠbaseUrl H ider ĊĊĠĠĠĠĠĠĠ Ġmessages View . update Scroll ToEnd ( scrollTo End ) ĊĠĠĠĠĠĠĠ Ġcurrent Messages View Ġ= Ġmessages View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtry Connect Direct ( direct Connection : ĠManual Connection , Ġwith Debugger : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn idd ler Client ?. close () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġn idd ler Client Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Connection ?. te ar Down () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlast Connection Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġconnect On Connection ( Direct Prepared Connection ( direct Connection . ip , Ġdirect Connection . port ), Ġwith Debugger ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtry Connect Session ( dis covered : ĠDis covered Device Connection , Ġwith Debugger : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn idd ler Client ?. close () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġn idd ler Client Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Connection ?. te ar Down () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlast Connection Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġconnection Ġ= Ġdiscovered . device . prepare Connection ( free Port (), Ġdiscovered . session . port ) ĊĠĠĠĠĠĠĠ Ġconnect On Connection ( connection , Ġwith Debugger ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconnect On Connection ( connection : ĠPrepared Device Connection , Ġwith Debugger : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmessage Container . clear () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebugger Service ?. disconnect () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdebugger Service Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġn idd ler Client Ġ= ĠN idd ler Client ( connection . uri , Ġwith Debugger Ġ= Ġwith Debugger , Ġmessage Storage Ġ= Ġmessage Container ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( with Debugger ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . debug Listener Ġ= Ġdebug Listener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Container . attach ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . register Message Listener ( status Bar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . register Message Listener ( object Ġ: ĠN idd ler Message Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Closed () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġensure Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Mode Ġ= ĠConnection Mode . MODE _ DIS CONNECTED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . icon ?. let Ġ{ Ġicon Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . icon Ġ= ĠIcon Util . des atur ate ( icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebugger Service Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Extension Actions ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . register Message Listener ( object Ġ: ĠN idd ler Message Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Server Info ( server Info : ĠN idd ler Server Info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġensure Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Icon Ġ= Ġserver Info . icon ?. let Ġ{ Ġicon String Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject Session Icon Provider . instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Ġ= ĠCompound Session Icon Provider ( Default Session Icon Provider (), ĠBase 6 4 Session Icon Provider ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). icon For String ( icon String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . icon Ġ= Ġnew Icon ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Extension Actions ( server Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . register Message Listener ( detail View ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . register Message Listener ( object Ġ: ĠN idd ler Message Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ready () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Ġ= Ġn idd ler Client ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( client ?. with Debugger Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// TODO Ġload Ġothers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrewrite Config Ġ= ĠProject Config . load < Rewrite Config >( project , ĠProject Config . CONFIG _ REWRITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Local Ġ= ĠProject Config . load < Map Local Configuration >( project , ĠProject Config . CONFIG _ MAP LOCAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdebugger Service Ġ= ĠDebugger Service ( client ). also Ġ{ Ġservice Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice . connect () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( rewrite Config ?. all Enabled Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrewrite Debug Listener . update Rule Sets ( rewrite Config . sets ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrewrite Config . sets . forEach Ġ{ Ġset Ġ-> Ġservice . rewrite Interface . add Rule Set ( set ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( map Local ?. enabled Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Local Debug Listener . update Map Local ( map Local . mappings ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Local . mappings . forEach Ġ{ Ġmapping Ġ-> Ġservice . map Local Interface . add Local Mapping ( mapping ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice . setActive ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Main ( view Toolbar :: update Actions Immediate ly ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġn idd ler Client ?. connect () ĊĠĠĠĠĠĠĠ Ġlast Connection Ġ= Ġconnection ĊĠĠĠĠĠĠĠ Ġconnection Mode Ġ= ĠConnection Mode . MODE _ CONNECTED ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Extension Actions ( server Info : ĠN idd ler Server Info ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġextension Based Actions . forEach Ġ{ Ġ(_, Ġaction ) Ġ-> Ġaction Group . remove ( action ) Ġ} ĊĠĠĠĠĠĠĠ Ġserver Info ?. extensions ?. let Ġ{ Ġextensions Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextensions . keySet (). forEach Ġ{ Ġkey Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" debug . disable Internet " Ġ-> Ġaction Group . add ( toggle Wifi Action ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdispatch Main ( view Toolbar :: update Actions Immediate ly ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Service Message ( n idd ler Message : ĠN idd ler Message ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Messages View ?. on Messages Updated () ĊĊĠĠĠĠĠĠĠ Ġval Ġcan Export Ġ= Ġ! message Container . isEmpty () ĊĠĠĠĠĠĠĠ Ġif Ġ( export Action . isEnabled Ġ!= Ġcan Export ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexport Action . isEnabled Ġ= Ġcan Export ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Main ( view Toolbar :: update Actions Immediate ly ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide BaseUrl ( baseUrl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġh ider Ġ= Ġif Ġ( baseUrl H ider Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew H ider Ġ= ĠBase Url H ider () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl H ider Ġ= Ġnew H ider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew H ider ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl H ider !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġh ider . hide BaseUrl ( baseUrl ) ĊĠĠĠĠĠĠĠ Ġcurrent Messages View ?. url H ider Ġ= Ġh ider ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow BaseUrl ( baseUrl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġh ider Ġ= ĠbaseUrl H ider Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġh ider . un hide BaseUrl ( baseUrl ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! h ider . has Hidden Base Urls ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbaseUrl H ider Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġcurrent Messages View ?. url H ider Ġ= ĠbaseUrl H ider ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Export () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= Ġcurrent Filter ĊĠĠĠĠĠĠĠ Ġvar Ġapply Filter Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( filter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoption Ġ= ĠJOptionPane . show Option Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġ" A Ġfilter Ġis Ġactive .\ n Do Ġyou Ġwish Ġto Ġexport Ġonly Ġthe Ġitems Ġmatching Ġthe Ġfilter ?", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Export Ġoptions ", ĠJOptionPane . DEFAULT _ OPTION , ĠJOptionPane . QUEST ION _ MESSAGE , ĠInclude d Icons . Status . logo , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" Current Ġview ", Ġ" All "), Ġ" All " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( option ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġapply Filter Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġ-> Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġchosen File Ġ= Ġchoose Save File (" Save Ġexport Ġto ", Ġ". har ") Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġrun Write Action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexport File Ġ= Ġif Ġ( chosen File . extension . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( chosen File . absolute Path Ġ+ Ġ". har ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchosen File ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠHar Export ( parsed N idd ler Message Provider ). export ( File OutputStream ( export File ), Ġmessage Container , Ġif Ġ( apply Filter ) Ġfilter Ġelse Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Util . info (" Save Ġcomplete ", Ġ"< html > Export Ġcompleted Ġto Ġ< a Ġhref =\" file ://${ chosen File . absolute Path }\ ">${ chosen File . name }</ a ></ html >", Ġproject ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconnect To Tag ( tag : ĠString , Ġwith Debugger : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa db Ġ= Ġn idd ler Tool Window . adb Interface ĊĠĠĠĠĠĠĠ Ġval Ġi Device Ġ= ĠI Device Bootstrap ( File ( N idd ler Settings . instance . state . i Device Bin aries Path Ġ?: Ġ"/ usr / local / bin ")) ĊĠĠĠĠĠĠĠ Ġval Ġport Ġ= ĠDevice . N ID DL ER _ AN NOUN CE MENT _ PORT ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠSw ing Worker < Dis covered Device Connection ?, ĠAny >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo In Background (): ĠDis covered Device Connection ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSession Finder Util ( adb , Ġi Device , Ġport ). find Session With Tag ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdone () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsession Ġ= Ġget () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Connect Session ( session , Ġwith Debugger Ġ= Ġwith Debugger ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconnect To Device ( device : ĠDevice , Ġport : ĠInt , Ġwith Debugger : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn idd ler Client ?. close () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġn idd ler Client Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Connection ?. te ar Down () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignore : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlast Connection Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġconnection Ġ= Ġdevice . prepare Connection ( free Port (), Ġport ) ĊĠĠĠĠĠĠĠ Ġconnect On Connection ( connection , Ġwith Debugger ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Wrong StatusMessage Replacement ( replacement : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdispatch Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Util . error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Replacement Ġfailed ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Status Ġcode Ġreplacement Ġfailed , Ġnew Ġvalue Ġis Ġnot Ġa Ġvalid ĠHTTP Ġstatus Ġline . ĠRequired Ġformat : Ġ'\\ d + \\ s + .* '. ĠGot : Ġ'$ replacement '", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠView Mode Ġ{ ĊĠĠĠ ĠVIEW _ MODE _ TIME LINE , ĊĠĠĠ ĠVIEW _ MODE _ LINK ED Ċ } Ċ Ċ enum Ġclass ĠConnection Mode Ġ{ ĊĠĠĠ ĠMODE _ CONNECTED , ĊĠĠĠ ĠMODE _ DIS CONNECTED Ċ }