/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠSquare ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . squareup . contour . sample Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Color . WHITE Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . graphics . Type face . NORMAL Ċ import Ġandroid . view . Gravity . CENTER _ VERTICAL Ċ import Ġandroid . view . Window Insets Ċ import Ġandroid . view . animation . Over shoot Interpolator Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . view . update Padding Ċ import Ġandroidx . transition . Change Bounds Ċ import Ġandroidx . transition . Transition Manager Ċ import Ġcom . squareup . contour . Contour Layout Ċ Ċ @ Suppress Lint (" SetText I 1 8 n ") Ċ class ĠSample View ( context : ĠContext ) Ġ: ĠCont our Layout ( context ) Ġ{ ĊĠ Ġprivate Ġval Ġtoolbar Ġ= ĠTextView ( context ). apply Ġ{ ĊĠĠĠ Ġgravity Ġ= ĠC ENTER _ VERTICAL ĊĠĠĠ Ġletter Spacing Ġ= Ġ 0 . 0 5 f ĊĠĠĠ Ġtext Ġ= Ġ" Contour " ĊĠĠĠ Ġtext Size Ġ= Ġ 1 8 f ĊĠĠĠ Ġtype face Ġ= ĠType face . create (" sans - serif - medium ", ĠNORMAL ) ĊĠĠĠ Ġset TextColor ( WHITE ) ĊĠĠĠ Ġupdate Padding ( left Ġ= Ġ 2 6 . dip ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġcard 1 Ġ= ĠExpand able Bio Card 1 ( context ) ĊĠ Ġprivate Ġval Ġcard 2 Ġ= ĠExpand able Bio Card 2 ( context ) ĊĊĠ Ġinit Ġ{ ĊĠĠĠ Ġset BackgroundColor ( Color . parse Color ("# 3 0 3 0 3 0 ")) ĊĠĠĠ Ġcontour Height Match Parent () ĊĊĠĠĠ Ġtoolbar . layout By ( ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġleft To Ġ{ Ġparent . left () Ġ}, ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġtop To Ġ{ Ġparent . top () Ġ+ Ġ 4 . yd ip Ġ}. height Of Ġ{ Ġ 5 6 . yd ip Ġ} ĊĠĠĠ Ġ) ĊĠĠĠ Ġcard 1 . layout By ( ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġmatch Parent X ( margin Left Ġ= Ġ 2 4 . dip , ĠmarginRight Ġ= Ġ 2 4 . dip ), ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġtop To Ġ{ Ġtoolbar . bottom () Ġ+ Ġ 8 . yd ip Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġx Padding Ġ= Ġ{ Ġif Ġ( card 2 . isSelected ) Ġ 0 . xd ip Ġelse Ġ 2 4 . xd ip Ġ} ĊĠĠĠ Ġcard 2 . layout By ( ĊĠĠĠĠĠĠĠ Ġx Ġ= Ġleft To Ġ{ Ġparent . left () Ġ+ Ġx Padding () Ġ}. right To Ġ{ Ġparent . right () Ġ- Ġx Padding () Ġ}, ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġtop To Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( card 2 . isSelected ) Ġparent . top () Ġelse Ġcard 1 . bottom () Ġ+ Ġ 2 4 . yd ip ĊĠĠĠĠĠĠĠ Ġ}. height Of Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( card 2 . isSelected ) Ġparent . height () Ġelse Ġcard 2 . preferred Height () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġcard 2 . setOnClickListener Ġ{ ĊĠĠĠĠĠ ĠTransition Manager . begin Delayed Transition ( this , ĠChange Bounds () ĊĠĠĠĠĠĠĠĠĠ Ġ. set Interpolator ( Over shoot Interpolator ( 1 f )) ĊĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( 4 0 0 ) ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ Ġcard 2 . isSelected Ġ= Ġ! card 2 . isSelected ĊĠĠĠĠĠ Ġrequest Layout () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Apply Window Insets ( in sets : ĠWindow Insets ): ĠWindow Insets Ġ{ ĊĠĠĠ Ġupdate Padding ( top Ġ= Ġin sets . system Window Inset Top ) ĊĠĠĠ Ġreturn Ġsuper . on Apply Window Insets ( in sets ) ĊĠ Ġ} Ċ } Ċ