package Ġcom . v ictor dev . poke group . Views čĊč Ċ import Ġandroid . annotation . Suppress Lint č Ċ import Ġandroid . content . Context č Ċ import Ġandroid . content . Intent č Ċ import Ġandroid . content . pm . Package Info č Ċ import Ġandroid . content . pm . PackageManager č Ċ import Ġandroid . graphics . Type face č Ċ import Ġandroid . os . Build č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . os . Count Down Timer č Ċ import Ġandroid . util . Base 6 4 č Ċ import Ġandroid . util . Log č Ċ 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 Ġandroidx . core . content . Context Compat č Ċ import Ġcom . google . firebase . auth . Firebase Auth č Ċ import Ġcom . google . firebase . dynamic links . Firebase Dynamic Links č Ċ import Ġcom . v ictor dev . poke group . R č Ċ import Ġcom . v ictor dev . poke group . utils . App č Ċ import Ġcom . v ictor dev . poke group . utils . Utils č Ċ import Ġkotlinx . android . synt hetic . main . activity _ splash _ screen .* č Ċ import Ġretrofit 2 . Ret rofit č Ċ import Ġtim ber . log . Tim ber č Ċ import Ġjava . security . Message Digest č Ċ import Ġjava . security . NoSuch AlgorithmException č Ċ import Ġjavax . inject . Inject čĊčĊč Ċ class ĠSpl ash Screen Ġ: ĠAppCompatActivity () Ġ{ čĊĠĠĠ Ġ// var able Ġde Ġcon exion čĊĠĠĠ Ġvar Ġcon exion : ĠBoolean ? Ġ= Ġfalse čĊĠĠĠ Ġ@ Inject čĊĠĠĠ Ġlateinit Ġvar Ġretrofit : ĠRet rofit čĊĠĠĠ Ġ@ Inject čĊĠĠĠ Ġlateinit Ġvar Ġfunc iones : ĠUtils čĊĠĠĠ Ġprivate Ġvar Ġcontext o : ĠContext ? Ġ= Ġnull čĊĠĠĠ Ġval Ġapp Ġ= ĠApp () čĊĠĠĠ Ġvar Ġsmall to big : ĠAnimation ? Ġ= Ġnull čĊĠĠĠ Ġvar Ġf left : Animation ? Ġ= Ġnull čĊĠĠĠ Ġvar Ġf helper : Animation ? Ġ= Ġnull čĊĠĠĠ Ġinternal Ġval ĠSPL ASH _ TIME _ OUT Ġ= Ġ 5 0 0 0 čĊĠĠĠ Ġprivate Ġvar Ġtimer : ĠCount Down Timer ? Ġ= Ġnull čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ Ġ// SOL IC IT AR ĠP ANT ALL A ĠCOMP LE TA čĊĠĠĠĠĠĠĠ Ġrequest Window Feature ( Window . FEATURE _ NO _ TITLE ) čĊĠĠĠĠĠĠĠ Ġwindow . set Flags ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN , čĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ FULL SCREEN čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ splash _ screen ) čĊčĊĠĠĠĠĠĠĠ Ġcontext o Ġ= Ġthis čĊĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp . get Net Component ( Utils (). decrypt ( Utils (). URL _ PRE FI JO ), Ġcontext o !! , Ġthis ) !!. inject ( this ) čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println (" Error : Ġ$ e ") čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġsmall to big Ġ= ĠAnimation Utils . load Animation ( this , ĠR . anim . small to big ) čĊĠĠĠĠĠĠĠ Ġf left Ġ= ĠAnimation Utils . load Animation ( this , ĠR . anim . f left ) čĊĠĠĠĠĠĠĠ Ġf helper Ġ= ĠAnimation Utils . load Animation ( this , ĠR . anim . f helper ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġlog ox Ġ= ĠType face . createFrom Asset ( assets , Ġ" font / F red ok a . ttf ") čĊĠĠĠĠĠĠĠ Ġval Ġm light Ġ= ĠType face . createFrom Asset ( assets , Ġ" font / Mont serrat Light . ttf ") čĊĠĠĠĠĠĠĠ Ġval Ġm medium Ġ= ĠType face . createFrom Asset ( assets , Ġ" font / Mont serrat Medium . ttf ") čĊĠĠĠĠĠĠĠ Ġval Ġm regular Ġ= ĠType face . createFrom Asset ( assets , Ġ" font / Mont serrat Regular . ttf ") čĊčĊĠĠĠĠĠĠĠ Ġiv Logo . type face Ġ= Ġlog ox čĊĠĠĠĠĠĠĠ Ġiv Subtitle . type face Ġ= Ġm light čĊĠĠĠĠĠĠĠ Ġiv Btn . type face Ġ= Ġm medium čĊčĊĠĠĠĠĠĠĠ Ġiv Splash . start Animation ( small to big ) čĊĠĠĠĠĠĠĠ Ġiv Splash Bottom . start Animation ( small to big ) čĊčĊĠĠĠĠĠĠĠ Ġiv Logo . translation X Ġ= Ġ 4 0 0 f čĊĠĠĠĠĠĠĠ Ġiv Subtitle . translation X Ġ= Ġ 4 0 0 f čĊĠĠĠĠĠĠĠ Ġiv Btn . translation X Ġ= Ġ 4 0 0 f čĊčĊĠĠĠĠĠĠĠ Ġiv Logo . alpha Ġ= Ġ 0 f čĊĠĠĠĠĠĠĠ Ġiv Subtitle . alpha Ġ= Ġ 0 f čĊĠĠĠĠĠĠĠ Ġiv Btn . alpha Ġ= Ġ 0 f čĊčĊĠĠĠĠĠĠĠ Ġiv Logo . animate (). translation X ( 0 f ). alpha ( 1 f ). set Duration ( 8 0 0 ). set Start Delay ( 5 0 0 ). start () čĊĠĠĠĠĠĠĠ Ġiv Subtitle . animate (). translation X ( 0 f ). alpha ( 1 f ). set Duration ( 8 0 0 ). set Start Delay ( 7 0 0 ). start () čĊĠĠĠĠĠĠĠ Ġiv Btn . animate (). translation X ( 0 f ). alpha ( 1 f ). set Duration ( 8 0 0 ). set Start Delay ( 9 0 0 ). start () čĊčĊĠĠĠĠĠĠĠ ĠUtils . mode Dark Ġ= ĠUtils (). is dark ( context o !! ) čĊĠĠĠĠĠĠĠ ĠUtils . is First Load Ġ= ĠUtils (). is loaded ( context o !! ) čĊĠĠĠĠĠĠĠ Ġmode Dark () čĊĠĠĠĠĠĠĠ Ġtimer () čĊĠĠĠĠĠĠ Ġ// Ġget Hash () čĊĠĠĠĠĠĠĠ ĠFirebase Dynamic Links . getInstance (). get Dynamic Link ( intent ). add On Failure Listener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġerror čĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( it ) čĊĠĠĠĠĠĠĠ Ġ}. add On Success Listener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdeep Ġlink čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it . link ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") čĊĠĠĠ Ġfun Ġmode Dark (){ čĊčĊĠĠĠĠĠĠĠ Ġif ( Utils . mode Dark ){ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Splash . set BackgroundColor ( Context Compat . getColor ( context o !! , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . neg ro _ graf ito čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Splash Bottom . set BackgroundColor ( Context Compat . getColor ( context o !! , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . neg ro _ graf ito čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ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 Ġ= ĠContext Compat . getColor ( context o !! , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . neg ro _ graf ito čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} else { čĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Splash . set BackgroundColor ( Context Compat . getColor ( context o !! , ĠR . color . bl anco )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Splash Bottom . set BackgroundColor ( Context Compat . getColor ( context o !! , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . red ball čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ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 Ġ= ĠContext Compat . getColor ( context o !! , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . color Primary Dark čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊĠĠĠ Ġ// ob ti ene Ġel Ġhash Ġpara Ġfacebook čĊĠĠĠ Ġ@ Suppress Lint (" PackageManager Get Signatures ") čĊĠĠĠ Ġprivate Ġfun Ġget Hash () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġinfo : ĠPackage Info čĊĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ= Ġthis . package Manager . get Package Info (" com . v ictor dev . poke group ", ĠPackage Manager . GET _ SIGNATURE S ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( signature Ġin Ġinfo . signatures ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmd : ĠMessage Digest Ġ= ĠMessage Digest . getInstance (" SHA ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmd . update ( signature . toByteArray ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsomething Ġ= ĠString ( Base 6 4 . encode ( md . digest (), Ġ 0 )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// String Ġsomething Ġ= Ġnew ĠString ( Base 6 4 . encode Bytes ( md . digest ())); čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . e (" hash Ġkey :", Ġsomething ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" hash Ġkey : Ġ$ something ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNoSuch AlgorithmException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" no Ġsuch Ġan Ġalgorithm ", Ġe . toString ()) čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" exception ", Ġe . toString ()) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊĠĠĠ Ġ// timer Ġde Ġsplash čĊĠĠĠ Ġfun Ġtimer () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// timer Ġde Ġspl ah čĊĠĠĠĠĠĠĠ Ġtimer Ġ= Ġobject Ġ: ĠCount Down Timer ( SPL ASH _ TIME _ OUT . to Long (), Ġ 1 0 0 0 ) Ġ{ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ger i ye Ġsay ma čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Tick ( millis Until Finished : ĠLong ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Finish () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver ica S es ion () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ}. start () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġir Activ idad ( act : ĠClass <* >, Ġvalor : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġintent Ġ= ĠIntent ( context o , Ġact ) čĊĠĠĠĠĠĠĠ Ġintent . putExtra (" mensaje ", Ġvalor ) čĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) čĊĠĠĠĠĠĠĠ Ġoverride Pending Transition ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . f left , čĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . anim . f helper čĊĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġfinish () čĊĠĠĠ Ġ} čĊĠĠĠ Ġ// func ion Ġde Ġllam ada Ġa Ġp ant alla Ġde Ġlogin čĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () čĊĠĠĠĠĠĠĠ Ġif Ġ( timer Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimer !!. cancel () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊĠĠĠ Ġ// ver ificar Ġse sion čĊĠĠĠ Ġfun Ġver ica S es ion (){ čĊĠĠĠĠĠĠĠ Ġvar Ġse sion Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġval Ġm User Ġ= ĠFirebase Auth . getInstance (). currentUser čĊĠĠĠĠĠĠĠ Ġif Ġ( m User Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġm User . getId Token ( true ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener Ġ{ Ġtask Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Token Ġ= Ġtask . result !!. token čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id Token Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġse sion Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġll amar S es ion ( se sion ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} else { čĊĠĠĠĠĠĠĠĠĠĠĠ Ġll amar S es ion ( se sion ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊĠĠĠ Ġ// ll ama Ġactiv idad Ġseg un Ġse sion čĊĠĠĠ Ġfun Ġll amar S es ion ( se sion : Boolean ){ čĊĠĠĠĠĠĠĠ Ġif ( se sion ){ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġir Activ idad ( Home Activity :: class . java , Ġ"") čĊĠĠĠĠĠĠĠ Ġ} else { čĊĠĠĠĠĠĠĠĠĠĠĠ Ġir Activ idad ( MainActivity :: class . java , Ġ"") čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊ