package Ġcom . mr spd . let sch ats Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . Window Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . view . animation . Animation Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġcom . google . android . material . tabs . Tab Layout . Base On Tab Selected Listener Ċ import Ġcom . mr spd . let sch ats . models . Screen Item Ċ import Ġcom . mr spd . let sch ats . ui . main Activity . MainActivity Ċ import Ġkotlinx . android . synt hetic . main . activity _ walk _ through .* Ċ import Ġjava . util .* ĊĊ Ċ class ĠWalk Through Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġvar Ġintro ViewPager Adapter : ĠIntro ViewPager Adapter ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġposition Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġbtn Anim : ĠAnimation ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġmake Ġthe Ġactivity Ġon Ġfull Ġscreen ĊĠĠĠĠĠĠĠ Ġrequest Window Feature ( Window . FEATURE _ NO _ TITLE ) ĊĠĠĠĠĠĠĠ Ġwindow . set Flags ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN ĊĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen Ġthis Ġactivity Ġis Ġabout Ġto Ġbe Ġlaunch Ġwe Ġneed Ġto Ġcheck Ġif Ġits Ġopen ened Ġbefore Ġor Ġnot ĊĠĠĠĠĠĠĠ Ġif Ġ( restore Pref Data ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Activity Ġ= ĠIntent ( application Context , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( main Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ walk _ through ) ĊĊĊĠĠĠĠĠĠĠ Ġ// Ġini Ġviews ĊĠĠĠĠĠĠĠ Ġbtn Anim Ġ= ĠAnimation Utils . load Animation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . button _ animation ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġfill Ġlist Ġscreen ĊĠĠĠĠĠĠĠ Ġval Ġm List : ĠMutable List < Screen Item > Ġ= ĠArrayList < Screen Item >() ĊĠĠĠĠĠĠĠ Ġm List . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠScreen Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" One Ġto ĠOne ĠChat ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Chat Ġwith Ġyour Ġfre inds Ġwith Ġsimple Ġand Ġsecure Ġreal time Ġmessaging ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ und raw _ chat ting _ 2 y vo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġm List . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠScreen Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Share ĠFiles ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Send Ġphotos , Ġvideos Ġ, Ġaud ios Ġinstant ly Ġto Ġyour Ġfre inds ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ und raw _ online _ connection _ 6 7 7 8 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġm List . add ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠScreen Item ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Group ĠChat ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Create Ġgroups Ġand Ġadd Ġmore Ġfre inds Ġto Ġincrease Ġyour Ġconnection . ĠNo Ġlimits Ġon Ġthe Ġsize Ġof Ġgroup Ġch ats .", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ und raw _ group _ chat _ un wm Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġm List . add ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠScreen Item ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Be autiful ĠCamera ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Express Ġyourself Ġwith Ġyour Ġbeautiful Ġself ies Ġand Ġconnect Ġwith Ġfriends ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ und raw _ self ie _ time _ c ws 4 Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġm List . add ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠScreen Item ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Aug ment ed ĠRe ality ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Use Ġthe Ġpower Ġof Ġaugment ed Ġreality Ġto Ġbring Ġyour Ġdream Ġworld Ġin front Ġof Ġyou ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ar self ie _ card _ icon Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġm List . add ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠScreen Item ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Audio Ġand ĠVideo ĠCalls ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Call Ġyour Ġfre inds Ġand Ġfamily Ġfree Ġ( Y et Ġto Ġimplement )", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ und raw _ group _ hang out _ 5 g mq Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġm List . add ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠScreen Item ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Live ĠStreaming ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" En joy ĠLive Ġstreaming Ġby Ġyou Ġor Ġyour Ġfriends ", ĠR . drawable . ic _ und raw _ youtube _ tutorial _ 2 gn 3 Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġsetup Ġ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 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġnext Ġbutton Ġclick ĠList ner ĊĠĠĠĠĠĠĠ Ġbtn _ next . setOnClickListener ( View . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ= Ġscreen Pager . getCurrent Item () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġm List . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Pager . setCurrent Item ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġm List . size Ġ- Ġ 1 ) Ġ{ Ġ// Ġwhen Ġwe Ġre ch Ġto Ġthe Ġlast Ġscreen ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO Ġ: Ġshow Ġthe ĠGET STARTED ĠButton Ġand Ġhide Ġthe Ġindicator Ġand Ġthe Ġnext Ġbutton ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo add Last Screen () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// Ġtab layout Ġadd Ġchange Ġlistener ĊĠĠĠĠĠĠĠ Ġtab Indicator . add On Tab Selected Listener ( object Ġ: ĠBase On Tab Selected Listener < Tab Layout . Tab ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tab Selected ( tab : ĠTab Layout . Tab ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab !!. position Ġ== Ġm List . size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo add Last Screen () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tab Un selected ( tab : ĠTab Layout . Tab ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tab Re selected ( tab : ĠTab Layout . Tab ?) Ġ{} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠĠĠĠĠ Ġ// ĠGet ĠStarted Ġbutton Ġclick Ġlistener ĊĠĠĠĠĠĠĠ Ġbtn _ get _ started . setOnClickListener ( View . OnClickListener Ġ{ Ġ// open Ġmain Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Activity Ġ= ĠIntent ( application Context , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( main Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġalso Ġwe Ġneed Ġto Ġsave Ġa Ġboolean Ġvalue Ġto Ġstorage Ġso Ġnext Ġtime Ġwhen Ġthe Ġuser Ġrun Ġthe Ġapp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwe Ġcould Ġknow Ġthat Ġhe Ġis Ġalready Ġchecked Ġthe Ġintro Ġscreen Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġi 'm Ġgoing Ġto Ġuse Ġshared Ġpreferences Ġto Ġthat Ġprocess ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Prefs Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// Ġskip Ġbutton Ġclick Ġlistener ĊĠĠĠĠĠĠĠ Ġtv _ skip . setOnClickListener ( View . OnClickListener Ġ{ Ġscreen Pager . setCurrent Item ( m List . size ) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrestore Pref Data (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpref Ġ= Ġapplication Context . get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" my Prefs ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġpref . getBoolean (" is Intro Op n end ", Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Prefs Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpref Ġ= Ġapplication Context . get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" my Prefs ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġpref . edit () ĊĠĠĠĠĠĠĠ Ġeditor . put Boolean (" is Intro Op n end ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġeditor . commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġshow Ġthe ĠGET STARTED ĠButton Ġand Ġhide Ġthe Ġindicator Ġand Ġthe Ġnext Ġbutton ĊĠĠĠ Ġprivate Ġfun Ġlo add Last Screen () Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn _ next !!. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġbtn _ get _ started !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtv _ skip !!. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġtab Indicator !!. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ// ĠTODO Ġ: ĠADD Ġan Ġanimation Ġthe Ġget started Ġbutton ĊĠĠĠĠĠĠĠ Ġ// Ġsetup Ġanimation ĊĠĠĠĠĠĠĠ Ġbtn _ get _ started !!. animation Ġ= Ġbtn Anim ĊĠĠĠ Ġ} Ċ }