/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠD uck Duck Go Ċ Ġ* Ċ Ġ* Ġ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 . duck duck go . mobile . android . vpn . ui . on boarding Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . air bnb . lott ie . Lot tie Animation View Ċ import Ġcom . air bnb . lott ie . Lot tie Composition Factory Ċ import Ġcom . duck duck go . mobile . android . ui . view . g one Ċ import Ġcom . duck duck go . mobile . android . ui . view . show Ċ import Ġcom . duck duck go . mobile . android . vpn . R Ċ Ċ class ĠDevice Shield On boarding Adapter ( val Ġpages : ĠList < Device Shield On boarding ViewModel . On boarding Page >) Ġ: ĠRecyclerView . Adapter < Page ViewHolder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġview Type : ĠInt ĊĠĠĠ Ġ) Ġ= ĠPage ViewHolder ( parent ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġpages . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( ĊĠĠĠĠĠĠĠ Ġholder : ĠPage ViewHolder , ĊĠĠĠĠĠĠĠ Ġposition : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( pages [ position ], Ġposition ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠPage ViewHolder ( parent : ĠViewGroup ) Ġ: ĊĠĠĠ ĠRecyclerView . ViewHolder ( ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . activity _ device _ shield _ on boarding _ page , Ġparent , Ġfalse ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠ Ġprivate Ġval ĠpageTitle : ĠTextView Ġ= ĠitemView . findViewById ( R . id . on boarding _ page _ title ) ĊĠĠĠ Ġprivate Ġval Ġpage Text : ĠTextView Ġ= ĠitemView . findViewById ( R . id . on boarding _ page _ text ) ĊĠĠĠ Ġprivate Ġval Ġon boarding Header : ĠImageView Ġ= ĠitemView . findViewById ( R . id . on boarding _ page _ image ) ĊĠĠĠ Ġprivate Ġval Ġon boarding Animation : ĠL ot tie Animation View Ġ= ĠitemView . findViewById ( R . id . on boarding _ page _ animation ) ĊĠĠĠ Ġprivate Ġval Ġindicator One : ĠImageView Ġ= ĠitemView . findViewById ( R . id . on boarding _ active _ indicator _ one ) ĊĠĠĠ Ġprivate Ġval Ġindicator Two : ĠImageView Ġ= ĠitemView . findViewById ( R . id . on boarding _ active _ indicator _ two ) ĊĠĠĠ Ġprivate Ġval Ġindicator Three : ĠImageView Ġ= ĠitemView . findViewById ( R . id . on boarding _ active _ indicator _ three ) ĊĠĠĠ Ġprivate Ġval Ġindicators : ĠList < ImageView > Ġ= ĠlistOf ( indicator One , Ġindicator Two , Ġindicator Three ) ĊĊĠĠĠ Ġfun Ġbind ( ĊĠĠĠĠĠĠĠ Ġpage : ĠDevice Shield On boarding ViewModel . On boarding Page , ĊĠĠĠĠĠĠĠ Ġposition : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠpageTitle . setText ( page . title ) ĊĠĠĠĠĠĠĠ Ġpage Text . setText ( page . text ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Animation View ( page . image Header ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Animation View ( page . image Header ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Header View ( page . image Header ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġindicators . forEach Ġ{ Ġindicator Image Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindicator Image . setImage Resource ( R . drawable . ic _ inactive _ dot ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġindicators [ position ]. setImage Resource ( R . drawable . ic _ active _ dot ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Animation View ( animation : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon boarding Animation . show () ĊĠĠĠĠĠĠĠ Ġon boarding Header . g one () ĊĊĠĠĠĠĠĠĠ ĠL ot tie Composition Factory . from Raw Res ( item View . context , Ġanimation ) ĊĠĠĠĠĠĠĠ Ġon boarding Animation . set Animation ( animation ) ĊĠĠĠĠĠĠĠ Ġon boarding Animation . play Animation () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Header View ( image : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon boarding Animation . g one () ĊĠĠĠĠĠĠĠ Ġon boarding Header . show () ĊĊĠĠĠĠĠĠĠ Ġon boarding Header . setImage Resource ( image ) ĊĠĠĠ Ġ} Ċ } Ċ