package Ġuk . ac . k cl . spider byte . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . view . Pager Adapter Ċ import Ġandroid . support . v 4 . view . ViewPager Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . text . Html Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġuk . ac . k cl . spider byte . Main Application Ċ import Ġuk . ac . k cl . spider byte . R Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠD imit ris Ġon Ġ 1 8 / 0 3 / 2 0 1 8 . Ċ Ġ* Ċ Ġ* ĠCreates Ġthe Ġintro duct ory ĠWelcome Ġtutorial Ċ Ġ*/ Ċ class ĠWelcome Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġview Pager : ĠView Pager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmy ViewPager Adapter : ĠMy ViewPager Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdots Layout : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdots : ĠArray < TextView ?> Ġ= ĠarrayOf Null s ( 4 ) ĊĠĠĠ Ġprivate Ġvar Ġlayouts : ĠInt Array ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbtn Skip : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbtn Next : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpref Manager : ĠPref Manager ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĉ ViewPager Ġchange Ġlistener ĊĠĠĠ Ġinternal Ġvar Ġview Pager Page ChangeListener : ĠView Pager . On Page ChangeListener Ġ= Ġobject Ġ: ĠView Pager . On Page ChangeListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Bottom Dot s ( position ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠChanging Ġthe Ġnext Ġbutton Ġtext Ġ' NEXT ' Ġ/ Ġ' G OT ĠIT ' ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġlayouts !!. size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLast Ġpage . Ġmake Ġbutton Ġtext Ġto ĠG OT ĠIT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Next !!. text Ġ= ĠgetString ( R . string . start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Skip !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠStill Ġpages Ġare Ġleft ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Next !!. text Ġ= ĠgetString ( R . string . next ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Skip !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( arg 0 : ĠInt , Ġarg 1 : ĠFloat , Ġarg 2 : ĠInt ){} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( arg 0 : ĠInt ) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param ĠsavedInstanceState Ġ: ĠBundle , Ġsaved Ġinstance Ġof Ġprevious Ġstate Ġof Ġthe Ġfragment ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠChecking Ġfor Ġfirst Ġtime Ġlaunch Ġ- Ġbefore Ġcalling ĠsetContentView () ĊĠĠĠĠĠĠĠ Ġpref Manager Ġ= ĠPref Manager ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! pref Manager !!. is First Time Launch ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Home Screen () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠMaking Ġnotification Ġbar Ġtransparent ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ welcome ) ĊĊĠĠĠĠĠĠĠ Ġview Pager Ġ= ĠfindViewById ( R . id . view _ pager ) Ġas ĠView Pager ? ĊĠĠĠĠĠĠĠ Ġdots Layout Ġ= ĠfindViewById ( R . id . layout Dot s ) Ġas ĠLinearLayout ? ĊĠĠĠĠĠĠĠ Ġbtn Skip Ġ= ĠfindViewById ( R . id . btn _ skip ) Ġas ĠButton ? ĊĠĠĠĠĠĠĠ Ġbtn Next Ġ= ĠfindViewById ( R . id . btn _ next ) Ġas ĠButton ? ĊĊĊĠĠĠĠĠĠĠ Ġ// ĠLayout s Ġof Ġall Ġwelcome Ġsl iders ĊĠĠĠĠĠĠĠ Ġlayouts Ġ= Ġint ArrayOf ( R . layout . welcome _ slide 1 , ĠR . layout . welcome _ slide 2 , ĠR . layout . welcome _ slide 3 , ĠR . layout . welcome _ slide 4 , ĠR . layout . welcome _ slide 5 , ĠR . layout . welcome _ slide 6 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdding Ġbottom Ġdots ĊĠĠĠĠĠĠĠ Ġadd Bottom Dot s ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠMaking Ġnotification Ġbar Ġtransparent ĊĠĠĠĠĠĠĠ Ġchange StatusBar Color () ĊĊĠĠĠĠĠĠĠ Ġmy ViewPager Adapter Ġ= ĠMy ViewPager Adapter () ĊĠĠĠĠĠĠĠ Ġview Pager !!. adapter Ġ= Ġmy ViewPager Adapter ĊĠĠĠĠĠĠĠ Ġview Pager !!. add On Page ChangeListener ( view Pager Page ChangeListener ) ĊĊĠĠĠĠĠĠĠ Ġbtn Skip !!. setOnClickListener Ġ{ Ġlaunch Home Screen () Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn Next !!. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠChecking Ġfor Ġlast Ġpage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġlast Ġpage Ġhome Ġscreen Ġwill Ġbe Ġlaunched ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= ĠgetItem (+ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Ġ< Ġlayouts !!. size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMove Ġto Ġnext Ġscreen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Pager !!. currentItem Ġ= Ġcurrent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Home Screen () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġdots Ġto Ġtrack Ġthe Ġcurrent Ġpage ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠcurrentPage : ĠGets Ġthe Ġposition Ġof Ġthe Ġcurrent Ġpage ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġadd Bottom Dot s ( currentPage : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdots Ġ= ĠarrayOf Null s ( layouts !!. size ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcolors Active Ġ= Ġresources . getInt Array ( R . array . array _ dot _ active ) ĊĠĠĠĠĠĠĠ Ġval Ġcolors Inactive Ġ= Ġresources . getInt Array ( R . array . array _ dot _ inactive ) ĊĊĠĠĠĠĠĠĠ Ġdots Layout !!. removeAll Views () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. dots . size - 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdots [ i ] Ġ= ĠTextView ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdots [ i ] !!. text Ġ= ĠHtml . from Html (" &# 8 2 2 6 ; ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdots [ i ] !!. text Size Ġ= Ġ 3 5 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdots [ i ] !!. setTextColor ( colors Inactive [ currentPage ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdots Layout !!. addView ( dots [ i ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( dots . size Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdots [ currentPage ] !!. setTextColor ( colors Active [ currentPage ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġi Ġ: ĠCurrent Ġitem ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠgetItem ( i : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġview Pager !!. currentItem Ġ+ Ġi ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlaunch Home Screen () Ġ{ ĊĠĠĠĠĠĠĠ Ġpref Manager !!. is First Time Launch Ġ= Ġfalse ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ Welcome Activity , ĠLogin Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMaking Ġnotification Ġbar Ġtransparent ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġchange StatusBar Color () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġwindow ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . status Bar Color Ġ= ĠColor . TRANSP ARENT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠView Ġpager Ġadapter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinner Ġclass ĠMy ViewPager Adapter Ġ: ĠP ager Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġlayout Inflater : ĠLayoutInflater ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontainer ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġposition ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinstantiate Item ( container : ĠViewGroup , Ġposition : ĠInt ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Inflater Ġ= Ġget System Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġlayout Inflater !!. inflate ( layouts ! ![ position ], Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . addView ( view ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġlayouts . size ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlayouts !!. size ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġview ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġobj ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠBoolean ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġis View From Object ( view : ĠView , Ġobj : ĠAny ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġview Ġ=== Ġobj ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcontainer ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġposition ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġobject ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdestroy Item ( container : ĠViewGroup , Ġposition : ĠInt , Ġ` object `: ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġ` object ` Ġas ĠView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer . remove View ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ