package Ġme . tat oc aster . nasa app challenge . features . intro . presentation Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġcom . github . pa ol or oto lo . app intro . App Intro 2 Ċ import Ġcom . github . pa ol or oto lo . app intro . App Intro 2 Fragment Ċ import Ġcom . google . firebase . firestore . Firebase Fire store Ċ import Ġcom . google . firebase . iid . Firebase InstanceId Ċ import Ġme . tat oc aster . nasa app challenge . INT RO _ PAS SED Ċ import Ġme . tat oc aster . nasa app challenge . R Ċ import Ġme . tat oc aster . nasa app challenge . common . App Firebase Messaging Service . Companion . F CM _ DEVICE _ ID Ċ import Ġme . tat oc aster . nasa app challenge . common . utils . Preference Helper Ċ import Ġme . tat oc aster . nasa app challenge . common . utils . Preference Helper . get Ċ import Ġme . tat oc aster . nasa app challenge . common . utils . Preference Helper . set Ċ import Ġme . tat oc aster . nasa app challenge . features . home . presentation . Home Activity Ċ import Ġtim ber . log . Tim ber ĊĊ Ċ class ĠIntro Activity Ġ: ĠApp Intro 2 () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprefs : ĠSharedPreferences ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġprefs Ġ= ĠPreference Helper . default Prefs ( this ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( prefs [ INT RO _ PAS SED , Ġfalse ] Ġ!= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠHome Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Depth Animation () ĊĠĠĠĠĠĠĠ Ġadd Slides () ĊĠĠĠĠĠĠĠ Ġskip Button Enabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġask Permissions () ĊĊĠĠĠĠĠĠĠ ĠFirebase InstanceId . getInstance (). instanceId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Complete Listener Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( task . exception ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ add On Complete Listener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġnew ĠInstance ĠID Ġtoken ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġtask . result ?. token ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" login Ġactivity , Ġtoken Ġ% s ", Ġtoken ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( prefs [ F CM _ DEVICE _ ID , Ġ"" ]. equals ( token )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ add On Complete Listener ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprefs [ F CM _ DEVICE _ ID ] Ġ= Ġtoken ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠFirebase Fire store . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . collection (" device _ ids ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( hash Map Of ( Pair (" device _ id ", Ġtoken !! )) Ġas ĠMap < String , ĠAny >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener Ġ{ Ġdocument Reference Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Document Snapshot Ġadded Ġwith ĠID : Ġ% s ", Ġdocument Reference . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener Ġ{ Ġe Ġ-> ĠTim ber . e ( e ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Slides () Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Slide ( App Intro 2 Fragment . newInstance (" Spot ĠThat ĠFire ", ĠgetString ( R . string . intro _ 1 _ desc ), ĠR . drawable . ic _ earth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( this , ĠR . color . color Primary ))) ĊĊĠĠĠĠĠĠĠ Ġadd Slide ( App Intro 2 Fragment . newInstance (" Spot ĠThat ĠFire ", ĠgetString ( R . string . intro _ 2 _ desc ), ĠR . drawable . ic _ fire , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( this , ĠR . color . color Primary ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġask Permissions () Ġ{ ĊĠĠĠĠĠĠĠ Ġask For Permissions ( array Of ( Manifest . permission . CAMERA , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . CALL _ PHONE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ F INE _ LOCATION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . ACCESS _ CO AR SE _ LOCATION ), Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Done Pressed ( current Fragment : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Done Pressed ( current Fragment ) ĊĠĠĠĠĠĠĠ Ġprefs [ INT RO _ PAS SED ] Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠHome Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} Ċ Ċ } Ċ