package Ġinfo . infinite loops . j ge eks . network Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġcom . google . firebase . firestore . Collection Reference Ċ import Ġcom . google . firebase . firestore . Firebase Fire store Ċ import Ġcom . google . firebase . firestore . Query Ċ import Ġinfo . infinite loops . j ge eks . Utils . Meta Extractor Ċ import Ġinfo . infinite loops . j ge eks . Utils . Utils Ċ import Ġinfo . infinite loops . j ge eks . adapter . Re cycle Adapter Ċ import Ġinfo . infinite loops . j ge eks . models . Post Ċ import Ġinfo . infinite loops . j ge eks . models . Post Editor Ċ import Ġorg . js oup . helper . StringUtil Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠAs na Ġon Ġ 4 / 2 8 / 2 0 1 9 . Ċ Ġ*/ Ċ class ĠFire store Utils Ġ{ ĊĠĠĠ Ġfun Ġinsert Post ( post Editor : ĠPost Editor , Ġcategory : ĠString , Ġactivity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠUtils . date Millis ĊĠĠĠĠĠĠĠ Ġval Ġpost Ġ= ĠPost () ĊĠĠĠĠĠĠĠ Ġpost . id Ġ= Ġid . toString () ĊĠĠĠĠĠĠĠ Ġpost . caption Ġ= Ġpost Editor . caption ĊĠĠĠĠĠĠĠ Ġpost . image url Ġ= Ġpost Editor . imageUrl ĊĠĠĠĠĠĠĠ Ġpost . post Link Ġ= Ġpost Editor . post Link ĊĠĠĠĠĠĠĠ Ġpost . category Ġ= Ġcategory ĊĠĠĠĠĠĠĠ Ġpost . date millis Ġ= Ġid ĊĠĠĠĠĠĠĠ Ġpost . created Ġ= ĠSimpleDateFormat (" yyyy . MM . dd . HH . mm . ss "). format ( Date ()) ĊĠĠĠĠĠĠĠ Ġpost . category Ġ= Ġcategory ĊĠĠĠĠĠĠĠ Ġ// TODO : ĠFIXME ĠAfter Ġthe Ġimplementation Ġof ĠAuth Login ĊĠĠĠĠĠĠĠ Ġval Ġub : ĠPost . User Bean ĊĠĠĠĠĠĠĠ Ġval Ġsession Ġ= ĠSession Manager ( activity ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġub Ġ= ĠPost . User Bean () ĊĠĠĠĠĠĠĠ Ġif Ġ( session . is LoggedIn ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġub . email Ġ= Ġsession . email ĊĠĠĠĠĠĠĠĠĠĠĠ Ġub . username Ġ= Ġsession . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġub . userid Ġ= Ġsession . uid ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġub . email Ġ= Ġ" s uf i yan 2 you @ gmail . com " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġub . username Ġ= Ġ" S uf i yan " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġub . userid Ġ= Ġ" 6 1 2 1 9 9 2 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpost . user Ġ= Ġub ĊĠĠĠĠĠĠĠ Ġif Ġ(! StringUtil . isBlank ( post . post Link )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeta Extractor Ġ= ĠMeta Extractor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta Extractor . extract Meta Info ( post , Ġactivity ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Post Data ( post , Ġactivity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Post Data ( post : ĠPost , Ġactivity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= ĠgetInstance ( post . category !! ). document ( post . date millis . toString ()) ĊĠĠĠĠĠĠĠ Ġinstance . set ( post ). add On Success Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( activity . packageName , Ġ" Post Ġadded Ġsuccessfully .") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġ" Post Ġadded Ġsuccessfully .", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ}. add On Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( activity . packageName , Ġit . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġ" Failure : Ġ" Ġ+ Ġit . message , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgenerate RV Data ( activity : ĠActivity , Ġcategory : ĠString , Ġadapter : ĠRe cycle Adapter , Ġarray List : ĠArrayList < Post >, ĠstartTime Millis : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= ĠgetInstance ( category ) ĊĠĠĠĠĠĠĠ Ġval Ġloading Dialog Ġ= ĠProgress Dialog ( activity ) ĊĊĠĠĠĠĠĠĠ Ġinstance . orderBy (" date millis ", ĠQuery . Direction . DESC ENDING ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start After ( startTime Millis . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. limit ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get (). add On Complete Listener Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( res Ġin Ġtask . result !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpost Ġ= Ġres . toObject ( Post :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarray List . add ( post ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetInstance ( collection : ĠString ): ĠCollection Reference Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFirebase Fire store . getInstance (). collection ( collection ) ĊĠĠĠ Ġ} Ċ Ċ }