package Ġcom . ja ver na ut . what the codec . presentation . root . view model Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġcom . ja ver na ut . what the codec . domain . Media File Ċ import Ġcom . ja ver na ut . what the codec . domain . Media File Builder Ċ import Ġcom . ja ver na ut . what the codec . util . Path Util Ċ import Ġjava . io . FileNotFoundException Ċ Ċ class ĠMedia File Provider Impl ( context : ĠContext ) Ġ: ĠMedia File Provider Ġ{ ĊĠĠĠ Ġprivate Ġval Ġapp Context Ġ= Ġcontext . application Context ĊĊĠĠĠ Ġoverride Ġfun Ġobtain Media File ( argument : ĠMedia File Argument ): ĠMedia File ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġandroid Uri Ġ= ĠUri . parse ( argument . uri ) ĊĠĠĠĠĠĠĠ Ġvar Ġconfig : ĠMedia File ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠFirst , Ġtry Ġget Ġa Ġfile :// Ġpath ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠPath Util . getPath ( app Context , Ġandroid Uri ) ĊĠĠĠĠĠĠĠ Ġif Ġ( path Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMedia File Builder ( argument . type ). from ( path ). create () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSecond , Ġtry Ġget Ġa ĠFile Descriptor . ĊĠĠĠĠĠĠĠ Ġif Ġ( config Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescriptor Ġ= Ġapp Context . content Resolver . open FileDescriptor ( android Uri , Ġ" r ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( descriptor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMedia File Builder ( argument . type ). from ( descriptor ). create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠFileNotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġconfig ĊĠĠĠ Ġ} Ċ Ċ } Ċ