package Ġcom . x raph . plugin . flutter _ unity _ widget Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . WindowManager Ċ import Ġcom . unity 3 d . player . Unity Player Activity Ċ import Ġjava . util . Objects Ċ Ċ class ĠOverride Unity Activity Ġ: ĠUnity Player Activity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm MainActivity Class : ĠClass < *> ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġthis . window . clear Flags ( WindowManager . LayoutParams . FLAG _ FULL SCREEN ) ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġintent ĊĠĠĠĠĠĠĠ Ġif Ġ( android . os . Build . VERSION . SDK _ INT Ġ>= Ġandroid . os . Build . VERSION _ CODES . KIT K AT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġun load Player () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Unity Player ?. unload () ĊĠĠĠĠĠĠĠ Ġshow MainActivity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġquit Player () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Unity Player ?. quit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow MainActivity () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , Ġm MainActivity Class ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" show Main ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġintent . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ RE ORDER _ TO _ FRONT Ġor ĠIntent . FLAG _ ACTIVITY _ SINGLE _ TOP ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Unity Player Un loaded () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow MainActivity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Low Memory () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Low Memory () ĊĠĠĠĠĠĠĠ Ġm Unity Player ?. low Memory () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon New Intent ( intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on New Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġif Ġ( android . os . Build . VERSION . SDK _ INT Ġ>= Ġandroid . os . Build . VERSION _ CODES . KIT K AT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Intent ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Intent ( intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġactivity Ġnot Ġfullscreen ĊĠĠĠĠĠĠĠ Ġif Ġ( android . os . Build . VERSION . SDK _ INT Ġ>= Ġandroid . os . Build . VERSION _ CODES . KIT K AT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġst Ġ= ĠObjects . requireNonNull ( intent . extras )?. get (" flutter Activity ") Ġas ĠClass < *> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm MainActivity Class Ġ= Ġst ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġactivity Ġnot Ġfullscreen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Objects . requireNonNull ( intent . extras )?. getBoolean (" fullscreen ") Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfullscreen Ġ= Ġintent . extras ?. getBoolean (" fullscreen ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! fullscreen !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . window . add Flags ( WindowManager . LayoutParams . FLAG _ FORCE _ NOT _ FULL SCREEN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . window . add Flags ( WindowManager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . window . clear Flags ( WindowManager . LayoutParams . FLAG _ FULL SCREEN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUn loads Ġun ity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Objects . requireNonNull ( intent . extras )?. containsKey (" unload ") Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Unity Player ?. unload () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . i ( LOG _ TAG , Ġ" on Back Pressed Ġcalled ") ĊĠĠĠĠĠĠĠ Ġthis . show MainActivity () ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Window Focus Changed ( has Focus : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Window Focus Changed ( has Focus ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġthis . m Unity Player ?. pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġthis . m Unity Player ?. resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġinstance Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġinstance : ĠOverride Unity Activity ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġinternal Ġval ĠLOG _ TAG Ġ= Ġ" Override Unity Activity " ĊĠĠĠ Ġ} Ċ }