package Ġcom . w es ley don k . update . ui . internal . managers Ċ Ċ import Ġandroid . content . Context Ċ Ċ private Ġconst Ġval ĠDIRECTORY _ NAME Ġ= Ġ" Update " Ċ private Ġconst Ġval ĠFILE _ NAME _ FORMAT Ġ= Ġ" update -% s . apk " Ċ Ċ internal Ġinterface ĠFile Manager Ġ{ ĊĠĠĠ Ġfun Ġcreate File ( version : ĠString ): ĠString Ċ } Ċ Ċ internal Ġclass ĠFile ManagerImpl ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext Ċ ) Ġ: ĠFile Manager Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate File ( version : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdirectory Ġ= Ġcontext . get External Files Dir ( DIRECTORY _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException (" Directory Ġcannot Ġbe Ġnull ") ĊĠĠĠĠĠĠĠ Ġif Ġ(! directory . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirectory . mkdir s () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdirectory . list Files (). or Empty (). forEach Ġ{ Ġfile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . delete Re cursively () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= ĠFILE _ NAME _ FORMAT . format ( version ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ"$ directory /$ fileName " ĊĠĠĠ Ġ} Ċ } Ċ