package Ġcom . existing . bo iler x . core . base . view Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . view . Window Insets Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġcom . existing . bo iler x . core . R Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠThe ĠK ha eng Ġon Ġ 2 1 ĠApr Ġ 2 0 1 8 Ġ:) Ċ Ġ*/ Ċ class ĠSystem UIS pace View Ġ: ĠView Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTOP Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLEFT Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRIGHT Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBOTTOM Ġ= Ġ 3 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġtop System UI : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġbottom System UI : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġleft System UI : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġright System UI : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġis Cons umed Insets : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġvar Ġsystem UI : ĠInt Ġ= ĠTOP ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Style ables ( attrs , Ġdef Style Attr , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" New Api ") ĊĠĠĠ Ġ@ Requires Api ( api Ġ= ĠBuild . VERSION _ CODES . LO L LI POP ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt , Ġdef Style Res : ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr , Ġdef Style Res ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Style ables ( attrs , Ġdef Style Attr , Ġdef Style Res ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UNUSED _ PARAMETER ") ĊĠĠĠ Ġprotected Ġfun Ġsetup Style ables ( attrs : ĠAttributeSet ?, Ġdef Style Attr : ĠInt , Ġdef Style Res : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġattrs ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattr Array Ġ= Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . System UIS pace View , Ġdef Style Res , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Cons umed Insets Ġ= Ġattr Array . getBoolean ( R . style able . System UIS pace View _ is Consume Insets , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsystem UI Ġ= Ġattr Array . getInt ( R . style able . System UIS pace View _ system UI , ĠTOP ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattr Array . recycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Suppress (" Over riding Deprecated Member ") ĊĠĠĠ Ġoverride ĊĠĠĠ Ġfun Ġfit System Windows ( in sets : ĠRect ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . KIT K AT _ WATCH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop System UI Ġ= Ġin sets . top ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft System UI Ġ= Ġin sets . left ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright System UI Ġ= Ġin sets . right ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom System UI Ġ= Ġin sets . bottom ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġis Cons umed Insets ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" New Api ") ĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . KIT K AT _ WATCH ) ĊĠĠĠ Ġoverride ĊĠĠĠ Ġfun Ġon Apply Window Insets ( in sets : ĠWindow Insets ?): ĠWindow Insets Ġ{ ĊĠĠĠĠĠĠĠ Ġtop System UI Ġ= Ġin sets ?. system Window Inset Top Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġleft System UI Ġ= Ġin sets ?. system Window Inset Left Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġright System UI Ġ= Ġin sets ?. system Window Inset Right Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġbottom System UI Ġ= Ġin sets ?. system Window Inset Bottom Ġ?: Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( is Cons umed Insets ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Apply Window Insets ( in sets ?. consume System Window Insets ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Apply Window Insets ( in sets ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride ĊĠĠĠ Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġnew Height Measure Spec Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġnew Width Measure Spec Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġwidth Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġheight Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhen Ġ( system UI ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTOP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= ĠView . Measure Spec . getSize ( width Measure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġtop System UI ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Width Measure Spec Ġ= Ġwidth Measure Spec ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Height Measure Spec Ġ= ĠView . Measure Spec . make Measure Spec ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop System UI , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . Measure Spec . EX ACT LY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLEFT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġleft System UI ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= ĠView . Measure Spec . getSize ( height Measure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Width Measure Spec Ġ= ĠView . Measure Spec . make Measure Spec ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft System UI , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . Measure Spec . EX ACT LY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Height Measure Spec Ġ= Ġheight Measure Spec ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRIGHT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġright System UI ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= ĠView . Measure Spec . getSize ( height Measure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Width Measure Spec Ġ= ĠView . Measure Spec . make Measure Spec ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright System UI , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . Measure Spec . EX ACT LY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Height Measure Spec Ġ= Ġheight Measure Spec ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBOTTOM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= ĠView . Measure Spec . getSize ( width Measure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġbottom System UI ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Width Measure Spec Ġ= Ġwidth Measure Spec ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Height Measure Spec Ġ= ĠView . Measure Spec . make Measure Spec ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom System UI , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . Measure Spec . EX ACT LY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . on Measure ( new Width Measure Spec , Ġnew Height Measure Spec ) ĊĠĠĠĠĠĠĠ Ġset Measured Dimension ( width , Ġheight ) ĊĠĠĠ Ġ} Ċ Ċ }