package Ġcom . chrom icle . fold task Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . animation . Animation Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroid . view . animation . Linear Interpolator Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġjava . util .* ĊĊ Ċ class ĠIntro Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġvar Ġintro ViewPager Adapter : ĠIntro ViewPager Adapter ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġmake Ġthe Ġactivity Ġon Ġfull Ġscreen ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ intro ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġhide Ġthe Ġaction Ġbar ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. hide () ĊĊĠĠĠĠĠĠĠ Ġ// Ġinit Ġviews ĊĠĠĠĠĠĠĠ Ġval Ġbtn Get Started Ġ= ĠfindViewById < Button >( R . id . btn _ get _ started ) ĊĠĠĠĠĠĠĠ Ġval Ġtab Indicator Ġ= ĠfindViewById < Tab Layout >( R . id . tab _ indicator ) ĊĊĠĠĠĠĠĠĠ Ġtab Indicator . add On Tab Selected Listener ( object Ġ: ĠTab Layout . On Tab Selected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tab Selected ( tab : ĠTab Layout . Tab ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Indicator . default width ( tab Indicator . selected Tab Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tab Un selected ( tab : ĠTab Layout . Tab ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab Indicator . selected Tab Position Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Indicator . small width ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab Indicator . small width ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tab Re selected ( tab : ĠTab Layout . Tab ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġbtn Anim Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnimation Utils . load Animation ( application Context , ĠR . anim . button _ animation ) Ġas ĠAnimation ĊĊĠĠĠĠĠĠĠ Ġ// Ġfill Ġlist Ġscreen ĊĠĠĠĠĠĠĠ Ġval Ġm List : ĠMutable List < Screen Item > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġm List . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠScreen Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Hello !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Your Ġown Ġprivate ĠCloud Ġis Ġone Ġstep Ġaway ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . art _ cloud , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġm List . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠScreen Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Your Ġprem ium Ġcloud ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Launch Ġyour Ġnext Ġcampaign Ġwithin Ġminutes Ġwith ĠCloud ĠCampaign ĠMonitor .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . art _ work , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġsetup Ġview pager ĊĠĠĠĠĠĠĠ Ġval Ġscreen Pager Ġ= ĠfindViewById < ViewPager >( R . id . screen _ view pager ) ĊĠĠĠĠĠĠĠ Ġintro ViewPager Adapter Ġ= ĠIntro ViewPager Adapter ( this , Ġm List ) ĊĠĠĠĠĠĠĠ Ġscreen Pager . setAdapter ( intro ViewPager Adapter ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġsetup Ġtab layout Ġwith Ġview pager ĊĠĠĠĠĠĠĠ Ġtab Indicator . setup With ViewPager ( screen Pager ) ĊĠĠĠĠĠĠĠ Ġbtn Get Started . set Animation ( btn Anim ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet ĠStarted Ġbutton Ġclick Ġlistener ĊĠĠĠĠĠĠĠ Ġbtn Get Started . setOnClickListener ( View . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Activity Ġ= ĠIntent ( application Context , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( main Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġtab Indicator . default width ( 0 ) ĊĠĠĠĠĠĠĠ Ġtab Indicator . small width ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// small Ġtab Ġwidth ĊĠĠĠ Ġfun ĠTab Layout . small width ( tab Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= Ġ( this . getChild At ( 0 ) Ġas ĠLinearLayout ). getChild At ( tab Position ) Ġas ĠLinearLayout ĊĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= Ġlayout . layout Params Ġas ĠLinearLayout . LayoutParams ĊĠĠĠĠĠĠĠ Ġval Ġm 1 Ġ= ĠValue Animator . of Float ( 1 . 0 f , Ġ 0 . 0 5 f ) Ġ// from Weight , Ġto Weight ĊĠĠĠĠĠĠĠ Ġm 1 . duration Ġ= Ġ 3 0 0 ĊĠĠĠĠĠĠĠ Ġm 1 . start Delay Ġ= Ġ- 2 0 0 Ġ// Optional ĠDelay ĊĊĠĠĠĠĠĠĠ Ġm 1 . interpol ator Ġ= ĠLinear Interpolator () ĊĠĠĠĠĠĠĠ Ġm 1 . add Update Listener Ġ{ Ġanimation Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( layout . get LayoutParams () Ġas ĠLinearLayout . LayoutParams ). weight Ġ= Ġanimation . animated Value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout . request Layout () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm 1 . start () ĊĠĠĠĠĠĠĠ Ġlayout Params . set Margins ( 1 0 , Ġ 0 , Ġ 1 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġlayout . layout Params Ġ= Ġlayout Params ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġdefault Ġwidth ĊĠĠĠ Ġfun ĠTab Layout . default width ( tab Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= Ġ( this . getChild At ( 0 ) Ġas ĠLinearLayout ). getChild At ( tab Position ) Ġas ĠLinearLayout ĊĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= Ġlayout . layout Params Ġas ĠLinearLayout . LayoutParams ĊĠĠĠĠĠĠĠ Ġval Ġm 1 Ġ= ĠValue Animator . of Float ( 0 . 0 5 f , 1 f ) Ġ// from Weight , Ġto Weight ĊĠĠĠĠĠĠĠ Ġm 1 . duration Ġ= Ġ 3 0 0 ĊĠĠĠĠĠĠĠ Ġm 1 . start Delay Ġ= Ġ- 2 0 0 Ġ// Optional ĠDelay ĊĊĠĠĠĠĠĠĠ Ġm 1 . interpol ator Ġ= ĠLinear Interpolator () ĊĠĠĠĠĠĠĠ Ġm 1 . add Update Listener Ġ{ Ġanimation Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( layout . get LayoutParams () Ġas ĠLinearLayout . LayoutParams ). weight Ġ= Ġanimation . animated Value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout . request Layout () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm 1 . start () ĊĠĠĠĠĠĠĠ Ġlayout Params . set Margins ( 1 0 , Ġ 0 , Ġ 1 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġlayout . layout Params Ġ= Ġlayout Params ĊĠĠĠ Ġ} Ċ } Ċ