package Ġorg . k ore ader . launcher Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Native Activity Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . PixelFormat Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os .* Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . util . Log Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġorg . k ore ader . launcher . device . Device Ċ import Ġorg . k ore ader . launcher . dialog . Light Dialog Ċ import Ġorg . k ore ader . launcher . extensions .* Ċ import Ġjava . io . File Ċ import Ġjava . util . Locale Ċ import Ġjava . util . concurrent . Count DownLatch Ċ Ċ class ĠMainActivity Ġ: ĠNative Activity (), ĠLua Interface , ĊĠĠĠ ĠActivity Compat . On Request Permissions Result Callback Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġtag Ġ= Ġthis :: class . java . simple Name ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġassets : ĠAssets ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdevice : ĠDevice ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġevent : ĠEvent Receiver ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtimeout : ĠTimeout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġupdater : ĠA pk Updater ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlight Dialog : ĠLight Dialog ĊĊĠĠĠ Ġprivate Ġvar Ġis Res umed Ġ= Ġfalse ĊĊĠĠĠ Ġ// ĠPath Ġof Ġlast Ġfile Ġimported ĊĠĠĠ Ġprivate Ġvar Ġlast Imported Path : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠDevice Ġcut out Ġ- Ġonly Ġused Ġon ĠAPI Ġ 2 8 + ĊĠĠĠ Ġprivate Ġvar Ġtop Inset Height : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġ// ĠFull screen Ġ- Ġonly Ġused Ġon ĠAPI Ġlevels Ġ 1 6 - 1 8 ĊĠĠĠ Ġprivate Ġvar Ġfullscreen : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġ// ĠSpl ash screen Ġis Ġactive ĊĠĠĠ Ġprivate Ġvar Ġsplash Screen : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġ// Ġsurface Ġused Ġon Ġdevices Ġthat Ġneed Ġa Ġview ĊĠĠĠ Ġprivate Ġvar Ġview : ĠNative Surface View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġclass ĠNative Surface View ( context : ĠContext ): ĠSurface View ( context ), ĊĠĠĠĠĠĠĠ ĠSurface Holder . Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ Ġholder . add Callback ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsurface Created ( holder : ĠSurface Holder ) Ġ{ Ġset Will Not Draw ( false ) Ġ} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsurface Changed ( holder : ĠSurface Holder , Ġformat : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsurface Destroyed ( holder : ĠSurface Holder ) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠHardware Ġorientation Ġfor Ġthis Ġdevice Ġ( usually Ġmatch Ġandroid Ġboot Ġlogo ) ĊĠĠĠ Ġprivate Ġvar Ġscreen Is Land scape : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG _ SURFACE Ġ= Ġ" Surface " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠM AND AT ORY _ PERMISSION S _ ID Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠACTION _ SA F _ FILE P ICK ER _ ID Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠB ATTER Y _ FILTER Ġ= ĠIntent Filter ( Intent . ACTION _ B ATTER Y _ CHANGED ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġpixel Format Name ( format : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( format ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPixel Format . OP A QUE Ġ-> Ġ" OP A QUE " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPixel Format . RGBA _ 1 0 1 0 1 0 2 Ġ-> Ġ" RGBA _ 1 0 1 0 1 0 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPixel Format . RGBA _ 8 8 8 8 Ġ-> Ġ" RGBA _ 8 8 8 8 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPixel Format . RGBA _ F 1 6 Ġ-> Ġ" RGBA _ F 1 6 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPixel Format . RGB X _ 8 8 8 8 Ġ-> Ġ" RGB X _ 8 8 8 8 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPixel Format . RGB _ 8 8 8 Ġ-> Ġ" RGB _ 8 8 8 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPixel Format . RGB _ 5 6 5 Ġ-> Ġ" RGB _ 5 6 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPixel Format . TRANSL UC ENT Ġ-> Ġ" TRANSL UC ENT " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPixel Format . TRANSP ARENT Ġ-> Ġ" TRANSP ARENT " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠString . format ( Locale . US , Ġ" Unknown : Ġ% d ", Ġformat ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem . load Library (" lu aj it ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ------------------------------------------------ --------------- ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Ġcallbacks ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ------------------------------------------------ -------------- */ ĊĊĠĠĠ Ġ/* ĠCalled Ġwhen Ġthe Ġactivity Ġis Ġfirst Ġcreated . Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġassets Ġ= ĠAssets () ĊĠĠĠĠĠĠĠ Ġdevice Ġ= ĠDevice ( this ) ĊĠĠĠĠĠĠĠ Ġtimeout Ġ= ĠTimeout () ĊĠĠĠĠĠĠĠ Ġevent Ġ= ĠEvent Receiver () ĊĠĠĠĠĠĠĠ Ġupdater Ġ= ĠA pk Updater () ĊĠĠĠĠĠĠĠ Ġlight Dialog Ġ= ĠLight Dialog () ĊĊĠĠĠĠĠĠĠ Ġset Theme ( R . style . Fullscreen ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWindow Ġbackground Ġmust Ġbe Ġblack Ġfor Ġvertical Ġand Ġhorizontal Ġlines Ġto Ġbe Ġvisible ĊĠĠĠĠĠĠĠ Ġwindow . setBackground Drawable Resource ( android . R . color . black ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsurface Kind : ĠString Ġ= Ġif Ġ( device . needs View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= ĠNative Surface View ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . take Surface ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. holder ?. add Callback ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetContentView ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Surface View " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Native ĠContent " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLog . v ( TAG _ SURFACE , Ġ" Using Ġ$ surface Kind Ġimplementation ") ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠ Ġscreen Is Land scape Ġ= Ġwindow Manager . default Display . width Ġ> Ġwindow Manager . default Display . height ĊĊĠĠĠĠĠĠĠ ĠLog . v ( tag , ĠString . format ( Locale . US , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" native Ġorientation : Ġ% s ", Ġif Ġ( this . screen Is Land scape ) Ġ" land scape " Ġelse Ġ" portrait ")) ĊĊĠĠĠĠĠĠĠ Ġregister Receiver ( event , Ġevent . filter ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! has Mandatory Permissions ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Mandatory Permissions () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCalled Ġwhen Ġthe Ġactivity Ġhas Ġbecome Ġvisible . Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġdevice . ep d . resume () ĊĠĠĠĠĠĠĠ Ġtimeout . on Resume ( this ) ĊĠĠĠĠĠĠĠ Ġis Res umed Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCalled Ġwhen Ġanother Ġactivity Ġis Ġtaking Ġfocus . Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġdevice . ep d . pause () ĊĠĠĠĠĠĠĠ Ġtimeout . on Pause ( this ) ĊĠĠĠĠĠĠĠ Ġis Res umed Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġintent Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsurface Created ( holder : ĠSurface Holder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . surface Created ( holder ) ĊĠĠĠĠĠĠĠ Ġdraw Splash Screen ( holder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsurface Changed ( holder : ĠSurface Holder , Ġformat : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . v ( TAG _ SURFACE , ĠString . format ( Locale . US , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" surface Ġchanged Ġ{\ n Ġ Ġwidth : Ġ Ġ% d \ n Ġ Ġheight : Ġ% d \ n Ġformat : Ġ% s \ n }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth , Ġheight , Ġpixel Format Name ( format )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġsuper . surface Changed ( holder , Ġformat , Ġwidth , Ġheight ) ĊĠĠĠĠĠĠĠ Ġdraw Splash Screen ( holder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached To Window () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG _ SURFACE , Ġ" on Attached To Window () ") ĊĠĠĠĠĠĠĠ Ġsuper . on Attached To Window () ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . P ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcut : ĠDisplay Cut out ? Ġ= Ġwindow . decor View . root Window Insets . display Cut out ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cut Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcut Pixels Ġ= Ġcut . safe Inset Top ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( top Inset Height Ġ!= Ġcut Pixels ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . v ( TAG _ SURFACE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" top Ġ$ cut Pixels Ġpixels Ġare Ġnot Ġavailable , Ġreason : Ġwindow Ġinset ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Inset Height Ġ= Ġcut Pixels ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCalled Ġjust Ġbefore Ġthe Ġactivity Ġis Ġres umed Ġby Ġan Ġintent Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon New Intent ( intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscheme Ġ= Ġintent . scheme ĊĠĠĠĠĠĠĠ ĠLog . d ( tag , Ġ" on New Intent (): Ġ$ scheme ") ĊĠĠĠĠĠĠĠ Ġsuper . on New Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġset Intent ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCalled Ġon Ġpermission Ġresult Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĊĠĠĠĠĠĠĠ ĠArray < String >, Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠM AND AT ORY _ PERMISSION S _ ID ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġpermissions . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grant Results [ i ] Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( tag , Ġ" mandatory Ġpermission Ġrejected : Ġ${ permissions [ i ] }. ĠBy e !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġresources . getString ( R . string . error _ no _ permissions ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCalled Ġon Ġactivity Ġresult , Ġavailable Ġfrom ĠKit K at Ġon wards Ġ*/ ĊĠĠĠ Ġ@ Target Api ( 1 9 ) ĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġresult Data : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠACTION _ SA F _ FILE P ICK ER _ ID Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimport Path Ġ= Ġlast Imported Path Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Data ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclip Data Ġ= Ġit . clip Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( clip Data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġclip Data . item Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġclip Data . getItem At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath . uri . to File ( this , Ġimport Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġresult Data . data ?. to File ( this , Ġimport Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCalled Ġwhen Ġthe Ġactivity Ġfocus Ġchanges Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Window Focus Changed ( has Focus : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Window Focus Changed ( has Focus ) ĊĠĠĠĠĠĠĠ Ġif Ġ( has Focus ) Ġset Fullscreen Layout () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCalled Ġwhen Ġthe Ġactivity Ġis Ġgoing Ġto Ġbe Ġdestroyed Ġ*/ ĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . v ( tag , Ġ" on Destroy () ") ĊĠĠĠĠĠĠĠ Ġunregister Receiver ( event ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ------------------------------------------------ --------------- ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnative Ġcallbacks ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ------------------------------------------------ -------------- */ ĊĊĠĠĠ Ġ/* ĠCalled Ġwhen Ġthe Ġmain Ġthread Ġis Ġabout Ġto Ġexit Ġbecause Ġof Ġan Ġerror Ġ*/ ĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġfun Ġon Native Crash () Ġ{ ĊĠĠĠĠĠĠĠ ĠMain App . crash Report ( application Context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġfun Ġhas Required Permissions (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhas Mandatory Permissions () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ------------------------------------------------ --------------- ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġmethods Ġused Ġby Ġlua / JNI ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ------------------------------------------------ -------------- */ ĊĊĠĠĠ Ġ@ Suppress (" New Api ") ĊĠĠĠ Ġoverride Ġfun Ġcan Ignore Battery Optim izations (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Main App . is At Least Api ( Build . VERSION _ CODES . M )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpm Ġ= Ġapplication Context . getSystem Service ( Context . POWER _ SERVICE ) Ġas ĠPower Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpm . is Ign oring Battery Optim izations ( packageName ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" New Api ") ĊĠĠĠ Ġoverride Ġfun Ġcan Write System Settings (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Main App . is At Least Api ( Build . VERSION _ CODES . M )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings . System . can Write ( this ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdict Lookup ( text : ĠString ?, Ġaction : ĠString ?, Ġnullable Package : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtext ?. let Ġ{ Ġlookup Text Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ?. let Ġ{ Ġlookup Action Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( lookup Action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" a ard 2 " Ġ-> Ġa ard Lookup ( lookup Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" col ord ict " Ġ-> Ġcol ord ict Lookup ( lookup Text , Ġnullable Package ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" quick dic " Ġ-> Ġquick dic Lookup ( lookup Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" search " Ġ-> Ġsearch Text ( lookup Text , Ġnullable Package ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" send " Ġ-> Ġsend Text ( lookup Text , Ġnullable Package ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" text " Ġ-> Ġprocess Text ( lookup Text , Ġnullable Package ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠLog . w ( tag , Ġ" Unsupported Ġaction Ġ$ lookup Action ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: ĠLog . e ( tag , Ġ" invalid Ġlookup : Ġno Ġaction ") ĊĠĠĠĠĠĠĠ Ġ} Ġ?: ĠLog . e ( tag , Ġ" invalid Ġlookup : Ġno Ġtext ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdownload ( url : ĠString , Ġname : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġupdater . download ( this , Ġurl , Ġname ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdump Logs () Ġ{ ĊĠĠĠĠĠĠĠ ĠMain App . dump Log cat () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġe ink Update ( mode : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġview Ġ?: Ġwindow . decor View . findViewById < View >( android . R . id . content ) ĊĠĠĠĠĠĠĠ Ġval Ġmode Name Ġ= Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ" EP D _ FULL " ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ" EP D _ PART " ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ" EP D _ A 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ" EP D _ AUTO " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" invalid " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( mode Name Ġ!= Ġ" invalid ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . v ( tag , ĠString . format ( Locale . US , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" request ing Ġe pd Ġupdate , Ġtype : Ġ% s ", Ġmode Name )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevice . ep d . set E pd Mode ( root View , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 , Ġmode Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġe ink Update ( mode : ĠInt , Ġdelay : ĠLong , Ġx : ĠInt , Ġy : ĠInt , Ġwidth : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġview Ġ?: Ġwindow . decor View . findViewById < View >( android . R . id . content ) ĊĠĠĠĠĠĠĠ ĠLog . v ( tag , ĠString . format ( Locale . US , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" request ing Ġe pd Ġupdate , Ġmode :% d , Ġdelay :% d , Ġ[ x :% d , Ġy :% d , Ġw :% d , Ġh :% d ]", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmode , Ġdelay , Ġx , Ġy , Ġwidth , Ġheight )) ĊĊĠĠĠĠĠĠĠ Ġdevice . ep d . set E pd Mode ( root View , Ġmode , Ġdelay , Ġx , Ġy , Ġwidth , Ġheight , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġenable Front light Switch (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . lights . enable Front light Switch ( this ) Ġ== Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġextract Assets (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġok Ġ= Ġassets . extract ( this ) ĊĠĠĠĠĠĠĠ Ġsplash Screen Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġok ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Battery Level (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Battery State ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Clipboard Text (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcd Ġ= ĠCount DownLatch ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠBox < String >() ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġget System Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclip Data : ĠClip Data ? Ġ= Ġclipboard . primary Clip ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclip Data ?. getItem At ( 0 )?. text ?. toString ()?. trim () Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcd . count Down () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcd . await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . value Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget E ink Platform (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . e ink Platform ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget External Path (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMain App . storage _ path ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget External Sd Path (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Sd card Path () Ġ?: Ġ" null " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget FilePath From Intent (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġintent ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . action Ġ== ĠIntent . ACTION _ VIEW ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . data ?. absolute Path ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Flavor (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMain App . flavor ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetLast Imported Path (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= Ġlast Imported Path ĊĠĠĠĠĠĠĠ Ġlast Imported Path Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġcurrent ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Light Dialog State (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlight Dialog . state ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMain App . name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Network Info (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnetwork Info () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Platform Name (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġplatform ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Product (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . product ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Screen Available Height (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Available Height () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Screen Available Width (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Available Width () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Screen Brightness (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . lights . getB rightness ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Screen Height (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . P ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġneed Ġto Ġhandle Ġthe Ġnot ch Ġin ĠPor trait ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNOTE : Ġget Screen Available Height Ġdoes Ġit Ġautomatically , Ġbut Ġit Ġalso Ġexclude s Ġthe Ġnav Ġbar , Ġwhen Ġthere 's Ġone Ġ: / ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( get Orientation Compat ( screen Is Land scape ). and ( 1 ) Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġget Screen Orientation Ġreturns ĠLinux FB Ġrotation Ġconstants , ĠPor trait Ġrot ations Ġare Ġalways Ġeven ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Height () Ġ- Ġtop Inset Height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Height () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Height () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Screen Max Brightness (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . lights . getMax Brightness () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Screen Min Brightness (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . lights . getMin Brightness () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Screen Max W arm th (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . lights . getMax W arm th () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Screen Min W arm th (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . lights . getMin W arm th () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Screen Orientation (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Orientation Compat ( screen Is Land scape ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Screen W arm th (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . lights . get W arm th ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Screen Width (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . P ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġneed Ġto Ġhandle Ġthe Ġnot ch Ġin ĠLand scape ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNOTE : Ġget Screen Available Width Ġdoes Ġit Ġautomatically , Ġbut Ġit Ġalso Ġexclude s Ġthe Ġnav Ġbar , Ġwhen Ġthere 's Ġone Ġ: / ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( get Orientation Compat ( screen Is Land scape ). and ( 1 ) Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġget Screen Orientation Ġreturns ĠLinux FB Ġrotation Ġconstants , ĠLand scape Ġrot ations Ġare Ġalways Ġodd ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Width () Ġ- Ġtop Inset Height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Width () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Width () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget StatusBar Height (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Bar Height () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Version (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBuild . VERSION . RELEASE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Broken Lifecycle (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . bug Lifecycle ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Clipboard Text (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġget System Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠĠĠ Ġreturn Ġclipboard . primary Clip ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( it . item Count Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ?: Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Lights (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . has Lights ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Native Rotation (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( platform Ġ== Ġ" android ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . KIT K AT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ!( device . bug Rotation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas OTA Updates (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( platform ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" chrome " Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠMain App . has _ ota _ updates ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Runtime Changes (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMain App . supports _ runtime _ changes ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinstall A pk () Ġ{ ĊĠĠĠĠĠĠĠ Ġupdater . install ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Ch arging (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( get Battery State ( false ) Ġ== Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Chrome OS (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( platform ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" chrome " Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Debug gable (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMain App . is _ debug ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis E ink (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . has E ink Support ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis E ink Full (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . has Full E ink Support ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Fullscreen (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ== ĠBuild . VERSION _ CODES . J EL LY _ BE AN _ MR 2 Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBuild . VERSION . SDK _ INT Ġ== ĠBuild . VERSION _ CODES . J EL LY _ BE AN _ MR 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfullscreen ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Build . VERSION . SDK _ INT Ġ<= ĠBuild . VERSION _ CODES . J EL LY _ BE AN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Fullscreen Deprecated () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Package Enabled ( pkg : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpm Ġ= Ġpackage Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpm . get Package Info ( pkg , ĠPackage Manager . GET _ ACTIV ITIES ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenabled Ġ= Ġpm . getApplication Info ( pkg , Ġ 0 ). enabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenabled ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Sd Card Path ") ĊĠĠĠ Ġoverride Ġfun Ġis Path Inside Sandbox ( path : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath . startsWith ("/ sd card ") Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath . startsWith ( Main App . storage _ path ) Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Activity Res umed (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Res umed ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Tv (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( platform ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" android _ tv " Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis W arm th Device (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . lights . has W arm th () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġneeds Wake locks (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdevice . needs Wake locks ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen Link ( url : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwebpage Ġ= ĠUri . parse ( url ) ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW , Ġwebpage ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen Wifi Settings () Ġ{ ĊĠĠĠĠĠĠĠ Ġopen Wifi () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġperform H aptic Feedback ( constant : ĠInt , Ġforce : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġ= Ġview Ġ?: Ġwindow . decor View . findViewById < View >( android . R . id . content ) ĊĠĠĠĠĠĠĠ Ġh aptic Feedback ( constant , Ġforce Ġ> Ġ 0 , Ġroot View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" New Api ") ĊĠĠĠ Ġoverride Ġfun Ġrequest Ignore Battery Optim izations ( ration ale : ĠString , Ġok Button : ĠString , Ġcancel Button : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Main App . is At Least Api ( Build . VERSION _ CODES . M )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Settings . ACTION _ IGNORE _ B ATTER Y _ OPTIMI Z ATION _ SETTINGS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Special Permission ( intent , Ġr ationale , Ġok Button , Ġcancel Button ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" New Api ") ĊĠĠĠ Ġoverride Ġfun Ġrequest Write System Settings ( ration ale : ĠString , Ġok Button : ĠString , Ġcancel Button : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Main App . is At Least Api ( Build . VERSION _ CODES . M )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Settings . ACTION _ MANAGE _ WRITE _ SETTINGS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Special Permission ( intent , Ġr ationale , Ġok Button , Ġcancel Button ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsaf File Picker ( path : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġlast Imported Path Ġ= Ġpath ĊĠĠĠĠĠĠĠ Ġreturn Ġpath ?. let Ġ{ Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Picker ( ACTION _ SA F _ FILE P ICK ER _ ID ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsend Text ( text : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Text ( it , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Clipboard Text ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġget System Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclipboard . set Primary Clip ( Clip Data . new Plain Text (" KO Reader _ clipboard ", Ġtext )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Fullscreen ( enabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ== ĠBuild . VERSION _ CODES . J EL LY _ BE AN _ MR 2 Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBuild . VERSION . SDK _ INT Ġ== ĠBuild . VERSION _ CODES . J EL LY _ BE AN _ MR 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfullscreen Ġ= Ġenabled ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Build . VERSION . SDK _ INT Ġ<= ĠBuild . VERSION _ CODES . J EL LY _ BE AN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Fullscreen Deprecated ( enabled ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Ignore Input ( enabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ NOT _ TO UCH ABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . clear Flags ( WindowManager . LayoutParams . FLAG _ NOT _ TO UCH ABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Screen Brightness ( brightness : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdevice . lights . set Brightness ( this , Ġbrightness ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Screen Off Timeout ( ms : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtimeout . setTimeout ( this , Ġms ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Screen Orientation ( orientation : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Orientation Compat ( screen Is Land scape , Ġorientation ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Screen W arm th ( warm th : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdevice . lights . set W arm th ( this , Ġwarm th ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Front light Dialog ( title : ĠString , Ġdim : ĠString , Ġwarm th : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġok Button : ĠString , Ġcancel Button : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlight Dialog . show ( this , Ġdevice . lights , Ġtitle , Ġdim , Ġwarm th , Ġok Button , Ġcancel Button ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Toast ( message : ĠString , Ġlong Timeout : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġduration Ġ= Ġif Ġ( long Timeout ) ĠToast . LENGTH _ LONG Ġelse ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġmessage , Ġduration ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Test Activity () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠTest Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . add Flags ( Intent . FLAG _ ACTIVITY _ NO _ ANIM ATION ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġunt ar ( filePath : ĠString , Ġoutput Path : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFile ( filePath ). un compress ( output Path ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ------------------------------------------------ --------------- ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġmethods ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ------------------------------------------------ -------------- */ ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Splash Screen ( holder : ĠSurface Holder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( splash Screen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġdraw Ġsplash Ġscreen Ġto Ġsurface Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . lock Canvas ()?. let Ġ{ Ġcanvas Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( this , ĠR . drawable . splash _ icon )?. let Ġ{ Ġsplash Drawable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsplash Drawable . setBounds ( 0 , Ġ 0 , Ġcanvas . width , Ġcanvas . height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsplash Drawable . draw ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( tag , Ġ" Failed Ġto Ġdraw Ġsplash Ġscreen :\ n $ e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . unlock Canvas And Post ( canvas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Battery State ( is Percent : ĠBoolean ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġapplication Context . register Receiver ( null , ĠB ATTER Y _ FILTER ) ĊĠĠĠĠĠĠĠ Ġif Ġ( intent Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlevel Ġ= Ġintent . getInt Extra ( Battery Manager . EXTRA _ LEVEL , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġintent . getInt Extra ( Battery Manager . EXTRA _ SCALE , Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplug ged Ġ= Ġintent . getInt Extra ( Battery Manager . EXTRA _ PLU GG ED , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpercent Ġ= Ġlevel Ġ* Ġ 1 0 0 Ġ/ Ġscale ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( is Percent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpercent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( plug ged Ġ== ĠB attery Manager . B ATTER Y _ PLU GG ED _ AC Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplug ged Ġ== ĠB attery Manager . B ATTER Y _ PLU GG ED _ USB ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( percent Ġ!= Ġ 1 0 0 ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" New Api ") ĊĠĠĠ Ġprivate Ġfun Ġhas Mandatory Permissions (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Main App . is At Least Api ( Build . VERSION _ CODES . R )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . is External Storage Manager () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( Context Compat . check Self Permission ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ) Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" New Api ") ĊĠĠĠ Ġprivate Ġfun Ġrequest Mandatory Permissions () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Main App . is At Least Api ( Build . VERSION _ CODES . R )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= ĠSettings . ACTION _ MANAGE _ APP _ ALL _ FILES _ ACCESS _ PERMISSION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= ĠUri . from Parts (" package ", ĠpackageName , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Special Permission ( intent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . permission _ manage _ storage ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( Manifest . permission . WRITE _ EXTERNAL _ STORAGE ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM AND AT ORY _ PERMISSION S _ ID ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠ Ġprivate Ġfun Ġset Fullscreen Layout () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdecor View Ġ= Ġwindow . decor View ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . KIT K AT Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ FULL SCREEN Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ HIDE _ NAV IG ATION Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ IM MER SIVE _ STICK Y Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ HIDE _ NAV IG ATION Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . J EL LY _ BE AN Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ FULL SCREEN Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . SYSTEM _ UI _ FLAG _ LOW _ PROFILE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġdecor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ LOW _ PROFILE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠBox < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvalue : ĠT ? Ġ= Ġnull ĊĠĠĠ Ġ} Ċ } Ċ