package Ġde . d ome s _ m uc . printer app kotlin . library Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġde . d ome s _ m uc . printer app kotlin . Log Ċ import Ġde . d ome s _ m uc . printer app kotlin . R Ċ import Ġde . d ome s _ m uc . printer app kotlin . viewer . Data Storage Ċ import Ġde . d ome s _ m uc . printer app kotlin . viewer . G code File Ċ import Ġde . d ome s _ m uc . printer app kotlin . viewer . St l File Ċ import Ġde . d ome s _ m uc . printer app kotlin . viewer . Viewer Main Fragment Ċ import Ġde . d ome s _ m uc . printer app kotlin . viewer . Viewer Surface View Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . os . Handler Ċ import Ġandroidx . local broadcast manager . content . Local Broadcast Manager Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Frame Layout Ċ Ċ import Ġcom . af ol le st ad . material dialogs . Material Dialog Ċ import Ġcom . af ol le st ad . material dialogs . custom view . custom View Ċ Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . OutputStream Ċ import Ġjava . nio . ByteBuffer Ċ import Ġjava . nio . Short Buffer Ċ import Ġjava . util . ArrayList Ċ import Ġkotlin . experimental . and ĊĊ Ċ /** Ċ Ġ* Ċ Ġ* Ġthis Ġmethod Ġwill Ġcreate Ġa Ġnew Ġfolder Ġstructure Ġfrom Ġa Ġfile Ġin Ġour Ġsystem Ċ Ġ* Ġ@ author Ġal berto - bae za Ċ Ġ*/ Ċ class ĠLibrary Model Creation Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Alert : ĠMaterial Dialog ĊĠĠĠĠĠĠĠ Ġinternal Ġlateinit Ġvar Ġm Name : ĠString ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġm Snapshot Surface : ĠViewer Surface View ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġm Snapshot Layout : ĠFrame Layout ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Handler Ġ= ĠHandler () ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠWAIT _ TIME Ġ= Ġ 2 0 0 0 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar ĠmContext : ĠContext ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm File : ĠFile ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm File Queue : ĠArrayList < File >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Count Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġ// Static Ġmethod Ġto Ġcreate Ġa Ġfolder Ġstructure ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Folder Structure ( context : ĠContext ?, Ġsource : ĠFile ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Catch Ġnull Ġpointer Ġbecause Ġfile Ġbrowser Ġbuttons Ġaren 't Ġimplemented ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( source Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġsource . name . substring ( 0 , Ġsource . name . lastIndexOf ('. ')) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm File Ġ= Ġsource ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* File Ġroot Ġ= Ġnew ĠFile ( Library Controller . getParent Folder (). getAbsolutePath () Ġ+ Ċĉĉĉĉ ĉ "/ Files /" Ġ+ Ġm Name );*/ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot Ġ= ĠFile ( Library Controller . current Path . toString () Ġ+ Ġ"/" Ġ+ Ġm Name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Folder : ĠFile ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecondary Folder : ĠFile ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" OUT ", Ġ" File Ġ" Ġ+ Ġroot . getAbsolutePath () Ġ+ Ġ" Ġsource Ġ" Ġ+ Ġm File !!. name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// root Ġfolder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( root . mkdir s ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m File !!. name . contains (". stl ") Ġ|| Ġm File !!. name . contains (". STL ")) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Folder Ġ= ĠFile ( root . getAbsolutePath () Ġ+ Ġ"/ _ stl ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Folder Ġ= ĠFile ( root . getAbsolutePath () Ġ+ Ġ"/ _ g code ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain Folder Ġ= ĠFile ( root . getAbsolutePath () Ġ+ Ġ"/ _ g code ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecondary Folder Ġ= ĠFile ( root . getAbsolutePath () Ġ+ Ġ"/ _ stl ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// g code Ġfolder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( secondary Folder . mkdir ()) Ġ{ ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// stl Ġfolder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( main Folder . mkdir ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠFile ( main Folder . absolute Path Ġ+ Ġ"/" Ġ+ Ġm File !!. name ) ĊĊ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m File !!. exists ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Stream In Ġ= ĠFileInputStream ( m File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġout Ġ= ĠFileOutputStream ( target ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCopy Ġthe Ġbits Ġfrom Ġinst ream Ġto Ġout stream ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuf Ġ= ĠByteArray ( 1 0 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlen : ĠInt ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( file Stream In . read ( buf )?. let Ġ{ Ġout . write ( buf , Ġ 0 , Ġit ); Ġit Ġ} Ġ> Ġ 0 ); ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Stream In . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout . close () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Model ( mContext , Ġtarget . absolute Path ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠOpen Ġmodel Ġto Ġtake Ġscreenshot ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontext ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġpath ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġopen Model ( context : ĠContext ?, Ġpath : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgenerating Project Dialog Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . dialog _ loading _ project , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Snapshot Layout Ġ= Ġgenerating Project Dialog . findViewById < View >( R . id . frames napshot ) Ġas ĠFrame Layout ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" OUT ", Ġ" Opening Ġto Ġsnap Ġ$ path ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġcontext !!. getString ( R . string . generating _ project ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m File Queue Ġ!= Ġnull ) Ġcount Ġ+= Ġ" Ġ(" Ġ+ Ġ( m Count Ġ- Ġ( m File Queue !!. size Ġ- Ġ 1 )) Ġ+ Ġ"/" Ġ+ Ġm Count Ġ+ Ġ")" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Alert Ġ= ĠMaterial Dialog ( mContext !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( text Ġ= Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. custom View ( view Ġ= Ġgenerating Project Dialog , Ġscroll able Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. no Auto Dismiss () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// We Ġneed Ġthe Ġalert dialog Ġinstance Ġto Ġdismiss Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Alert . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠArrayList < Data Storage >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠData Storage () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( St l File . check FileSize ( file , ĠmContext !! )) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Library Controller . has Extension ( 0 , Ġpath )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSt l File . open St l File ( context , Ġfile , Ġdata , ĠViewer Main Fragment . DO _ SNAPSHOT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Library Controller . has Extension ( 1 , Ġpath )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG code File . open G code File ( context , Ġfile , Ġdata , ĠViewer Main Fragment . DO _ SNAPSHOT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Snapshot Surface Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewer Surface View ( context , Ġlist , ĠViewer Surface View . NORMAL , ĠViewer Main Fragment . DO _ SNAPSHOT , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( data ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Alert . dismiss () ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġmethod Ġis Ġcalled Ġfrom ĠST l File Ġor ĠG code File Ġwhen Ġdata Ġis Ġready Ġto Ġrender . ĠAdd Ġthe Ġview Ġto Ġthe Ġlayout . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġtake Snapshot () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Snapshot Surface . set Z Order On Top ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Snapshot Layout . addView ( m Snapshot Surface ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreates Ġthe Ġsnapshot Ġof Ġthe Ġmodel ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġsave Snapshot ( width : ĠInt , Ġheight : ĠInt , Ġbb : ĠByteBuffer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscreenshot Size Ġ= Ġwidth Ġ* Ġheight ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpixels Buffer : ĠInt Array ? Ġ= ĠInt Array ( screenshot Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbb . as Int Buffer (). get ( pixels Buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠBitmap . create Bitmap ( width , Ġheight , ĠBitmap . Config . RGB _ 5 6 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap . set Pixels ( pixels Buffer , Ġscreenshot Size Ġ- Ġwidth , Ġ- width , Ġ 0 , Ġ 0 , Ġwidth , Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpixels Buffer Ġ= Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Buffer Ġ= ĠShort Array ( screenshot Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠShort Buffer . wrap ( s Buffer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap . copy Pixels To Buffer ( sb ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// M aking Ġcreated Ġbitmap Ġ( from ĠOpenGL Ġpoints ) Ġcompatible Ġwith ĠAndroid Ġbitmap ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġscreenshot Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġs Buffer [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// FD 2 0 1 9 0 1 0 1 Ġ@ TODO ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Buffer [ i ] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( v Ġand Ġ 0 x 1 f ). toInt () Ġshl Ġ 1 1 Ġor Ġ( v Ġand Ġ 0 x 7 e 0 ). toInt () Ġor Ġ(( v . to Long () Ġand Ġ 0 xf 8 0 0 L ). toInt () Ġshr Ġ 1 1 )). to Short () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . rewind () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap . copy Pixels From Buffer ( sb ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf os Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFileOutputStream ( Library Controller . current Path . toString () Ġ+ Ġ"/" Ġ+ Ġm Name Ġ+ Ġ"/" Ġ+ Ġm Name Ġ+ Ġ". thumb ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap . compress ( Bitmap . Compress Format . JPEG , Ġ 1 0 0 , Ġf os ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf os . flush () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf os . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss Snapshot Alert () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDis miss Ġthe Ġloading Ġproject Ġdialog Ġafter Ġa Ġfew Ġseconds . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġdismiss Snapshot Alert () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Handler . post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Alert . dismiss () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Only Ġshow Ġdelete Ġdialog Ġif Ġthere Ġis Ġno Ġqueue Ġ// TODO ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m File Queue Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete FileDialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Queue () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent (" notify ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" message ", Ġ" Files ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Broadcast Manager . getInstance ( mContext !! ). send Broadcast ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĠWAIT _ TIME . to Long ()) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġdelete FileDialog () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa db Ġ= ĠAlertDialog . Builder ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa db . setTitle ( R . string . library _ delete _ dialog _ original ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa db . set Positive Button ( R . string . ok ) Ġ{ Ġdialog Interface , Ġi Ġ-> ĠLibrary Controller . delete Files ( m File !! ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa db . set Negative Button ( R . string . cancel , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa db . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠUse Ġan Ġintent Ġbecause Ġit 's Ġan Ġasynchronous Ġstatic Ġmethod Ġwithout Ġany Ġreference Ġ( yet ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent (" notify ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" message ", Ġ" Files ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Broadcast Manager . getInstance ( mContext !! ). send Broadcast ( intent ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/ ******************************************************** **** ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠJOB ĠQ UE UE ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġ// Send Ġa Ġfile Ġlist Ġto Ġenqueue Ġjobs ĊĠĠĠĠĠĠĠ Ġfun Ġenqueue Jobs ( context : ĠContext , Ġq : ĠArrayList < File >) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm File Queue Ġ= Ġq ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Count Ġ= Ġm File Queue !!. size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Folder Structure ( context , Ġm File Queue ! ![ 0 ]) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Check Ġif Ġthere Ġare Ġmore Ġfiles Ġin Ġthe Ġqueue ĊĠĠĠĠĠĠĠ Ġfun Ġcheck Queue () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m File Queue Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm File Queue !!. remove At ( 0 ) Ġ// Remove Ġlast Ġfile ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m File Queue !!. size Ġ> Ġ 0 ) Ġ{ Ġ// If Ġthere Ġare Ġmore ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Folder Structure ( mContext , Ġm File Queue ! ![ 0 ]) Ġ// Create Ġfolder Ġagain ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm File Queue Ġ= Ġnull Ġ// Remove Ġqueue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ