package Ġcom . j pb . lib checker . view . settings Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . Context Theme Wrapper Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . View Flip per Ċ import Ġandroidx . appcompat . widget . AppCompat ImageView Ċ import Ġandroidx . appcompat . widget . AppCompat TextView Ċ import Ġandroidx . core . view . margin Top Ċ Ċ import Ġcom . j pb . lib checker . utils . extensions . get Dimension Pixel Size Ċ import Ġcom . j pb . lib checker . utils . extensions . getResource Id By Attr Ċ import Ġcom . j pb . lib checker . view . A ViewGroup Ċ import Ġcom . j pb . lib checker . view . app . Bottom Sheet Header View Ċ import Ġcom . j pb . lib checker . view . app . I Header View Ċ import Ġcom . air bnb . lott ie . Lot tie Animation View Ċ import Ġcom . air bnb . lott ie . Lot tie Drawable Ċ import Ġcom . google . android . material . button . Material Button Ċ import Ġcom . j pb . lib checker . R Ċ Ċ class ĠCloud Rules Dialog View ( context : ĠContext ) Ġ: ĠA ViewGroup ( context ), ĠI Header View Ġ{ ĊĊĠ Ġprivate Ġval Ġheader Ġ= ĠBottom Sheet Header View ( context ). apply Ġ{ ĊĠĠĠ Ġlayout Params Ġ= ĊĠĠĠĠĠ ĠLayout Params ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠ Ġtitle . text Ġ= Ġcontext . getString ( R . string . cloud _ rules ) ĊĠ Ġ} ĊĊĠ Ġval Ġview Flip per Ġ= ĠView Flip per ( context ). apply Ġ{ ĊĠĠĠ Ġlayout Params Ġ= ĊĠĠĠĠĠ ĠLayout Params ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠ Ġset In Animation ( context , ĠR . anim . anim _ fade _ in ) ĊĠĠĠ Ġset Out Animation ( context , ĠR . anim . anim _ fade _ out ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġloading Anim Ġ= ĠL ot tie Animation View ( context ). apply Ġ{ ĊĠĠĠ Ġval Ġsize Ġ= Ġcontext . get Dimension Pixel Size ( R . dim en . lott ie _ anim _ size ) ĊĠĠĠ Ġlayout Params Ġ= ĠFrame Layout . LayoutParams ( size , Ġsize ). also Ġ{ ĊĠĠĠĠĠ Ġit . gravity Ġ= ĠGr avity . CENTER ĊĠĠĠ Ġ} ĊĠĠĠ Ġimage Assets Folder Ġ= Ġ"/" ĊĠĠĠ Ġrepeat Count Ġ= ĠL ot tie Drawable . INF IN ITE ĊĠĠĠ Ġset Animation (" anim / gray - down - arrow . json ") ĊĠ Ġ} ĊĊĠ Ġval Ġcloud Rules ContentView Ġ= ĠCloud Rules ContentView ( context ). apply Ġ{ ĊĠĠĠ Ġlayout Params Ġ= ĠFrame Layout . LayoutParams ( ĊĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġadd View ( header ) ĊĠĠĠ Ġadd View ( view Flip per ) ĊĠĠĠ Ġview Flip per . addView ( loading Anim ) ĊĠĠĠ Ġview Flip per . addView ( cloud Rules ContentView ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠ Ġheader . auto Measure () ĊĠĠĠ Ġview Flip per . auto Measure () ĊĠĠĠ Ġset Measured Dimension ( meas ured Width , Ġheader . meas ured Height Ġ+ Ġview Flip per . meas ured Height ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Layout ( changed : ĠBoolean , Ġl : ĠInt , Ġt : ĠInt , Ġr : ĠInt , Ġb : ĠInt ) Ġ{ ĊĠĠĠ Ġheader . layout ( 0 , Ġpadding Top ) ĊĠĠĠ Ġview Flip per . layout ( 0 , Ġheader . bottom ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Attached To Window () Ġ{ ĊĠĠĠ Ġsuper . on Attached To Window () ĊĠĠĠ Ġloading Anim . play Animation () ĊĠ Ġ} ĊĊĠ Ġclass ĠCloud Rules ContentView ( context : ĠContext ) Ġ: ĠA ViewGroup ( context ) Ġ{ ĊĊĠĠĠ Ġval Ġlocal Version Ġ= ĠCloud Rules Version View ( context ). apply Ġ{ ĊĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( ĊĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT , ĊĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġdesc . text Ġ= Ġcontext . getString ( R . string . rules _ local _ repo _ version ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġarrow Ġ= ĠAppCompat ImageView ( context ). apply Ġ{ ĊĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( 4 8 . dp , Ġ 4 8 . dp ) ĊĠĠĠĠĠ Ġset Image Resource ( R . drawable . ic _ arrow _ right ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġremote Version Ġ= ĠCloud Rules Version View ( context ). apply Ġ{ ĊĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( ĊĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT , ĊĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġdesc . text Ġ= Ġcontext . getString ( R . string . rules _ remote _ repo _ version ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġupdate Button Ġ= ĠMaterial Button ( context ). apply Ġ{ ĊĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( 3 0 0 . dp , ĠViewGroup . LayoutParams . WRAP _ CONTENT ). also Ġ{ ĊĠĠĠĠĠĠĠ Ġit . top Margin Ġ= Ġ 4 8 . dp ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis Enabled Ġ= Ġfalse ĊĠĠĠĠĠ Ġtext Ġ= Ġcontext . getString ( R . string . rules _ btn _ update ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠ Ġset Padding ( 0 , Ġ 4 8 . dp , Ġ 0 , Ġ 4 8 . dp ) ĊĠĠĠĠĠ Ġclip To Padding Ġ= Ġfalse ĊĠĠĠĠĠ Ġadd View ( local Version ) ĊĠĠĠĠĠ Ġadd View ( arrow ) ĊĠĠĠĠĠ Ġadd View ( remote Version ) ĊĠĠĠĠĠ Ġadd View ( update Button ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Update Button Status ( is Enable : ĠBoolean ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( is Enable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Button . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġcontext . getString ( R . string . rules _ btn _ restart _ to _ update ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Button . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġcontext . getString ( R . string . rules _ btn _ update ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠĠĠ Ġlocal Version . auto Measure () ĊĠĠĠĠĠ Ġarrow . auto Measure () ĊĠĠĠĠĠ Ġremote Version . auto Measure () ĊĠĠĠĠĠ Ġupdate Button . auto Measure () ĊĠĠĠĠĠ Ġset Measured Dimension ( ĊĠĠĠĠĠĠĠ Ġmeasured Width , ĊĠĠĠĠĠĠĠ Ġpadding Top Ġ+ Ġlocal Version . meas ured Height Ġ+ Ġupdate Button . margin Top Ġ+ Ġupdate Button . meas ured Height Ġ+ Ġpadding Bottom ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Layout ( changed : ĠBoolean , Ġl : ĠInt , Ġt : ĠInt , Ġr : ĠInt , Ġb : ĠInt ) Ġ{ ĊĠĠĠĠĠ Ġarrow . layout ( arrow . to Horizontal Center ( this ), Ġpadding Top ) ĊĠĠĠĠĠ Ġlocal Version . layout ( ĊĠĠĠĠĠĠĠ Ġarrow . left Ġ- Ġ 2 4 . dp Ġ- Ġlocal Version . meas ured Width , ĊĠĠĠĠĠĠĠ Ġlocal Version . to View Vertical Center ( arrow ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġremote Version . layout ( arrow . right Ġ+ Ġ 2 4 . dp , Ġremote Version . to View Vertical Center ( arrow )) ĊĠĠĠĠĠ Ġupdate Button . layout ( ĊĠĠĠĠĠĠĠ Ġupdate Button . to Horizontal Center ( this ), ĊĠĠĠĠĠĠĠ Ġlocal Version . bottom Ġ+ Ġupdate Button . margin Top ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġclass ĠCloud Rules Version View ( context : ĠContext ) Ġ: ĠA ViewGroup ( context ) Ġ{ ĊĊĠĠĠ Ġval Ġversion Ġ= ĠAppCompat TextView ( context ). apply Ġ{ ĊĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( ĊĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT , ĊĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġset TextAppearance ( context . getResource Id By Attr ( com . google . android . material . R . attr . text Appearance Head line 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdesc Ġ= ĠAppCompat TextView ( ĊĠĠĠĠĠ ĠContext Theme Wrapper ( ĊĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠ ĠR . style . TextView _ Sans Ser if Con dense d Medium ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠ Ġlayout Params Ġ= ĠLayout Params ( 1 2 0 . dp , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠ Ġadd View ( version ) ĊĠĠĠĠĠ Ġadd View ( desc ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠ Ġsuper . on Measure ( width Measure Spec , Ġheight Measure Spec ) ĊĠĠĠĠĠ Ġversion . auto Measure () ĊĠĠĠĠĠ Ġdesc . auto Measure () ĊĠĠĠĠĠ Ġset Measured Dimension ( ĊĠĠĠĠĠĠĠ Ġversion . meas ured Width . coerce At Least ( desc . meas ured Width ), ĊĠĠĠĠĠĠĠ Ġversion . meas ured Height Ġ+ Ġdesc . meas ured Height ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Layout ( changed : ĠBoolean , Ġl : ĠInt , Ġt : ĠInt , Ġr : ĠInt , Ġb : ĠInt ) Ġ{ ĊĠĠĠĠĠ Ġversion . layout ( version . to Horizontal Center ( this ), Ġ 0 ) ĊĠĠĠĠĠ Ġdesc . layout ( desc . to Horizontal Center ( this ), Ġversion . bottom ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Header View (): ĠBottom Sheet Header View Ġ{ ĊĠĠĠ Ġreturn Ġheader ĊĠ Ġ} Ċ } Ċ