package Ġtech . summer ly . stream cache Ċ Ċ import Ġandroid . os . Environment Ċ import Ġtech . summer ly . stream cache . utils . log Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġsummer Ġon Ġ 1 8 - 3 - 1 Ċ Ġ*/ Ċ object ĠCache Global Setting Ġ{ ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠCACHE _ FOLDER _ NAME Ġ= Ġ". Media Cache " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġthe Ġdir Ġto Ġcache Ġfiles ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar ĠCACHE _ PATH : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġmaximum Ġsize Ġthat Ġcan Ġbe Ġcached ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġdefault Ġis Ġ 8 0 0 MB ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar ĠCACHE _ SIZE : ĠLong Ġ= Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 Ġ* Ġ 8 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠCACHE _ PATH Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmusic Dir Ġ= ĠEnvironment . get External Storage Public Directory ( Environment . DIRECTORY _ M US IC ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Dir Ġ= ĠFile ( music Dir , ĠCACHE _ FOLDER _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Dir ( cacheDir )?. path ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSecurity Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Ġ{ Ġe . printStackTrace (); " init Ġcache Ġfolder Ġfailed " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// get Ġcache Ġdir Ġinternal ĊĠĠĠ Ġinternal Ġfun Ġget Cache Dir (): ĠFile ? Ġ= ĠCACHE _ PATH ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( it ) ĊĠĠĠĠĠĠĠ Ġcheck Dir ( file ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Dir ( dir : ĠFile ): ĠFile ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dir . isFile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdir . delete () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! dir . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdir . mkdir s () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( dir . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdir ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }