package Ġcom . kernel . fin ch . core . manager Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġcom . kernel . fin ch . Fin ch Core Ċ import Ġcom . kernel . fin ch . core . presentation . gallery . Gallery Activity Ċ import Ġcom . kernel . fin ch . core . util . extension . record Screen With Media Projection Manager Ċ import Ġcom . kernel . fin ch . core . util . extension . take Screenshot With Drawing Cache Ċ import Ġcom . kernel . fin ch . core . util . extension . take Screenshot With Media Projection Manager Ċ import Ġcom . kernel . fin ch . core . util . perform On Hide Ċ Ċ internal Ġclass ĠScreen Capture Manager Ġ{ ĊĊĠĠĠ Ġvar Ġon Screen Capture Ready : Ġ(( Uri ?) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġcurrent Activity Ġget () Ġ= ĠFin ch Core . implementation . current Activity ĊĠĠĠ Ġprivate Ġval Ġbehavior Ġget () Ġ= ĠFin ch Core . implementation . configuration ĊĊĠĠĠ Ġfun Ġtake Screenshot ( callback : Ġ( Uri ?) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( on Screen Capture Ready Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( null ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Screen Capture Ready Ġ= Ġ{ Ġuri Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Screen Capture Ready Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Activity ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ behavior . image FileName Formatter ( System . currentTimeMillis ()) }$ IMAGE _ EXTENSION " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Screenshot With Media Projection Manager ( fileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Screenshot With Drawing Cache ( fileName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . LO L LI POP ) ĊĠĠĠ Ġfun Ġrecord Screen ( callback : Ġ( Uri ?) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( on Screen Capture Ready Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( null ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Screen Capture Ready Ġ= Ġ{ Ġuri Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Screen Capture Ready Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Activity ?. record Screen With Media Projection Manager ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbehavior . video FileName Formatter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} $ VIDEO _ EXTENSION " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġopen Gallery () Ġ= Ġperform On Hide Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Activity ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGallery Activity :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIMAGE _ EXTENSION Ġ= Ġ". png " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIMAGE _ TYPE Ġ= Ġ" image / png " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠV IDE O _ EXTENSION Ġ= Ġ". mp 4 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠV IDE O _ TYPE Ġ= Ġ" video / mp 4 " ĊĠĠĠ Ġ} Ċ } Ċ