package Ġcom . react jj kit . image ListView Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Outline Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . graphics . drawable . Gradient Drawable Ċ import Ġandroid . graphics . drawable . R ipple Drawable Ċ import Ġandroid . graphics . drawable . Shape Drawable Ċ import Ġandroid . graphics . drawable . shapes . Round Rect Shape Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View Outline Provider Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . appcompat . widget . AppCompat ImageView Ċ import Ġandroidx . appcompat . widget . AppCompat TextView Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . constraint layout . widget . Constraint Set Ċ import Ġcom . react jj kit . R Ċ import Ġcom . react jj kit . layout Utils . JJ Color Drawable Ċ import Ġcom . react jj kit . layout Utils . JJ Layout Ċ import Ġcom . react jj kit . layout Utils . JJ Screen Ċ import Ġkotlin . math . min Ċ Ċ @ Suppress Lint (" View Constructor ") Ċ class ĠVideo Cell ( context : ĠContext , Ġcolor Accent : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect able Icon Size : ĠInt Ġ= ĠJ J Screen . dp ( 1 1 f ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Icon Size : Int Ġ= ĠJ J Screen . dp ( 1 4 f ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Text Size : Float Ġ= ĠĠ 1 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ: ĠConstraint Layout ( context ), Select ableView Ġ{ ĊĊĊĠĠĠ Ġprivate Ġval Ġm Color Accent Ġ= Ġcolor Accent ĊĠĠĠ Ġprivate Ġval Ġm ImageView Ġ= ĠAppCompat ImageView ( context ) ĊĠĠĠ Ġprivate Ġval Ġm Image Selection Container Ġ= ĠConstraint Layout ( context ) ĊĠĠĠ Ġprivate Ġval Ġm Image Selection Ġ= ĠAppCompat ImageView ( context ) ĊĠĠĠ Ġprivate Ġval Ġm Text Duration Ġ= ĠAppCompat TextView ( context ) ĊĠĠĠ Ġprivate Ġval Ġm Image Video Icon Ġ= ĠAppCompat ImageView ( context ) ĊĊĊĠĠĠ Ġprivate Ġval Ġm Bg Ring Ġ= ĠJ J Color Drawable (). set Shape ( 1 ) ĊĠĠĠĠĠĠĠ Ġ. setFill Color ( Color . parse Color ("# 4 0 FFFFFF ")) ĊĠĠĠĠĠĠĠ Ġ. set Stroke ( selectable Icon Size * 0 . 1 f , Color . WHITE ) ĊĊĠĠĠ Ġprivate Ġval Ġm Video Icon Size Ġ= Ġvideo Icon Size ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolor State Ġ= ĠColor State List ( array Of ( int ArrayOf ( android . R . attr . state _ pressed ) Ġ, int ArrayOf (- android . R . attr . state _ pressed )), Ġint ArrayOf ( Color . BLACK , Color . BLACK )) ĊĠĠĠĠĠĠĠ Ġval Ġbg Ġ= ĠGradient Drawable () ĊĠĠĠĠĠĠĠ Ġbg . shape Ġ= ĠGradient Drawable . RECT ANGLE ĊĠĠĠĠĠĠĠ Ġbg . color Ġ= ĠColor State List . valueOf ( Color . WHITE ) ĊĠĠĠĠĠĠĠ Ġbg . corner Rad ii Ġ= Ġfloat ArrayOf ( 0 f , 0 f , 0 f , 0 f , 0 f , 0 f , 0 f , 0 f ) ĊĠĠĠĠĠĠĠ Ġval Ġrect Ġ= ĠRound Rect Shape ( float ArrayOf ( 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f , Ġ 0 f ), Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġshape Ġ= ĠShape Drawable ( rect ) ĊĠĠĠĠĠĠĠ Ġbackground Ġ= ĠR ipple Drawable ( color State , bg , shape ) ĊĊĠĠĠĠĠĠĠ Ġclip To Outline Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġoutline Provider Ġ= Ġobject : ĠView Outline Provider () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Outline ( view : ĠView ?, Ġoutline : ĠOut line ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutline ?. set Round Rect ( 0 , 0 , view !!. width , view . height , 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Image Selection Container . id Ġ= Ġgenerate Id () ĊĠĠĠĠĠĠĠ Ġm Image Video Icon . id Ġ= Ġgenerate Id () ĊĠĠĠĠĠĠĠ Ġm Image Selection . id Ġ= Ġgenerate Id () ĊĠĠĠĠĠĠĠ Ġm ImageView . id Ġ= Ġgenerate Id () ĊĠĠĠĠĠĠĠ Ġm Text Duration . id Ġ= Ġgenerate Id () ĊĊĠĠĠĠĠĠĠ Ġadd View ( m ImageView ) ĊĠĠĠĠĠĠĠ Ġm Image Selection Container . addView ( m Image Selection ) ĊĠĠĠĠĠĠĠ Ġadd View ( m Image Selection Container ) ĊĠĠĠĠĠĠĠ Ġadd View ( m Text Duration ) ĊĠĠĠĠĠĠĠ Ġadd View ( m Image Video Icon ) ĊĊĊĠĠĠĠĠĠĠ Ġm Text Duration . type face Ġ= ĠType face . SAN S _ SER IF ĊĠĠĠĠĠĠĠ Ġm Text Duration . text Size Ġ= Ġduration Text Size ĊĠĠĠĠĠĠĠ Ġm Text Duration . setTextColor ( Color . WHITE ) ĊĠĠĠĠĠĠĠ Ġm Text Duration . text Ġ= Ġ" 0 0 : 0 0 " ĊĠĠĠĠĠĠĠ Ġm Text Duration . set BackgroundColor ( Color . parse Color ("# 8 0 2 6 2 6 2 6 ")) ĊĠĠĠĠĠĠĠ Ġval Ġpadding Ġ= ĠJ J Screen . point W ( 2 5 ) ĊĠĠĠĠĠĠĠ Ġm Text Duration . set Padding Relative ( padding , 0 , padding , 0 ) ĊĠĠĠĠĠĠĠ Ġm Text Duration . clip To Outline Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Text Duration . outline Provider Ġ= Ġobject : ĠView Outline Provider (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Outline ( view : ĠView ?, Ġoutline : ĠOut line ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradius Ġ= Ġmin ( view !!. width , view . height ) Ġ/ Ġ 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutline ?. set Round Rect ( 0 , 0 , view . width , view . height , radius ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm ImageView . scale Type Ġ= ĠImageView . Scale Type . CENTER _ C ROP ĊĊĠĠĠĠĠĠĠ Ġm Image Selection Container . background Ġ= Ġm Bg Ring ĊĠĠĠĠĠĠĠ Ġm Image Selection . scale Type Ġ= ĠImageView . Scale Type . FIT _ CENTER ĊĊĊĊĠĠĠĠĠĠĠ Ġm Image Video Icon . setImage Resource ( R . drawable . ic _ video ) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġmargin Ġ= ĠJ J Screen . point W ( 2 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġsize Select Image Ġ= Ġ( selectable Icon Size * 0 . 4 8 f ). toInt () ĊĊĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m ImageView ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Fill Parent () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Set View ( m Image Selection Container ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Top To Top Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl End ToEnd Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Height ( selectable Icon Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Width ( selectable Icon Size ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Set View ( m Image Selection ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Height ( size Select Image ). cl Width ( size Select Image ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Center In Parent () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Set View ( m Image Video Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Height ( m Video Icon Size ). cl Width ( m Video Icon Size ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĊĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Text Duration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Height ( Constraint Set . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Width ( Constraint Set . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĊĠĠĠĠĠĠĠ Ġapply Gravity To Duration ( ĠGr avity . END Ġor ĠGr avity . BOTTOM ) ĊĠĠĠĠĠĠĠ Ġapply Gravity To Icon Video ( Gravity . START Ġor ĠGr avity . BOTTOM ) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm Generator Id Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġfun Ġgenerate Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġm Generator Id ++ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Generator Id ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġfun Ġis Icon Selection Visible ( boolean : ĠBoolean ) Ġ: ĠVideo Cell Ġ{ ĊĠĠĠĠĠĠĠ Ġm Image Selection Container . visibility Ġ= Ġif ( boolean ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Image Transition Name ( string : ĠString ): ĠVideo Cell Ġ{ ĊĠĠĠĠĠĠĠ Ġm ImageView . transition Name Ġ= Ġstring ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm Position Ġ= Ġ 0 ĊĠĠĠ Ġfun Ġset Item Position ( pos : Int ): ĠVideo Cell Ġ{ ĊĠĠĠĠĠĠĠ Ġm Position Ġ= Ġpos ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Position (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Position ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget ImageView (): ĠAppCompat ImageView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm ImageView ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Text Duration ( milli Seg : Long Ġ): ĠVideo Cell Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtime String Ġ= Ġmilli Seg To Time String ( milli Seg ) ĊĠĠĠĠĠĠĠ Ġm Text Duration . text Ġ= Ġtime String ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Icon Visible ( boolean : ĠBoolean ): ĠVideo Cell Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvis Ġ= Ġif ( boolean ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Image Video Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Visibility ( vis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Duration Visible ( boolean : ĠBoolean ): ĠVideo Cell Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvis Ġ= Ġif ( boolean ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Text Duration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Visibility ( vis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġmilli Seg To Time String ( millis : ĠLong ): ĠString { ĊĠĠĠĠĠĠĠ Ġvar Ġseconds Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġminutes Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġhours Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( millis Ġ>= Ġ 1 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseconds Ġ= Ġ( millis Ġ/ Ġ 1 0 0 0 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( seconds Ġ> Ġ 6 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminutes Ġ= Ġ( seconds Ġ/ Ġ 6 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġseconds Ġ% = Ġ 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( minutes Ġ> Ġ 6 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhours Ġ= Ġminutes Ġ/ Ġ 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminutes Ġ% = Ġ 6 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsecond String Ġ= Ġif ( seconds Ġ> Ġ 9 ) Ġ"$ seconds " Ġelse Ġ" 0 $ seconds " ĊĠĠĠĠĠĠĠ Ġval Ġminutes String Ġ= Ġif ( minutes Ġ> Ġ 9 ) Ġ"$ minutes " Ġelse Ġ" 0 $ minutes " ĊĠĠĠĠĠĠĠ Ġval Ġhours String Ġ= Ġ Ġif ( hours Ġ> Ġ 9 ) Ġ"$ hours " Ġelse Ġ" 0 $ hours " ĊĠĠĠĠĠĠĠ Ġreturn Ġif ( hours Ġ> Ġ 0 ) Ġ"$ hours String :$ minutes String :$ second String " Ġelse Ġ"$ minutes String :$ second String " ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġis Selected ( boolean : ĠBoolean ) Ġ Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( boolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Image Selection . setImage Resource ( R . drawable . ic _ done _ medium ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bg Ring . setFill Color ( m Color Accent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bg Ring . invalidate Self () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Image Selection . setImage Bitmap ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bg Ring . setFill Color ( Color . parse Color ("# 4 0 FFFFFF ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Bg Ring . invalidate Self () ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġapply Gravity To Icon Video ( gravity : Int ){ ĊĠĠĠĠĠĠĠ Ġval Ġmargin Ġ= ĠJ J Screen . point W ( 2 0 ) ĊĠĠĠĠĠĠĠ Ġwhen ( gravity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . END Ġor ĠGr avity . BOTTOM -> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Image Video Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Bottom To Bottom Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl End ToEnd Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . RIGHT Ġor ĠGr avity . BOTTOM -> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Image Video Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Bottom To Bottom Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl End ToEnd Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . START Ġor ĠGr avity . BOTTOM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Image Video Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Bottom To Bottom Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Start To Star Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . LEFT Ġor ĠGr avity . BOTTOM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Image Video Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Bottom To Bottom Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Start To Star Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . LEFT Ġor ĠGr avity . TOP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Image Video Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Top To Top Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Start To Star Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . START Ġor ĠGr avity . TOP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Image Video Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Top To Top Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Start To Star Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġapply Gravity To Duration ( gravity : Int ){ ĊĠĠĠĠĠĠĠ Ġval Ġmargin Ġ= ĠJ J Screen . point W ( 2 0 ) ĊĠĠĠĠĠĠĠ Ġwhen ( gravity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . END Ġor ĠGr avity . BOTTOM -> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Text Duration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Bottom To Bottom Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl End ToEnd Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . RIGHT Ġor ĠGr avity . BOTTOM -> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Text Duration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Bottom To Bottom Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl End ToEnd Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . START Ġor ĠGr avity . BOTTOM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Text Duration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Bottom To Bottom Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Start To Star Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . LEFT Ġor ĠGr avity . BOTTOM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Text Duration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Bottom To Bottom Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Start To Star Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . LEFT Ġor ĠGr avity . TOP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Text Duration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Top To Top Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Start To Star Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGr avity . START Ġor ĠGr avity . TOP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ J Layout . cl Set View ( m Text Duration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Top To Top Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Start To Star Parent ( margin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cl Dispose View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }