package Ġcom . f eng y ong ge . wan android client . activity Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . fragment . app . Fragment Pager Adapter Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . alibaba . android . ar outer . facade . annotation . Route Ċ import Ġcom . f eng y ong ge . android common utils . kt utils . SharedPreferences Utils Ċ import Ġcom . f eng y ong ge . base component . app . Base Application Ċ import Ġcom . f eng y ong ge . base component . constant . Router Manage Const Ċ import Ġcom . f eng y ong ge . wan android client . App Ċ import Ġcom . f eng y ong ge . wan android client . R Ċ import Ġcom . f eng y ong ge . wan android client . common . dialog . Agreement Dialog Ċ import Ġcom . f eng y ong ge . wan android client . fragment .* Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ /** Ċ Ġ* Ġdescribe Ċ Ġ* Ċ Ġ* Ġ@ author Ġf eng y ong ge ( f eng y ong ge 9 8 @ gmail . com ) Ċ Ġ* Ġ@ version ĠV 1 . 0 Ċ Ġ* Ġ@ date Ġ 2 0 2 0 / 0 9 / 0 8 Ċ Ġ*/ Ċ @ Route ( path Ġ= ĠRouter Manage Const . APP _ HOME PAGE ) Ċ class ĠMainActivity Ġ: Ġcom . f eng y ong ge . base framework . Base Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtab : ĠTab Layout . Tab ĊĠĠĠ Ġprivate Ġval Ġtitle List Ġ= Ġmutable ListOf < String >() ĊĠĠĠ Ġprivate Ġval Ġicon List Ġ= Ġmutable ListOf < ImageView >() ĊĠĠĠ Ġprivate Ġval ĠtextView List Ġ= Ġmutable ListOf < TextView >() ĊĠĠĠ Ġprivate Ġval Ġfragment List Ġ= Ġmutable ListOf < Fragment >() ĊĊĠĠĠ Ġoverride Ġfun Ġinit Layout (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . activity _ main ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ ĠSharedPreferences Utils ( Base Application . get AppContext ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! get (" is Show ", false )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Agreement () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġview Pager Adapter Ġ= ĠMy Fragment Pager Adapter ( support FragmentManager , Ġfragment List ) ĊĠĠĠĠĠĠĠ Ġview Pager . adapter Ġ= Ġview Pager Adapter ĊĠĠĠĠĠĠĠ Ġtab layout . setup With ViewPager ( view Pager ) ĊĠĠĠĠĠĠĠ Ġset Custom View ( title List ) ĊĠĠĠĠĠĠĠ Ġview Pager . off screen Page Limit Ġ= Ġ 5 ĊĊĠĠĠĠĠĠĠ Ġview Pager . add On Page ChangeListener ( object Ġ: ĠView Pager . On Page ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Offset : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Offset Pixels : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġread Agreement (){ ĊĠĠĠĠĠĠĠ Ġval Ġagreement Dialog Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAgreement Dialog ( MainActivity @ this , Ġobject Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAgreement Dialog . Animation Dialog EventListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclick Animation View ( view : ĠView ?, Ġvar arg Ġpar ames : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Content Ġ= Ġpar ames [ 0 ] Ġas ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dialog Content Ġ== Ġ" c anc le ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexit App () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( dialog Content Ġ== Ġ" confirm ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSharedPreferences Utils ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Application . get AppContext () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . put (" is Show ", true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġagreement Dialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠ Ġagreement Dialog . set Canceled On Touch Outside ( false ) ĊĠĠĠĠĠĠĠ Ġagreement Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle List . clear () ĊĠĠĠĠĠĠĠ Ġtitle List . add (" é¦ĸé¡µ ") ĊĠĠĠĠĠĠĠ Ġtitle List . add (" åħ¬ ä¼Ĺ åı· ") ĊĠĠĠĠĠĠĠ Ġtitle List . add (" å¹¿ åľº ") ĊĠĠĠĠĠĠĠ Ġtitle List . add (" å¼Ģ çľ¼ ") ĊĠĠĠĠĠĠĠ Ġtitle List . add (" æĪĳçļĦ ") ĊĠĠĠĠĠĠĠ Ġfragment List . clear () ĊĠĠĠĠĠĠĠ Ġfragment List . add ( HomePage Fragment ()) ĊĠĠĠĠĠĠĠ Ġfragment List . add ( Wx Account Fragment ()) ĊĠĠĠĠĠĠĠ Ġfragment List . add ( Square Fr agement ()) ĊĠĠĠĠĠĠĠ Ġfragment List . add ( Open Eye Fragment ()) ĊĠĠĠĠĠĠĠ Ġfragment List . add ( My Fragment ()) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 0 ]. setImage Resource ( R . drawable . ic _ homepage _ fill ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 1 ]. setImage Resource ( R . drawable . ic _ wx account ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 2 ]. setImage Resource ( R . drawable . ic _ square ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 3 ]. setImage Resource ( R . drawable . ic _ open eye ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 4 ]. setImage Resource ( R . drawable . ic _ my ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 0 ]. setImage Resource ( R . drawable . ic _ homepage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 1 ]. setImage Resource ( R . drawable . ic _ wx account _ fill ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 2 ]. setImage Resource ( R . drawable . ic _ square ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 3 ]. setImage Resource ( R . drawable . ic _ open eye ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 4 ]. setImage Resource ( R . drawable . ic _ my ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 0 ]. setImage Resource ( R . drawable . ic _ homepage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 1 ]. setImage Resource ( R . drawable . ic _ wx account ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 2 ]. setImage Resource ( R . drawable . ic _ square _ fill ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 3 ]. setImage Resource ( R . drawable . ic _ open eye ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 4 ]. setImage Resource ( R . drawable . ic _ my ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 0 ]. setImage Resource ( R . drawable . ic _ homepage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 1 ]. setImage Resource ( R . drawable . ic _ wx account ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 2 ]. setImage Resource ( R . drawable . ic _ square ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 3 ]. setImage Resource ( R . drawable . ic _ open eye _ fill ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 4 ]. setImage Resource ( R . drawable . ic _ my ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 0 ]. setImage Resource ( R . drawable . ic _ homepage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 1 ]. setImage Resource ( R . drawable . ic _ wx account ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 2 ]. setImage Resource ( R . drawable . ic _ square ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 3 ]. setImage Resource ( R . drawable . ic _ open eye ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon List [ 4 ]. setImage Resource ( R . drawable . ic _ my _ fill ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetDefault () Ġ{ ĊĠĠĠĠĠĠĠ Ġicon List [ 0 ]. setImage Resource ( R . drawable . ic _ homepage _ fill ) ĊĠĠĠĠĠĠĠ Ġicon List [ 1 ]. setImage Resource ( R . drawable . ic _ wx account ) ĊĠĠĠĠĠĠĠ Ġicon List [ 2 ]. setImage Resource ( R . drawable . ic _ square ) ĊĠĠĠĠĠĠĠ Ġicon List [ 3 ]. setImage Resource ( R . drawable . ic _ open eye ) ĊĠĠĠĠĠĠĠ Ġicon List [ 4 ]. setImage Resource ( R . drawable . ic _ my ) ĊĠĠĠĠĠĠĠ ĠtextView List [ 0 ]. text Ġ= Ġtitle List [ 0 ] ĊĠĠĠĠĠĠĠ ĠtextView List [ 1 ]. text Ġ= Ġtitle List [ 1 ] ĊĠĠĠĠĠĠĠ ĠtextView List [ 2 ]. text Ġ= Ġtitle List [ 2 ] ĊĠĠĠĠĠĠĠ ĠtextView List [ 3 ]. text Ġ= Ġtitle List [ 3 ] ĊĠĠĠĠĠĠĠ ĠtextView List [ 4 ]. text Ġ= Ġtitle List [ 4 ] ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġclass ĠMy Fragment Pager Adapter Ġ: ĠFragment Pager Adapter Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġfragment List Ġ= Ġmutable ListOf < Fragment >() ĊĊĠĠĠĠĠĠĠ Ġconstructor ( fm : ĠFragment Manager , Ġfragment List : ĠMutable List < Fragment >) Ġ: Ġsuper ( fm ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . fragment List Ġ= Ġfragment List ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment List [ position ] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġfragment List . size ; ĊĊĠĠĠ Ġ} ĊĊĠĠ Ġprivate Ġfun Ġset Custom View ( title List : ĠList < String >) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin Ġtitle List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Ġ= Ġtab layout . get Tab At ( index ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġview Ġ= ĠLayoutInflater . from ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . activity _ bottom _ custom view , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġiv Tab Icon Ġ= Ġview . findViewById < ImageView >( R . id . iv Tab Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv Tab Title Ġ= Ġview . findViewById < TextView >( R . id . tv Tab Title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon List . add ( iv Tab Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView List . add ( tv Tab Title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab . custom View Ġ= Ġview ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠsetDefault (); ĊĠĠĠ Ġ} ĊĊ Ċ } ĊĊ