package Ġcom . android . test able . camera Ċ Ċ import Ġandroid . content . Content Resolver Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Environment Ċ import Ġorg . apache . commons . io . IO Utils Ċ import Ġjava . io . File Ċ import Ġjava . util . concurrent . Executor Ċ Ċ class ĠProvider FileManager ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġfile Helper : ĠFile Helper , ĊĠĠĠ Ġprivate Ġval Ġcontent Resolver : ĠContent Resolver , ĊĠĠĠ Ġprivate Ġval Ġexecutor : ĠExecutor , ĊĠĠĠ Ġprivate Ġval Ġmedia Content Helper : ĠMedia Content Helper Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġgenerate Photo Uri ( time : ĠLong ): ĠFileInfo Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġ" img _$ time . jpg " ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . get External Files Dir ( file Helper . getP ictures Folder ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠFileInfo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Helper . get Uri FromFile ( file ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Helper . getP ictures Folder (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" image / jpeg " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgenerate Video Uri ( time : ĠLong ): ĠFileInfo Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġ" video _$ time . mp 4 " ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . get External Files Dir ( file Helper . get Videos Folder ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠFileInfo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Helper . get Uri FromFile ( file ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Helper . get Videos Folder (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" video / mp 4 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Image To Store ( fileInfo : ĠFileInfo ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġfile Info ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert To Store ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Info , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Content Helper . getImage Content Uri (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Content Helper . generate Image Content Values ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Video To Store ( fileInfo : ĠFileInfo ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġfile Info ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert To Store ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Info , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Content Helper . get Video Content Uri (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedia Content Helper . generate Video Content Values ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinsert To Store ( fileInfo : ĠFileInfo , Ġcontent Uri : ĠUri , Ġcontent Values : ĠContent Values ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexecutor . execute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinserted Uri Ġ= Ġcontent Resolver . insert ( content Uri , Ġcontent Values ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinserted Uri ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠinputStream Ġ= Ġcontent Resolver . open InputStream ( fileInfo . uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠoutputStream Ġ= Ġcontent Resolver . open OutputStream ( inserted Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIO Utils . copy ( inputStream , ĠoutputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }