package Ġde . d ome s _ m uc . printer app kotlin Ċ Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . FragmentManager Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . view . Gravity Compat Ċ import Ġde . d ome s _ m uc . printer app kotlin . devices . Devices Fragment Ċ import Ġde . d ome s _ m uc . printer app kotlin . devices . database . Database Controller Ċ import Ġde . d ome s _ m uc . printer app kotlin . devices . discovery . Initial Fragment Ċ import Ġde . d ome s _ m uc . printer app kotlin . devices . print view . G code Cache Ċ import Ġde . d ome s _ m uc . printer app kotlin . devices . print view . Print View Fragment Ċ import Ġde . d ome s _ m uc . printer app kotlin . history . History Drawer Adapter Ċ import Ġde . d ome s _ m uc . printer app kotlin . history . Swipe Dismiss ListView Touch Listener Ċ import Ġde . d ome s _ m uc . printer app kotlin . library . Library Controller Ċ import Ġde . d ome s _ m uc . printer app kotlin . library . Library Fragment Ċ import Ġde . d ome s _ m uc . printer app kotlin . library . detail . Detail View Fragment Ċ import Ġde . d ome s _ m uc . printer app kotlin . settings . Settings Fragment Ċ import Ġde . d ome s _ m uc . printer app kotlin . util . ui . Animation Helper Ċ import Ġde . d ome s _ m uc . printer app kotlin . viewer . Viewer Main Fragment Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . net . wifi . Wifi Manager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Strict Mode Ċ import Ġandroidx . local broadcast manager . content . Local Broadcast Manager Ċ import Ġandroidx . drawer layout . widget . Drawer Layout Ċ import Ġandroidx . appcompat . app . ActionBar Drawer Toggle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Adapter View Ċ import Ġandroid . widget . ListView Ċ import Ġandroid . widget . Tab Host Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġal berto - bae za Ġon Ġ 1 / 2 1 / 1 5 . Ċ Ġ*/ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ// List Ġof ĠF rag ments ĊĠĠĠ Ġprivate Ġvar Ġm Devices Fragment : ĠDevices Fragment ? Ġ= Ġnull Ġ// Devices Ġfragment Ġ@ static Ġfor Ġrefresh ĊĠĠĠ Ġprivate Ġvar Ġm Library Fragment : ĠLibrary Fragment ? Ġ= Ġnull Ġ// Storage Ġfragment ĊĠĠĠ Ġprivate Ġvar Ġm Viewer Fragment : ĠViewer Main Fragment ? Ġ= Ġnull Ġ// Print Ġpanel Ġfragment Ġ@ static Ġfor Ġmodel Ġload ĊĠĠĠ Ġprivate Ġvar Ġm Drawer List : ĠListView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Drawer Adapter : ĠHistory Drawer Adapter ? Ġ= Ġnull ĊĊĠĠĠ Ġ// notify ĠALL Ġadapters Ġevery Ġtime Ġa Ġnotification Ġis Ġreceived ĊĠĠĠ Ġprivate Ġval Ġm Adapter Notification Ġ= Ġobject Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext , Ġintent : ĠIntent ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠExtract Ġdata Ġincluded Ġin Ġthe ĠIntent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġintent . getString Extra (" message ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( message Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( message Ġ== Ġ" Devices ") Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Devices Fragment Ġ!= Ġnull ) Ġm Devices Fragment !!. notify Adapter () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Refresh Ġprint view Ġfragment Ġif Ġexists ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġm Manager . find Fragment By Tag ( List Content . ID _ PRINT VIEW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fragment Ġ!= Ġnull ) Ġ( fragment Ġas ĠPrint View Fragment ). refresh Data () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( message Ġ== Ġ" Profile ") Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Viewer Fragment Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Viewer Fragment !!. notify Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( message Ġ== Ġ" Files ") Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Library Fragment Ġ!= Ġnull ) Ġm Library Fragment !!. refresh Files () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* else Ġif Ġ( message . equals (" Notification ")){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlong Ġid Ġ= Ġintent . getLong Extra (" printer ", Ġ 0 ); ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager ( id ); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}*/ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ċ Close Ġapp Ġon Ġlocale Ġchange Ċ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġm Locale Change Ġ= Ġobject Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext , Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" OUT ", Ġ" Exit ing Ġapp ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . exit ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSince ĠAPI Ġlevel Ġ 1 1 , Ġthread Ġpolicy Ġhas Ġchanged Ġand Ġnow Ġdoes Ġnot Ġallow Ġnetwork Ġoperation Ġto ĊĠĠĠĠĠĠĠĠ Ġ* Ġbe Ġexecuted Ġon ĠUI Ġthread Ġ( Network On MainThread Exception ), Ġso Ġwe Ġhave Ġto Ġadd Ġthese Ġlines Ġto ĊĠĠĠĠĠĠĠĠ Ġ* Ġpermit Ġit . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġpolicy Ġ= ĠStrict Mode . Thread Policy . Builder (). permit All (). build () ĊĠĠĠĠĠĠĠ ĠStrict Mode . set Thread Policy ( policy ) ĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . main _ activity ) ĊĊĠĠĠĠĠĠĠ Ġm Tab Host Ġ= ĠfindViewById < View >( R . id . tab Host ) Ġas ĠTab Host ĊĊĊĠĠĠĠĠĠĠ Ġaction Bar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġaction Bar ?. set Home Button Enabled ( true ) ĊĊĠĠĠĠĠĠĠ Ġ// Initialize Ġvariables ĊĠĠĠĠĠĠĠ Ġm Manager Ġ= Ġsupport FragmentManager ĊĠĠĠĠĠĠĠ Ġm Dialog Ġ= ĠDialog Controller ( this ) ĊĊĠĠĠĠĠĠĠ Ġ// Initialize Ġfragments ĊĠĠĠĠĠĠĠ Ġm Devices Fragment Ġ= Ġsupport FragmentManager . find Fragment By Tag ( List Content . ID _ DEVICES ) Ġas ĠDevices Fragment ? ĊĠĠĠĠĠĠĠ Ġm Library Fragment Ġ= Ġsupport FragmentManager . find Fragment By Tag ( List Content . ID _ LIBRARY ) Ġas ĠLibrary Fragment ? ĊĠĠĠĠĠĠĠ Ġm Viewer Fragment Ġ= Ġsupport FragmentManager . find Fragment By Tag ( List Content . ID _ VIEW ER ) Ġas ĠViewer Main Fragment ? ĊĊĊĠĠĠĠĠĠĠ Ġinit Drawer () ĊĊĠĠĠĠĠĠĠ Ġ// ItemList Fragment . perform Click ( 0 ); ĊĊĠĠĠĠĠĠĠ Ġ// ĠRegister Ġm Message Receiver Ġto Ġreceive Ġmessages . ĊĠĠĠĠĠĠĠ ĠLocal Broadcast Manager . getInstance ( this ). register Receiver ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter Notification , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent Filter (" notify ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= ĠIntent Filter () ĊĠĠĠĠĠĠĠ Ġfilter . addAction ( Intent . ACTION _ LOCAL E _ CHANGED ) ĊĊĠĠĠĠĠĠĠ Ġthis . register Receiver ( m Locale Change , Ġfilter ) ĊĊĠĠĠĠĠĠĠ Ġm Manager . add On Back Stack Changed Listener Ġ{ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Init Ġg code Ġcache ĊĠĠĠĠĠĠĠ ĠG code Cache () ĊĊĠĠĠĠĠĠĠ Ġ// Set Ġtab Ġhost Ġfor Ġthe Ġview ĊĠĠĠĠĠĠĠ Ġset Tab Host () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Initialize Ġhistory Ġdrawer ĊĠĠĠ Ġprivate Ġfun Ġinit Drawer () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġm Drawer Layout Ġ= ĠfindViewById < View >( R . id . drawer _ layout ) Ġas ĠDraw er Layout ĊĠĠĠĠĠĠĠ Ġm Drawer Layout !!. set Drawer Shadow ( R . drawable . drawer _ shadow , ĠGr avity Compat . START ) ĊĊĠĠĠĠĠĠĠ Ġm Drawer Toggle Ġ= Ġobject Ġ: ĠAction Bar Drawer Toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġ/* Ġhost ĠActivity Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Layout , Ġ/* ĠDraw er Layout Ġobject Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . add , Ġ/* Ġ" open Ġdrawer " Ġdescription Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . cancel ĠĠĠĠĠĠĠĠ Ġ/* Ġ" close Ġdrawer " Ġdescription Ġ*/ ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĠCalled Ġwhen Ġa Ġdrawer Ġhas Ġset tled Ġin Ġa Ġcompletely Ġclosed Ġstate . Ġ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Drawer Closed ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Drawer Closed ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate Options Menu () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĠCalled Ġwhen Ġa Ġdrawer Ġhas Ġset tled Ġin Ġa Ġcompletely Ġopen Ġstate . Ġ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Drawer Opened ( drawer View : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Drawer Opened ( drawer View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate Options Menu () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Drawer Slide ( drawer View : ĠView , Ġslide Offset : ĠFloat ) Ġ{ ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( slide Offset . toDouble () Ġ== Ġ 1 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Adapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Drawer Slide ( drawer View , Ġslide Offset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġdrawer Ġtoggle Ġas Ġthe ĠDraw er Listener ĊĠĠĠĠĠĠĠ Ġm Drawer Toggle !!. is Drawer Indicator Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Drawer Layout !!. set Drawer Listener ( m Drawer Toggle ) ĊĊĊĊĠĠĠĠĠĠĠ Ġm Drawer List Ġ= ĠfindViewById < View >( R . id . left _ drawer ) Ġas ĠListView ĊĠĠĠĠĠĠĠ Ġm Drawer List !!. selector Ġ= Ġresources . get Drawable ( R . drawable . selectable _ rect _ background _ green ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdrawer List Empty View Ġ= ĠfindViewById < View >( R . id . history _ empty _ view ) ĊĠĠĠĠĠĠĠ Ġm Drawer List !!. empty View Ġ= Ġdrawer List Empty View ĊĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= Ġlayout Inflater ĊĠĠĠĠĠĠĠ Ġm Drawer List !!. add Header View ( in flater . inflate ( R . layout . history _ drawer _ header , Ġnull )) ĊĠĠĠĠĠĠĠ Ġm Drawer Adapter Ġ= ĠHistory Drawer Adapter ( this , ĠLibrary Controller . history List ) ĊĊĠĠĠĠĠĠĠ Ġm Drawer List !!. adapter Ġ= Ġm Drawer Adapter ĊĠĠĠĠĠĠĠ Ġm Drawer List !!. on ItemClickListener Ġ= ĠAdapter View . On ItemClickListener Ġ{ Ġ_, Ġview , Ġi , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Layout !!. close Draw ers () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Open File ( Library Controller . history List . get ( i Ġ- Ġ 1 ). path ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Drawer List !!. setOn Touch Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSw ipe Dismiss ListView Touch Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer List !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠSw ipe Dismiss ListView Touch Listener . Dismiss Callbacks Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcan Dismiss ( position : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Dismiss ( list View : ĠListView , Ġreverse Sorted Positions : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( position Ġin Ġreverse Sorted Positions ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ MainActivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . delete ) Ġ+ Ġ" Ġ" Ġ+ ĠLibrary Controller . history List . get ( position Ġ- Ġ 1 ). model , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Controller . remove From History ( Library Controller . history List . get ( position Ġ- Ġ 1 ). path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Adapter !!. removeItem ( position Ġ- Ġ 1 ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Post Create ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Post Create ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġm Drawer Toggle !!. sync State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Configuration Changed ( new Config : ĠConfiguration ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsuper . on Configuration Changed ( new Config ) ĊĠĠĠĠĠĠĠ Ġm Drawer Toggle !!. on Configuration Changed ( new Config ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Tab Host () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġm Tab Host !!. setup () ĊĊĠĠĠĠĠĠĠ Ġ// Models Ġtab ĊĠĠĠĠĠĠĠ Ġvar Ġspec : ĠTab Host . Tab Spec Ġ= Ġm Tab Host !!. new Tab Spec (" Library ") ĊĠĠĠĠĠĠĠ Ġspec . set Indicator ( get Tab Indicator ( resources . getString ( R . string . fragment _ models ))) ĊĠĠĠĠĠĠĠ Ġspec . setContent ( R . id . maint ab 1 ) ĊĠĠĠĠĠĠĠ Ġm Tab Host !!. add Tab ( spec ) ĊĊĠĠĠĠĠĠĠ Ġ// Print Ġpanel Ġtab ĊĠĠĠĠĠĠĠ Ġspec Ġ= Ġm Tab Host !!. new Tab Spec (" Panel ") ĊĠĠĠĠĠĠĠ Ġspec . set Indicator ( get Tab Indicator ( resources . getString ( R . string . fragment _ print ))) ĊĠĠĠĠĠĠĠ Ġspec . setContent ( R . id . maint ab 2 ) ĊĠĠĠĠĠĠĠ Ġm Tab Host !!. add Tab ( spec ) ĊĊĠĠĠĠĠĠĠ Ġ// Print Ġview Ġtab ĊĠĠĠĠĠĠĠ Ġspec Ġ= Ġm Tab Host !!. new Tab Spec (" Printer ") ĊĠĠĠĠĠĠĠ Ġspec . set Indicator ( get Tab Indicator ( resources . getString ( R . string . fragment _ devices ))) ĊĠĠĠĠĠĠĠ Ġspec . setContent ( R . id . maint ab 3 ) ĊĠĠĠĠĠĠĠ Ġm Tab Host !!. add Tab ( spec ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Database Controller . count () Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Tab Host !!. current Tab Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemSelected ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Tab Host !!. current Tab Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemSelected ( 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġm Tab Host !!. tab Widget . divider Drawable Ġ= ĠColor Drawable ( resources . getColor ( R . color . transparent )) ĊĊĠĠĠĠĠĠĠ Ġm Tab Host !!. setOn Tab Changed Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent View Ġ= Ġm Tab Host !!. current View ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation Helper . in From Right Animation ( current View ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemSelected ( m Tab Host !!. current Tab ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// get Support ActionBar (). set Display Home As Up Enabled ( false ); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// handle Ġaction Ġbar Ġmenu Ġopen ĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠPass Ġthe Ġevent Ġto ĠAction Bar Drawer Toggle , Ġif Ġit Ġreturns ĊĠĠĠĠĠĠĠ Ġ// Ġtrue , Ġthen Ġit Ġhas Ġhandled Ġthe Ġapp Ġicon Ġtouch Ġevent ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( m Drawer Toggle !!. on Options ItemSelected ( item )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġyour Ġother Ġaction Ġbar Ġitems ... ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġthe Ġcustom Ġview Ġof Ġthe Ġtab ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġtitle ĠTitle Ġof Ġthe Ġtab ĊĠĠĠĠ Ġ* Ġ@ return ĠCustom Ġview Ġof Ġa Ġtab Ġlayout ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Tab Indicator ( title : ĠString ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( application Context ). inflate ( R . layout . main _ activity _ tab _ layout , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġtv Ġ= Ġview . findViewById < View >( R . id . tab _ title _ text view ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġtv . text Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon ItemSelected ( id : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ!= Ġ 1 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewer Main Fragment . hide Action Mode Pop Up Window () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewer Main Fragment . hide Current Action Pop Up Window () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠLog . i (" OUT ", Ġ" Pressed Ġ$ id ") ĊĠĠĠĠĠĠĠ Ġ// start Ġtransaction ĊĠĠĠĠĠĠĠ Ġval Ġfragment Transaction Ġ= Ġm Manager . beginTransaction () ĊĊĊĠĠĠĠĠĠĠ Ġ// Pop Ġback stack Ġto Ġavoid Ġhaving Ġbad Ġreferences Ġwhen Ġcoming Ġfrom Ġa ĠDetail Ġview ĊĠĠĠĠĠĠĠ Ġm Manager . pop Back Stack () ĊĊĠĠĠĠĠĠĠ Ġ// If Ġthere Ġis Ġa Ġfragment Ġbeing Ġshown , Ġhide Ġit Ġto Ġshow Ġthe Ġnew Ġone ĊĠĠĠĠĠĠĠ ĠmCurrent ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . hide ( m Current !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNullPointerException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Select Ġfragment ĊĠĠĠĠĠĠĠ Ġwhen Ġ( id ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Print View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Check Ġif Ġwe Ġalready Ġcreated Ġthe ĠFragment Ġto Ġavoid Ġhaving Ġmultiple Ġinstances ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( support FragmentManager . find Fragment By Tag ( List Content . ID _ LIBRARY ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Library Fragment Ġ= ĠLibrary Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Library Fragment ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . add ( R . id . maint ab 1 , Ġit , ĠList Content . ID _ LIBRARY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Ġ= Ġm Library Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Print View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Detail View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Check Ġif Ġwe Ġalready Ġcreated Ġthe ĠFragment Ġto Ġavoid Ġhaving Ġmultiple Ġinstances ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( support FragmentManager . find Fragment By Tag ( List Content . ID _ VIEW ER ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Viewer Fragment Ġ= ĠViewer Main Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Viewer Fragment ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . add ( R . id . maint ab 2 , Ġit , ĠList Content . ID _ VIEW ER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Ġ= Ġm Viewer Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Detail View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Check Ġif Ġwe Ġalready Ġcreated Ġthe ĠFragment Ġto Ġavoid Ġhaving Ġmultiple Ġinstances ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( support FragmentManager . find Fragment By Tag ( List Content . ID _ DEVICES ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Devices Fragment Ġ= ĠDevices Fragment (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . add ( R . id . maint ab 3 , Ġit , ĠList Content . ID _ DEVICES ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Ġ= Ġm Devices Fragment ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Devices Count () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Viewer Fragment Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Current Ġ!== Ġm Viewer Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Make Ġthe Ġsurface Ġinvisible Ġto Ġavoid Ġframe Ġoverlapping ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Viewer Fragment !!. set Surface Visibility ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Make Ġthe Ġsurface Ġvisible Ġwhen Ġwe Ġpress ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Viewer Fragment !!. set Surface Visibility ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Show Ġcurrent Ġfragment ĊĠĠĠĠĠĠĠ ĠmCurrent ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" OUT ", Ġ" Changing Ġ" Ġ+ Ġit . tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . show ( it ). commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Toggle !!. is Drawer Indicator Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclose Settings () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Refresh Ġprint view Ġfragment Ġif Ġexists ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġm Manager . find Fragment By Tag ( List Content . ID _ SETTINGS ) ĊĠĠĠĠĠĠĠ Ġif Ġ( fragment Ġ!= Ġnull ) Ġrefresh Devices Count () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOverride Ġto Ġallow Ġback Ġnavigation Ġon Ġthe ĠStorage Ġfragment . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Update Ġthe Ġaction bar Ġto Ġshow Ġthe Ġup Ġcar at / aff ordance ĊĠĠĠĠĠĠĠ Ġ// get Support ActionBar (). set Display Home As Up Enabled ( false ); ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Current Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġm Manager . find Fragment By Tag ( List Content . ID _ SETTINGS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠDatabase Controller . retrieve Device List () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fragment Ġ!= Ġnull Ġ|| Ġc . count Ġ> Ġ 1 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Print View () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Manager . pop Back Stack Immediate ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Toggle !!. is Drawer Indicator Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Layout !!. set Drawer Lock Mode ( Drawer Layout . LOCK _ MODE _ UNLOCK ED ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Basic ally Ġrefresh Ġprinter Ġcount Ġif Ġall Ġwere Ġdeleted Ġin ĠSettings Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Current Ġ=== Ġm Devices Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Devices Count () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠUn register Ġsince Ġthe Ġactivity Ġis Ġnot Ġvisible ĊĠĠĠĠĠĠĠ ĠLocal Broadcast Manager . getInstance ( this ). unregister Receiver ( m Adapter Notification ) ĊĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠNotification Receiver . setForeground ( true ) ĊĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĊĊĠĠĠĠĠĠĠ ĠNotification Receiver . setForeground ( false ) ĊĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Class Ġspecific Ġvariables ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Manager : ĠFragment Manager Ġ// Fragment Ġmanager Ġto Ġhandle Ġtransitions Ġ@ static ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠmCurrent : ĠFragment ? Ġ= Ġnull Ġ// The Ġcurrent Ġshown Ġfragment Ġ@ static ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Dialog : ĠDialog Controller ? Ġ= Ġnull Ġ// Dialog Ġcontroller Ġ@ static ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Tab Host : ĠTab Host ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// Drawer ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Drawer Layout : ĠDraw er Layout ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Drawer Toggle : ĠAction Bar Drawer Toggle ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġperform Click ( i : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Tab Host !!. current Tab Ġ= Ġi ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġrefresh Devices Count () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent !!. set Menu Visibility ( false ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠDatabase Controller . retrieve Device List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c . count Ġ== Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Manager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Extra Fragment ( 2 , Ġ 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c . count Ġ== Ġ 1 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . moveTo First () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Extra ", Ġ" Opening Ġ" Ġ+ Ġc . getInt ( 0 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Extra Fragment ( 1 , Ġc . getInt ( 0 ). to Long ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Toggle !!. is Drawer Indicator Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Layout !!. set Drawer Lock Mode ( Drawer Layout . LOCK _ MODE _ UNLOCK ED ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent !!. set Menu Visibility ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Manager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Print View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Initial Fragment () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Controller . close Db () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠMethod Ġto Ġcreate Ġa Ġnew Ġtype Ġof Ġfragment Ġto Ġshow Ġspecial Ġdetailed Ġviews . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġtype Ġ ĠType Ġof Ġdetailed Ġview Ġ 0 : ĠDetail View Ġ 1 : ĠPrint View ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġid ĠExtra Ġargument Ġto Ġthe Ġfragment ĠDetail View : ĠFile Ġindex , ĠPrint View : ĠPrinter Ġid ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġshow Extra Fragment ( type : ĠInt , Ġid : ĠLong ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// New Ġtransaction ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Transaction Ġ= Ġm Manager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Transaction . set Custom Animations ( 0 , Ġ 0 , Ġ 0 , ĠR . anim ator . fragment _ slide _ out _ left ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Add Ġcurrent Ġfragment Ġto Ġthe Ġback stack Ġand Ġhide Ġit Ġ( will Ġshow Ġagain Ġlater ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Transaction . addTo Back Stack ( m Current !!. tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Transaction . hide ( m Current !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Print View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Manager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= ĠSettings Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Transaction . replace ( R . id . container _ layout , Ġsettings , ĠList Content . ID _ SETTINGS ). commit () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Layout !!. set Drawer Lock Mode ( Drawer Layout . LOCK _ MODE _ LOCK ED _ CLOSED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Toggle !!. is Drawer Indicator Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent !!. set Menu Visibility ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// New Ġdetail view Ġwith Ġthe Ġprinter Ġname Ġas Ġextra ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdetail p Ġ= ĠPrint View Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarg sp Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarg sp . put Long (" id ", Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetail p . arguments Ġ= Ġarg sp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Transaction . replace ( R . id . maint ab 3 , Ġdetail p Ġas ĠFragment , ĠList Content . ID _ PRINT VIEW ). commit () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Layout !!. set Drawer Lock Mode ( Drawer Layout . LOCK _ MODE _ LOCK ED _ CLOSED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Drawer Toggle !!. is Drawer Indicator Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinitial Ġ= ĠInitial Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Transaction . replace ( R . id . maint ab 3 , Ġinitial Ġas ĠFragment , ĠList Content . ID _ INITIAL ). commit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġclose Initial Fragment () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġm Manager . find Fragment By Tag ( List Content . ID _ INITIAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fragment Ġ!= Ġnull ) Ġm Manager . pop Back Stack () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġclose Print View () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Refresh Ġprint view Ġfragment Ġif Ġexists ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Manager . find Fragment By Tag ( List Content . ID _ PRINT VIEW )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠPrint View Fragment ). stop Camera Playback () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent ?. set Menu Visibility ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġclose Detail View () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Refresh Ġprint view Ġfragment Ġif Ġexists ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Manager ?. find Fragment By Tag ( List Content . ID _ DETAIL )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠDetail View Fragment ). remove Right Panel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Show Ġdialog ĊĠĠĠĠĠĠĠ Ġfun Ġshow Dialog ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Dialog ?. display Dialog ( msg ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSend Ġa Ġfile Ġto Ġthe ĠViewer Ġto Ġdisplay ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġpath ĠFile Ġpath ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġrequest Open File ( path : ĠString ?) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// This Ġmethod Ġwill Ġsimulate Ġa Ġclick Ġand Ġall Ġits Ġeffects ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperform Click ( 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Handler Ġwill Ġavoid Ġcrash ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= ĠHandler () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post Ġ{ Ġif Ġ( path Ġ!= Ġnull ) ĠViewer Main Fragment . open FileDialog ( path ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetCurrent Network ( context : ĠContext ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Wifi Manager Ġ= Ġcontext . getSystem Service ( Context . WIFI _ SERVICE ) Ġas ĠW ifi Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġm Wifi Manager . connection Info . ssid ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ