package Ġcom . id ap group . t nt . take Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . provider . Media Store Ċ import Ġandroidx . core . content . File Provider Ċ import Ġjava . io . File Ċ Ċ internal Ġfun Ġcapture ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġtype : ĠMediaType , ĊĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠ ĠstartActivity : Ġ( Intent , Ġrequest Code : ĠInt ) Ġ-> ĠUnit , ĊĠĠĠ Ġout File : ĠFile ? Ġ= Ġnull Ċ ): ĠFile Ġ{ ĊĠĠĠ Ġval Ġfile Ġ= Ġout File Ġ?: Ġcreate TempFile ( context , Ġtype ) ĊĠĠĠ Ġval Ġaction Ġ= Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMediaType . Image Ġ-> ĠMedia Store . ACTION _ IMAGE _ CAPTURE ĊĠĠĠĠĠĠĠ ĠMediaType . Video Ġ-> ĠMedia Store . ACTION _ VIDEO _ CAPTURE ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( action ) ĊĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMedia Store . EXTRA _ OUTPUT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . provider Uri ( context ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Media Store . EXTRA _ OUTPUT , ĠUri . from File ( file )) ĊĠĠĠ Ġ} ĊĠĠĠ ĠstartActivity ( intent . with Chooser (), Ġrequest Code ) ĊĠĠĠ Ġreturn Ġfile Ċ } Ċ Ċ internal Ġfun Ġpick ( ĊĠĠĠ ĠmimeType : ĠMime Type , ĊĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠ ĠstartActivity : Ġ( Intent , Ġrequest Code : ĠInt ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ P ICK ) ĊĠĠĠ Ġintent . type Ġ= ĠmimeType . value ĊĠĠĠ ĠstartActivity ( intent . with Chooser (), Ġrequest Code ) Ċ } Ċ Ċ private Ġfun ĠFile . provider Uri ( context : ĠContext ): ĠUri Ġ{ ĊĠĠĠ Ġval Ġpackage Info Ġ= Ġcontext . package Manager ĊĠĠĠĠĠĠĠ Ġ. get Package Info ( context . packageName , ĠPackage Manager . GET _ PRO VID ERS ) ĊĠĠĠ Ġval Ġprovider Ġ= Ġpackage Info . providers ĊĠĠĠĠĠĠĠ Ġ. first Ġ{ Ġit . authority . endsWith (". t nt . provider ") Ġ} ĊĠĠĠ Ġreturn ĠFile Provider . get Uri For File ( context , Ġprovider . authority , Ġthis ) Ċ } Ċ Ċ private Ġfun ĠIntent . with Chooser () Ġ= ĠIntent . create Chooser ( this , Ġ"")