package Ġes . d le bal . mult ig ames . activities Ċ Ċ import Ġandroid . app . Activity Options Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . graphics . drawable . Transition Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . support . v 4 . content . res . Resources Compat Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . transition . Fade Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġcom . crash ly t ics . android . Crash ly t ics Ċ import Ġes . d le bal . mult ig ames . R Ċ import Ġes . d le bal . mult ig ames . api . mult ig ames . Multi Games Api Interface Ċ import Ġes . d le bal . mult ig ames . api . mult ig ames . Multi Games Config Ċ import Ġes . d le bal . mult ig ames . api . mult ig ames . models . Multi Games Data Ċ import Ġes . d le bal . mult ig ames . db . DB Ċ import Ġes . d le bal . mult ig ames . models . Category Ċ import Ġes . d le bal . mult ig ames . models . Game Ċ import Ġes . d le bal . mult ig ames . models . Game Category Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . activity _ splash _ screen .* Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . adapter . rx java 2 . Rx Java 2 Call Adapter Factory Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ Ċ /** Ċ Ġ* ĠClass Ġclass ĠSpl ash Screen Activity Ġ: ĠAppCompatActivity () Ċ Ġ* Ċ Ġ* ĠThis Ġclass Ġprovides ĠSpl ash Screen Activity Ġobjects Ċ Ġ*/ Ċ class ĠSpl ash Screen Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠVariables ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠclassName : ĠString Ġ= ĠSpl ash Screen Activity :: class . java . simple Name Ġ// ĠClass Ġname ĊĠĠĠ Ġprivate Ġvar Ġcomposite Disposable : ĠComposite Disposable ? Ġ= Ġnull Ġ// ĠComposite Disposable ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠPerforms Ġthe Ġfollowing Ġtasks : ĊĠĠĠĠ Ġ* ĠĠ Ġ- ĠInitialize Ġthe Ġactivity Ġand Ġprevent Ġrel a unch Ġfrom Ġlauncher Ġicon Ġ( only Ġin Ġroot Ġactivity ) ĊĠĠĠĠ Ġ* ĠĠ Ġ- ĠInitialize Ġthe ĠUI ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠParameters : ĊĠĠĠĠ Ġ* ĠĠ Ġ@ param ĠsavedInstanceState : ĠIf Ġthe Ġactivity Ġis Ġbeing Ġre - initialized Ġafter Ġpreviously Ġbeing Ġshut Ġdown Ġthen Ġthis ĠBundle Ġcontains Ġthe Ġdata Ġit Ġmost Ġrecently Ġsupplied Ġin Ġon Save InstanceState ( Bundle ). ĠNote : ĠOtherwise Ġit Ġis Ġnull ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠVariables ĊĠĠĠĠĠĠĠ Ġval ĠmethodName Ġ= Ġ" onCreate " Ġ// ĠMethod Ġname ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe Ġactivity Ġand Ġprevent Ġrel a unch Ġfrom Ġlauncher Ġicon Ġ( only Ġin Ġroot Ġactivity ) ĊĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Initialize Ġthe Ġactivity Ġand Ġprevent Ġrel a unch Ġfrom Ġlauncher Ġicon Ġ( only Ġin Ġroot Ġactivity )") ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Task Root ) Ġ{ Ġ// ĠAndroid Ġlaunched Ġanother Ġinstance Ġof Ġthe Ġroot Ġactivity Ġinto Ġan Ġexisting Ġtask Ġso Ġjust Ġquiet ly Ġfinish Ġand Ġgo Ġaway , Ġdropping Ġthe Ġuser Ġback Ġinto Ġthe Ġactivity Ġat Ġthe Ġtop Ġof Ġthe Ġstack ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ splash _ screen ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe ĠUI ĊĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Initialize Ġthe ĠUI ") ĊĠĠĠĠĠĠĠ Ġthis . initialize UI () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġoverride Ġfun Ġon Destroy () ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠPerforms Ġthe Ġfollowing Ġtasks : ĊĠĠĠĠ Ġ* ĠĠ Ġ- ĠClear Ġall Ġsources ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĊĠĠĠĠĠĠĠ Ġ// ĠVariables ĊĠĠĠĠĠĠĠ Ġval ĠmethodName Ġ= Ġ" on Destroy " Ġ// ĠMethod Ġname ĊĊĠĠĠĠĠĠĠ Ġ// ĠClear Ġall Ġsources ĊĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Clear Ġall Ġsources ") ĊĠĠĠĠĠĠĠ Ġthis . composite Disposable ?. clear () ĊĠĠĠĠĠĠĠ Ġloading Indicator ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġloading ?. visibility Ġ= ĠView . GONE ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġprivate Ġfun Ġget Multi Games Data () ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠPerforms Ġthe Ġfollowing Ġtasks : ĊĠĠĠĠ Ġ* ĠĠ Ġ- ĠGet Ġthe ĠMulti Games Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Multi Games Data () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠVariables ĊĠĠĠĠĠĠĠ Ġval ĠmethodName Ġ= Ġ" get Multi Games Data " Ġ// ĠMethod Ġname ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe ĠMulti Games Ġdata ĊĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Get Ġthe ĠMulti Games Ġdata ") ĊĠĠĠĠĠĠĠ Ġval Ġrequest Interface Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( Multi Games Config . API _ BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build (). create ( Multi Games Api Interface :: class . java ) ĊĠĠĠĠĠĠĠ Ġthis . composite Disposable ?. add ( request Interface . getData () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Schedulers . new Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( this :: handle Multi Games Data Response )) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġprivate Ġfun Ġinitialize UI () ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠPerforms Ġthe Ġfollowing Ġtasks : ĊĠĠĠĠ Ġ* ĠĠ Ġ- ĠSet Ġthe Ġactivity Ġtransitions ĊĠĠĠĠ Ġ* ĠĠ Ġ- ĠHide Ġthe Ġaction Ġbar ĊĠĠĠĠ Ġ* ĠĠ Ġ- ĠInitialize Ġthe Ġbackground ĊĠĠĠĠ Ġ* ĠĠ Ġ- ĠInitialize Ġthe Ġapp Ġname ĊĠĠĠĠ Ġ* ĠĠ Ġ- ĠGet Ġthe ĠMulti Games Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinitialize UI () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠVariables ĊĠĠĠĠĠĠĠ Ġval ĠmethodName Ġ= Ġ" initialize UI " Ġ// ĠMethod Ġname ĊĠĠĠĠĠĠĠ Ġval Ġtransition Duration Ġ= Ġ 2 0 0 0 Ġ// ĠTransition Ġduration ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġactivity Ġtransitions ĊĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Set Ġthe Ġactivity Ġtransitions ") ĊĠĠĠĠĠĠĠ Ġwindow . enter Transition Ġ= ĠF ade () ĊĠĠĠĠĠĠĠ Ġwindow . exit Transition Ġ= ĠF ade () ĊĊĠĠĠĠĠĠĠ Ġ// ĠHide Ġthe Ġaction Ġbar ĊĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Hide Ġthe Ġaction Ġbar ") ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. hide () ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe Ġbackground ĊĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Initialize Ġthe Ġbackground ") ĊĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= ĠarrayOf ( Color Drawable ( Color . GRAY ), ĠColor Drawable ( Color . BLACK )) ĊĠĠĠĠĠĠĠ Ġval Ġtransition Drawable Ġ= ĠTransition Drawable ( color ) ĊĠĠĠĠĠĠĠ Ġcontainer . background Ġ= Ġtransition Drawable ĊĠĠĠĠĠĠĠ Ġtransition Drawable . start Transition ( transition Duration ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe Ġapp Ġname ĊĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Initialize Ġthe Ġapp Ġname ") ĊĠĠĠĠĠĠĠ ĠappName . type face Ġ= ĠResources Compat . getFont ( this . application Context , ĠR . font . ar cade ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe ĠMulti Games Ġdata ĊĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Get Ġthe ĠMulti Games Ġdata ") ĊĠĠĠĠĠĠĠ Ġthis . composite Disposable Ġ= ĠComposite Disposable () ĊĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Indicator . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . get Multi Games Data () ĊĠĠĠĠĠĠĠ Ġ}, Ġtransition Duration . to Long ()) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġprivate Ġfun Ġhandle Multi Games Data Response ( mult ig ames Data : ĠMulti Games Data ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠPerforms Ġthe Ġfollowing Ġtasks : ĊĠĠĠĠ Ġ* ĠĠ Ġ- ĠCheck Ġif Ġthe ĠMulti Games Ġdata Ġare Ġcorrect ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠ Ġ# ĠThe ĠMulti Games Ġdata Ġare Ġcorrect : ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠ ĠÂ· ĠDelete Ġall Ġdata ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠ ĠÂ· ĠLoad Ġthe Ġcategories ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠ ĠÂ· ĠLoad Ġthe Ġgames ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠ Ġ# ĠThe ĠMulti Games Ġdata Ġare Ġnot Ġcorrect : ĊĠĠĠĠ Ġ* ĠĠĠĠĠĠĠĠĠĠ ĠÂ· ĠReport Ġthe Ġissue Ġto ĠCrash ly t ics ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠParameters : ĊĠĠĠĠ Ġ* ĠĠ Ġ@ param Ġmult ig ames Data : ĠMulti Games Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġhandle Multi Games Data Response ( mult ig ames Data : ĠMulti Games Data ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠVariables ĊĠĠĠĠĠĠĠ Ġval ĠmethodName Ġ= Ġ" handle Multi Games Data Response " Ġ// ĠMethod Ġname ĊĠĠĠĠĠĠĠ Ġval Ġare The Multi Games Data Correct : ĠBoolean Ġ= Ġ( mult ig ames Data . categories . isNotEmpty ()) Ġ&& Ġ( mult ig ames Data . games . isNotEmpty ()) Ġ// ĠAre Ġthe ĠMulti Games Ġdata Ġcorrect ? ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠDB ( this ) Ġ// ĠDatabase ĊĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġthe ĠMulti Games Ġdata Ġare Ġcorrect ĊĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Check Ġif Ġthe ĠMulti Games Ġdata Ġare Ġcorrect . ĠAre Ġthe ĠMulti Games Ġdata Ġcorrect ? Ġ-> Ġ$ are The Multi Games Data Correct ") ĊĠĠĠĠĠĠĠ Ġif Ġ( are The Multi Games Data Correct ) Ġ{ Ġ// ĠThe ĠMulti Games Ġdata Ġare Ġcorrect ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDelete Ġall Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Delete Ġall Ġdata ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . delete Game Categories () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . delete Games () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . delete Categories () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLoad Ġthe Ġcategories ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Load Ġthe Ġcategories ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( category Ġin Ġmult ig ames Data . categories ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . add Category ( Category ( category . id , Ġcategory . name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLoad Ġthe Ġgames ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Load Ġthe Ġgames ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( game Ġin Ġmult ig ames Data . games ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . add Game ( Game ( game . id , Ġgame . name , Ġgame . description , Ġgame . thumbnail , Ġgame . screen 1 , Ġgame . screen 2 , Ġgame . screen 3 , Ġgame . video , Ġgame . embed Code , Ġgame . orientation , Ġgame . provider )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( categoryId Ġin Ġgame . categories ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . add Game Category ( Game Category ( game . id , Ġcategory Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ// ĠThe ĠMulti Games Ġdata Ġare Ġnot Ġcorrect ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReport Ġthe Ġissue Ġto ĠCrash ly t ics ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( this . className Ġ+ Ġ": Ġ$ methodName ", Ġ" Report Ġthe Ġissue Ġto ĠCrash ly t ics ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCrash ly t ics . log Exception ( Throwable (" The ĠMulti Games Ġdata Ġare Ġnot Ġcorrect ")) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis @ Splash Screen Activity . run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ CLEAR _ TOP ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent , ĠActivity Options . make Scene Transition Animation ( this ). to Bundle ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish After Transition () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ