package Ġcom . github . io jj j . bootstrap . q at ool kit Ċ Ċ import Ġandroid . accessibility service . Accessibility Service Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . content . res . Configuration . UI _ MODE _ N IGHT _ MASK Ċ import Ġandroid . content . res . Configuration . UI _ MODE _ N IGHT _ YES Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup . LayoutParams . MATCH _ PARENT Ċ import Ġandroid . view . ViewGroup . LayoutParams . WRAP _ CONTENT Ċ import Ġandroid . view . accessibility . Accessibility Event Ċ import Ġandroid . view . accessibility . Accessibility NodeInfo Ċ import Ġandroid . view . accessibility . Accessibility Window Info Ċ import Ġandroidx . activity . On Back Pressed Callback Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Composition Local Provider Ċ import Ġandroidx . compose . runtime . Disposable Effect Ċ import Ġandroidx . compose . runtime . La unched Effect Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . ui . graphics . to Compose Rect Ċ import Ġandroidx . compose . ui . platform . Local View Ċ import Ġandroidx . navigation . Nav Host Controller Ċ import Ġandroidx . navigation . compose . Compose Navigator Ċ import Ġandroidx . navigation . compose . Dialog Navigator Ċ import Ġandroidx . navigation . compose . current Back Stack Entry As State Ċ import Ġcom . github . io jj j . bootstrap . pub . core . exhaustive Ċ import Ġcom . github . io jj j . bootstrap . pub . core . stdlib . has Flag Ċ import Ġcom . github . io jj j . bootstrap . pub . core . view . accessibility . children Ċ import Ġcom . github . io jj j . bootstrap . pub . core . view . accessibility . isValid Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . ATTRIBUTE _ CHECK ABLE Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . ATTRIBUTE _ CHECK ED Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . ATTRIBUTE _ CLICK ABLE Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . ATTRIBUTE _ ENABLED Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . ATTRIBUTE _ FOCUS ABLE Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . ATTRIBUTE _ FOC USED Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . ATTRIBUTE _ HEIGHT Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . ATTRIBUTE _ ID Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . ATTRIBUTE _ LONG _ CLICK ABLE Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . ATTRIBUTE _ TYPE Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . ATTRIBUTE _ WIDTH Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . CATEGORY _ NAME _ MAIN Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . CATEGORY _ VIEW _ LAYOUT Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . CATEGORY _ VIEW _ STATE Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . Common Attribute . Companion . boolean Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . Common Attribute . Companion . string Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . attribute . Dimension Attribute . Companion . dimension Ċ import Ġcom . github . io jj j . bootstrap . pub . q at ool kit . inspector . layout . Categor ized Attributes Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . compose . core . Local Dp Formatter Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . compose . core . Local Has Bridge Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . compose . core . Local Percent Formatter Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . compose . core . Local Px Formatter Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . compose . core . Local Screen Size Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . compose . core . Local Size Formatter Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . compose . core . remember Dp Formatter Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . compose . core . remember Percent Formatter Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . compose . core . remember Px Formatter Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . compose . core . remember Screen Size Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . compose . core . remember Size Formatter Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . inspector . View Node Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . overlay . Content Change Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . overlay . Toolkit Content Overlay Manager Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . overlay . Toolkit Content Overlay Manager . Companion . can Draw Overlay s Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . overlay . Toolkit Mode Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . overlay . ViewModel Factory Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . pool . Pool Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . pool . Simple Pool Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . pub . bridge . core . EXTRA _ BR ID GE _ CONFIGURE D Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . pub . bridge . core . EXTRA _ BR ID GE _ UUID Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . settings . Settings Activity Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . theme . Qa Toolkit Theme Ċ import Ġcom . github . io jj j . bootstrap . q at ool kit . toolkit bar . Toolkit Bar Overlay Ċ import Ġcom . google . ac comp an ist . in sets . Provide Window Insets Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Supervisor Job Ċ import Ġkotlinx . coroutines . cancel Ċ import Ġkotlinx . coroutines . flow . Mutable State Flow Ċ Ċ class ĠQ a Toolkit Service Ġ: ĠAccessibility Service () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġservice Scope Ġ= ĠCor outine Scope ( Supervisor Job () Ġ+ ĠDispatch ers . Main . immediate ) ĊĊĠĠĠ Ġprivate Ġvar Ġlast Accessibility Node : ĠAccessibility NodeInfo ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlast View Node : ĠView Node ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġtoolkit Bar Overlay Manager : ĠToolkit Content Overlay Manager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtoolkit Content Overlay Manager : ĠToolkit Content Overlay Manager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġhas Bridge State Ġ= ĠMutable State Flow ( false ) ĊĠĠĠ Ġprivate Ġval Ġis Night Mode State Ġ= ĠMutable State Flow ( false ) ĊĊĠĠĠ Ġprivate Ġval Ġrect Pool : ĠPool < Rect > Ġ= ĠSimple Pool (:: Rect ) ĊĠĠĠ Ġprivate Ġval Ġnav Controller Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠNav Host Controller ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigator Provider . add Navigator ( Compose Navigator ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigator Provider . add Navigator ( Dialog Navigator ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ Ġis Night Mode State . value Ġ= Ġresources . configuration . ui Mode . has Flag ( UI _ MODE _ N IGHT _ YES , ĠUI _ MODE _ N IGHT _ MASK ) ĊĠĠĠĠĠĠĠ Ġif Ġ( can Draw Overlay s ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ready Draw Overlay s () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Settings Screen () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Interrupt () Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* Ġno - op Ġ*/ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Accessibility Event ( event : ĠAccessibility Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġex haustive .. when Ġ( event . eventType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAccessibility Event . TYPE _ WINDOW _ CONTENT _ CHANGED , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAccessibility Event . TYPE _ WINDOW _ STATE _ CHANGED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has Active Application Window ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Messenger Connection ( root In Active Window ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġno - op Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Configuration Changed ( new Config : ĠConfiguration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Configuration Changed ( new Config ) ĊĠĠĠĠĠĠĠ Ġis Night Mode State . value Ġ= Ġnew Config . ui Mode . has Flag ( UI _ MODE _ N IGHT _ YES , ĠUI _ MODE _ N IGHT _ MASK ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġclean Up () ĊĠĠĠĠĠĠĠ Ġservice Scope . cancel () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclean Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolkit Bar Overlay Manager ?. hide () ĊĠĠĠĠĠĠĠ Ġtoolkit Content Overlay Manager ?. hide () ĊĠĠĠĠĠĠĠ Ġtoolkit Bar Overlay Manager ?. clean Up () ĊĠĠĠĠĠĠĠ Ġtoolkit Content Overlay Manager ?. clean Up () ĊĠĠĠĠĠĠĠ Ġtoolkit Bar Overlay Manager Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtoolkit Content Overlay Manager Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġlast View Node Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġlast Accessibility Node ?. recycle () ĊĠĠĠĠĠĠĠ Ġlast Accessibility Node Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Ready Draw Overlay s () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Overlay Ġ= ĠToolkit Content Overlay Manager ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Draw Overlay s Permission Required Ġ= Ġ:: on Draw Overlay s Permission Required ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbar Overlay Ġ= ĠToolkit Content Overlay Manager ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Draw Overlay s Permission Required Ġ= Ġ:: on Draw Overlay s Permission Required ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠContent Ġoverlay Ġattached Ġfirst Ġto Ġbe Ġbelow Ġof Ġtoolkit Ġbar ĊĠĠĠĠĠĠĠ Ġcontent Overlay . show () ĊĠĠĠĠĠĠĠ Ġbar Overlay . show () ĊĊĠĠĠĠĠĠĠ Ġtoolkit Bar Overlay Manager Ġ= Ġbar Overlay ĊĠĠĠĠĠĠĠ Ġtoolkit Content Overlay Manager Ġ= Ġcontent Overlay ĊĠĠĠĠĠĠĠ Ġsetup Overlay s ( bar Overlay , Ġcontent Overlay ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Draw Overlay s Permission Required () Ġ{ ĊĠĠĠĠĠĠĠ Ġclean Up () ĊĠĠĠĠĠĠĠ Ġopen Settings Screen () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Overlay s ( ĊĠĠĠĠĠĠĠ Ġtoolkit Bar Overlay Manager : ĠToolkit Content Overlay Manager , ĊĠĠĠĠĠĠĠ Ġtoolkit Content Overlay Manager : ĠToolkit Content Overlay Manager ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolkit Content Overlay Manager . on Back Pressed Dispatcher . add Callback ( object Ġ: ĠOn Back Pressed Callback ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle On Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate Up () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġval Ġnavigate To : Ġ( Toolkit Mode ) Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġshared Preferences Ġ= Ġget SharedPreferences (" q at ool kit _ overlay _ state ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval ĠviewModel Factory Ġ= ĠViewModel Factory ( application Context , Ġnavigate To , Ġshared Preferences , Ġis Night Mode State ) ĊĠĠĠĠĠĠĠ Ġtoolkit Bar Overlay Manager . setContent ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Visibility Ġ= ĠContent Change . Content Visible ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= ĠWR AP _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= ĠWR AP _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Layout In Screen Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Focus able Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Touchable Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Not Touch Modal Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis I me Input Required Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġcallback Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQ a Toolkit Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhas Bridge Ġ= Ġhas Bridge State . collect As State () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp osition Local Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Has Bridge Ġprovides Ġhas Bridge . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToolkit Bar Overlay ( nav Controller , ĠviewModel Factory , Ġcallback ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtoolkit Content Overlay Manager . setContent Ġ{ Ġcallback Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQ a Toolkit Theme Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotify Insets Changed Effect () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProvide Window Insets Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp osition Local Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Screen Size Ġprovides Ġremember Screen Size (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Size Formatter Ġprovides Ġremember Size Formatter (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Percent Formatter Ġprovides Ġremember Percent Formatter (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Dp Formatter Ġprovides Ġremember Dp Formatter (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Px Formatter Ġprovides Ġremember Px Formatter (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToolkit Content Overlay ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Root View Node Ġ= Ġ:: find Root View Node , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller Ġ= Ġnav Controller , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed Dispatcher Ġ= Ġtoolkit Content Overlay Manager . on Back Pressed Dispatcher , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Factory Ġ= ĠviewModel Factory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġback Stack Entry Ġby Ġnav Controller . current Back Stack Entry As State () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoolkit Mode Ġ= Ġback Stack Entry ?. route < Toolkit Mode >() ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLa unched Effect ( toolkit Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( toolkit Mode Ġ== ĠToolkit Mode . Initial Ġ|| Ġtoolkit Mode Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( Content Change . Content Not Visible ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContent Change . Content Visible ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= ĠMATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= ĠMATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Layout In Screen Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Focus able Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Touchable Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Not Touch Modal Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis I me Input Required Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun ĠNotify Insets Changed Effect () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . R ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLocal View . current ĊĠĠĠĠĠĠĠ ĠDis posable Effect ( view ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠView . On Layout ChangeListener Ġ{ Ġv , Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . request Apply Insets () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . add On Layout ChangeListener ( listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Dispose Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . remove On Layout ChangeListener ( listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Settings Screen () Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠSettings Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhas Active Application Window (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwindows . first OrNull Ġ{ Ġit . type Ġ== ĠAccessibility Window Info . TYPE _ APPLICATION Ġ&& Ġit . isActive Ġ} Ġ!= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠAccessibility NodeInfo . find Bridge Bundle (): ĠBundle ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextras . containsKey ( EXTRA _ BR ID GE _ CONFIGURE D ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextras ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchildren . map NotNull Ġ{ Ġit . find Bridge Bundle () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Messenger Connection ( accessibility NodeInfo : ĠAccessibility NodeInfo ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġhas Bridge State . value Ġ= Ġaccessibility NodeInfo ?. find Bridge Bundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . getBoolean ( EXTRA _ BR ID GE _ CONFIGURE D , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh Last Accessibility Node (): ĠAccessibility NodeInfo ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocal Last Accessibility Node Ġ= Ġlast Accessibility Node ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( local Last Accessibility Node Ġ!= Ġnull Ġ&& Ġlocal Last Accessibility Node . isValid Ġ&& Ġlocal Last Accessibility Node . refresh ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Last Accessibility Node ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Last Accessibility Node ?. recycle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Accessibility Node Ġ= Ġroot In Active Window ?. take If Ġ{ Ġhas Active Application Window () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Accessibility Node ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġreturn Ġif Ġ( ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġlocal Last Accessibility Node Ġ== Ġnull ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// Ġ|| Ġlocal Last Accessibility Node . className . isNull OrEmpty () ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ|| Ġcurrent Root Ġ!= Ġnull Ġ&& Ġcurrent Root Ġ!= Ġlocal Last Accessibility Node ĊĠĠĠĠĠĠĠ Ġ// Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġif Ġ( local Last Accessibility Node ?. isValid Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġlocal Last Accessibility Node . recycle () ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġlast Accessibility Node Ġ= Ġcurrent Root ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// Ġval Ġactive Root Ġ= Ġcurrent Root ?. take Unless Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// ĠĠĠĠ Ġit . packageName Ġ== ĠpackageName Ġ&& Ġit . className Ġ== ĠView :: class . qualified Name ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// Ġif Ġ( active Root Ġ!= Ġnull Ġ&& Ġ! active Root . className . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// ĠĠĠĠ Ġval Ġpossible Content Ġ= Ġactive Root . find Accessibility Node Infos By View Id (" android : id / content ") ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// ĠĠĠĠ Ġlast Accessibility Node Ġ= Ġpossible Content ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġ? . children ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġ? . first OrNull () ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġ// ĠF allback Ġto Ġcurrent Ġroot Ġ( maybe Ġit 's Ġa Ġpopup / dialog ). ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġ?: Ġactive Root ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// ĠĠĠĠ Ġpossible Content . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġit . recycle () ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// ĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ// Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġlast Accessibility Node ĊĠĠĠĠĠĠĠ Ġ// Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġwhenever ( local Last Accessibility Node . isValid ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġif Ġ(! local Last Accessibility Node . refresh ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Accessibility Node ?. recycle () ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Accessibility Node Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠ Ġlocal Last Accessibility Node ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind Root View Node (): ĠView Node ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrefresh Last Accessibility Node () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . also Ġ{ Ġupdate Messenger Connection ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . capture Root View Node () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġlast View Node ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠAccessibility NodeInfo . capture Root View Node (): ĠView Node ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġis Bridge Configured Ġ= Ġfind Bridge Bundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . getBoolean ( EXTRA _ BR ID GE _ CONFIGURE D , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġcapture Hierarchy ( is Bridge Configured )?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast View Node Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠAccessibility NodeInfo . capture Hierarchy ( is Bridge Configured : ĠBoolean ): ĠView Node ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠIgnore Ġviews Ġnot Ġvisible Ġto Ġuser , Ġthey Ġcan 't Ġbe Ġselected . ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( isVisible To User ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġview Id ResourceName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . split ("/") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . last () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= Ġrect Pool . acquire (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Bounds In Screen ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuuid Ġ= Ġextras . getString ( EXTRA _ BR ID GE _ UUID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġordered Children Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchildren . sorted By Descending Ġ{ Ġit . drawing Order Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchildren . toList (). reversed (). as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdefault Attributes Ġ= Ġload Default Attributes ( id , Ġbounds ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠView Node ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds Ġ= Ġbounds . to Compose Rect (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrect Pool . release ( bounds ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchildren Ġ= Ġordered Children . map NotNull Ġ{ Ġit . capture Hierarchy ( is Bridge Configured ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbridge Info Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Bridge Configured Ġ&& Ġ! uuid . isNull OrEmpty () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBridge Info . Available ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuuid Ġ= Ġuuid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice PackageName Ġ= ĠpackageName . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategories Ġ= Ġdefault Attributes , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Bridge Configured Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBridge Info . View Not Configured ( default Attributes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBridge Info . Not Available ( default Attributes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠAccessibility NodeInfo . load Default Attributes ( ĊĠĠĠĠĠĠĠ Ġid : ĠString ?, ĊĠĠĠĠĠĠĠ Ġbounds : ĠRect , ĊĠĠĠ Ġ): ĠList < Categor ized Attributes > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCategor ized Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠC ATEG ORY _ NAME _ MAIN , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠlistOf NotNull ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid ?. let Ġ{ Ġstring ( ATTRIBUTE _ ID , Ġit ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstring ( ATTRIBUTE _ TYPE , ĠclassName . toString ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCategor ized Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠC ATEG ORY _ VIEW _ LAYOUT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdimension ( ATTRIBUTE _ WIDTH , Ġbounds . width (). toFloat ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdimension ( ATTRIBUTE _ HEIGHT , Ġbounds . height (). toFloat ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCategor ized Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠC ATEG ORY _ VIEW _ STATE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattributes Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboolean ( ATTRIBUTE _ ENABLED , Ġis Enabled ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboolean ( ATTRIBUTE _ CHECK ABLE , Ġis Check able ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboolean ( ATTRIBUTE _ CHECK ED , Ġis Checked ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboolean ( ATTRIBUTE _ CLICK ABLE , Ġis Clickable ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboolean ( ATTRIBUTE _ LONG _ CLICK ABLE , Ġis Long Clickable ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboolean ( ATTRIBUTE _ FOCUS ABLE , Ġis Focus able ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboolean ( ATTRIBUTE _ FOC USED , Ġis Focused ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠACTION _ CAN _ DRAW _ OVER LAY S Ġ= Ġ" ACTION _ CAN _ DRAW _ OVER LAY S " ĊĠĠĠ Ġ} Ċ }