package Ġcom . dub ed iv ine . samples . service Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . dub ed iv ine . samples . data . DataManager Ċ import Ġcom . dub ed iv ine . samples . data . local . Preferences Helper Ċ import Ġcom . google . firebase . iid . Firebase InstanceId Service Ċ import Ġcom . google . firebase . iid . Firebase InstanceId Ċ import Ġjavax . inject . Inject Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . app . Activity Manager Ċ import Ġandroid . content . Context Ċ import Ġcom . dub ed iv ine . samples . data . model . User Ċ import Ġcom . dub ed iv ine . samples . features . signIn . SignIn More Details ĊĊ Ċ class ĠF CM ID Service Ġ: ĠFirebase InstanceId Service () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠĠ Ġpublic Ġlateinit Ġvar Ġdata Manager : ĠData Manager ĊĊĠĠĠ Ġoverride Ġfun Ġon Token Refresh () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġpref Ġ= ĠPreferences Helper ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġref reshed Token Ġ= ĠFirebase InstanceId . getInstance (). token ĊĠĠĠĠĠĠĠ ĠLog . d (" F CM ID Service ", Ġ" Ref reshed Ġtoken : Ġ$ ref reshed Token ") ĊĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġif Ġ( ref reshed Token Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// save Ġthe Ġtoken Ġbro !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . save Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( F CM _ TOKEN , Ġref reshed Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Boolean ( F CM _ TOKEN _ PUSH ED , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠ Ġ// ĠĠ Ġsend Registration ToServer ( pref , Ġref reshed Token ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġyou Ġwant Ġto Ġsend Ġmessages Ġto Ġthis Ġapplication Ġinstance Ġor ĊĠĠĠĠĠĠĠ Ġ// Ġmanage Ġthis Ġapps Ġsubscriptions Ġon Ġthe Ġserver Ġside , Ġsend Ġthe ĊĠĠĠĠĠĠĠ Ġ// ĠInstance ĠID Ġtoken Ġto Ġyour Ġapp Ġserver . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Registration ToServer ( pref : ĠPreferences Helper , Ġref reshed Token : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( pref . getString ( SignIn More Details . P _ ID ). isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Manager . send F CM Token To User ( ref reshed Token , ĠUser ( pref . getUserId (), Ġpref . getString ( SignIn More Details . P _ N ICK NAME ))) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" F CM ID Service ", Ġ" saved Ġuser Ġf cm Ġtoken ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . save Ġ{ Ġput Boolean ( F CM _ TOKEN _ PUSH ED , Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ ĠLog . d (" F CM ID Service ", Ġ" Cannot Ġpush Ġthe Ġphone Ġf cm Ġtoken ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠF CM _ TOKEN Ġ= Ġ" fc m _ token " ĊĠĠĠĠĠĠĠ Ġ// used Ġto Ġcheck Ġweather Ġthe Ġfirebase Ġtoken Ġwas Ġpushed Ġbro ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠF CM _ TOKEN _ PUSH ED Ġ= Ġ" fc m _ token _ pus hed " ĊĠĠĠ Ġ} Ċ }