package Ġcom . lo dz . android . agile dev kt . modules . rv . snap Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . lo dz . android . agile dev kt . R Ċ import Ġcom . lo dz . android . agile dev kt . bean . N ation Bean Ċ import Ġcom . lo dz . android . agile dev kt . config . Constant Ċ import Ġcom . lo dz . android . agile dev kt . databinding . Activity Snap Binding Ċ import Ġcom . lo dz . android . agile dev kt . modules . main . MainActivity Ċ import Ġcom . lo dz . android . pand ora . base . activity . Base Activity Ċ import Ġcom . lo dz . android . pand ora . utils . view binding . binding Layout Ċ import Ġcom . lo dz . android . pand ora . widget . rv . snap . Tab Pager Snap Helper Ċ import Ġcom . lo dz . android . pand ora . widget . rv . snap . ViewPager Snap Helper Ċ Ċ /** Ċ Ġ* ĠR v Snap æµĭè¯ķ ç±» Ċ Ġ* ĠCreated Ġby Ġz hou L Ġon Ġ 2 0 1 8 / 1 2 / 3 . Ċ Ġ*/ Ċ class ĠSnap Rv Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠSnap Rv Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ åĽ½ æĹ Ĺ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠN ATION _ IM GS Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠ ĠConstant . CH N _ FLAG _ URL , ĊĠĠĠĠĠĠĠ ĠConstant . USA _ FLAG _ URL , ĊĠĠĠĠĠĠĠ ĠConstant . R US _ FLAG _ URL , ĊĠĠĠĠĠĠĠ ĠConstant . J PN _ FLAG _ URL , ĊĠĠĠĠĠĠĠ ĠConstant . K OR _ FLAG _ URL , ĊĠĠĠĠĠĠĠ ĠConstant . A US _ FLAG _ URL , ĊĠĠĠĠĠĠĠ ĠConstant . UK R _ FLAG _ URL , ĊĠĠĠĠĠĠĠ ĠConstant . PR K _ FLAG _ URL , ĊĠĠĠĠĠĠĠ ĠConstant . BR A _ FLAG _ URL ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** Ġ åĲįç§° Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠN ATION _ NAMES Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ä¸ŃåĽ½ ", Ġ" ç¾İåĽ½ ", Ġ" ä¿ Ħ ç½Ĺ æĸ¯ ", Ġ" æĹ¥æľ¬ ", Ġ" éŁ © åĽ½ ", Ġ" æ ¾ ³ å¤§ åĪ© äºļ ", Ġ" ä¹ Į åħĭ åħ° ", Ġ" æľ Ŀ é² ľ ", Ġ" å·´ è¥¿ " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** Ġ ç¼© åĨĻ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠN ATION _ CODES Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" CH N ", Ġ" USA ", Ġ" R US ", Ġ" J PN ", Ġ" K OR ", Ġ" A US ", Ġ" UK R ", Ġ" PR K ", Ġ" BR A " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġval Ġm Binding : ĠActivity Snap Binding Ġby Ġbinding Layout ( Activity Snap Binding :: inflate ) ĊĊĠĠĠ Ġoverride Ġfun Ġget View Binding Layout (): ĠView Ġ= Ġm Binding . root ĊĊĠĠĠ Ġoverride Ġfun Ġfind Views ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Title Bar Layout (). setTitle Name ( intent . getString Extra ( MainActivity . EXTRA _ TITLE _ NAME ) Ġ?: Ġ"") ĊĠĠĠĠĠĠĠ Ġinit Tab () ĊĠĠĠĠĠĠĠ Ġinit Pager () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Tab () Ġ{ ĊĠĠĠĠĠĠĠ ĠN ATION _ NAMES . forEach Indexed Ġ{ Ġindex , Ġname Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . tab Layout . add Tab ( m Binding . tab Layout . new Tab (). setText ( name ), Ġindex Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinit Tab RecyclerView () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Tab RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠLinearLayoutManager ( getContext ()) ĊĠĠĠĠĠĠĠ Ġlayout Manager . orientation Ġ= ĠRecyclerView . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠSnap Adapter ( getContext ()) ĊĠĠĠĠĠĠĠ Ġm Binding . tab Rv . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġm Binding . tab Rv . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġm Binding . tab Rv . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġval Ġsnap Helper Ġ= ĠTab Pager Snap Helper ( 0 ) ĊĠĠĠĠĠĠĠ Ġsnap Helper . attach To RecyclerView ( m Binding . tab Rv ) ĊĠĠĠĠĠĠĠ Ġsnap Helper . setup With Tab Layout ( m Binding . tab Layout ) ĊĊĠĠĠĠĠĠĠ Ġadapter . setData ( getN ation List ()) ĊĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Pager () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠLinearLayoutManager ( getContext ()) ĊĠĠĠĠĠĠĠ Ġlayout Manager . orientation Ġ= ĠRecyclerView . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠSnap Adapter ( getContext ()) ĊĠĠĠĠĠĠĠ Ġm Binding . pager Rv . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġm Binding . pager Rv . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġm Binding . pager Rv . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġval Ġsnap Helper Ġ= ĠView Pager Snap Helper ( 0 ) ĊĠĠĠĠĠĠĠ Ġsnap Helper . attach To RecyclerView ( m Binding . pager Rv ) ĊĠĠĠĠĠĠĠ Ġsnap Helper . setOn Page ChangeListener Ġ{ Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . page Tv . text Ġ= ĠgetString ( R . string . r vs nap _ page , Ġ( position Ġ+ Ġ 1 ). toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġadapter . setData ( getN ation List ()) ĊĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġm Binding . page Tv . text Ġ= ĠgetString ( R . string . r vs nap _ page , Ġ" 1 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick Back Btn () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onClick Back Btn () ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Data () ĊĠĠĠĠĠĠĠ Ġshow Status Completed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget N ation List (): ĠArrayList < N ation Bean > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠArrayList < N ation Bean >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin ĠN ATION _ IM GS . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbean Ġ= ĠN ation Bean () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbean . img Url Ġ= ĠN ATION _ IM GS [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbean . name Ġ= ĠN ATION _ NAMES [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbean . code Ġ= ĠN ATION _ CODES [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( bean ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} Ċ Ċ }