package Ġig rek . force aw aken . activity Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Configuration Ċ import Ġig rek . force aw aken . Main Application Ċ import Ġig rek . force aw aken . info . logger . LoggerFactory Ċ import Ġig rek . force aw aken . inject . Lazy Extractor Ċ import Ġig rek . force aw aken . inject . Lazy Inject Ċ import Ġig rek . force aw aken . inject . app Factory Ċ import Ġig rek . force aw aken . system . WindowManager Service Ċ Ċ class ĠActivity Controller ( ĊĠĠĠĠĠĠĠ Ġwindow Manager Service : ĠLazy Inject < WindowManager Service > Ġ= Ġapp Factory . window Manager Service , ĊĠĠĠĠĠĠĠ Ġactivity : ĠLazy Inject < Activity > Ġ= Ġapp Factory . activity , Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġwindow Manager Service Ġby ĠLazy Extractor ( window Manager Service ) ĊĠĠĠ Ġprivate Ġval Ġactivity Ġby ĠLazy Extractor ( activity ) ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . logger ĊĊĠĠĠ Ġfun Ġon Configuration Changed ( new Config : ĠConfiguration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġresize Ġevent ĊĠĠĠĠĠĠĠ Ġval Ġscreen Width Dp Ġ= Ġnew Config . screen Width Dp ĊĠĠĠĠĠĠĠ Ġval Ġscreen Height Dp Ġ= Ġnew Config . screen Height Dp ĊĠĠĠĠĠĠĠ Ġval Ġorientation Name Ġ= Ġget Orientation Name ( new Config . orientation ) ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Screen Ġresized : Ġ" Ġ+ Ġscreen Width Dp Ġ+ Ġ" dp Ġx Ġ" Ġ+ Ġscreen Height Dp Ġ+ Ġ" dp Ġ- Ġ" Ġ+ Ġorientation Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Orientation Name ( orientation : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( orientation Ġ== ĠConfiguration . OR IENTATION _ LAND SC APE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" land scape " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( orientation Ġ== ĠConfiguration . OR IENTATION _ POR TRA IT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" portrait " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġorientation . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquit () Ġ{ ĊĠĠĠĠĠĠĠ Ġwindow Manager Service . keep Screen On ( false ) ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Activity Ġ= Ġactivity ĊĠĠĠĠĠĠĠ Ġif Ġ( activity . application Ġis ĠMain Application ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Application Ġ= Ġactivity . application Ġas ĠMain Application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain Application . current Activity Listener . current Activity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Activity Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" current Ġactivity Ġset Ġto Ġ${ current Activity . java Class . simple Name }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlogger . debug (" closing Ġactivity Ġ${ current Activity . java Class . simple Name } ...") ĊĠĠĠĠĠĠĠ Ġcurrent Activity . finish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" starting Ġactivity ...") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" stopping Ġactivity ...") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" activity Ġhas Ġbeen Ġdestroyed ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġminimize () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstart Main Ġ= ĠIntent ( Intent . ACTION _ MAIN ) ĊĠĠĠĠĠĠĠ Ġstart Main . add Category ( Intent . CATEGORY _ HOME ) ĊĠĠĠĠĠĠĠ Ġstart Main . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠ Ġactivity . startActivity ( start Main ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ