package Ġcom . ruby food . features . photo Reg Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics .* Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . location . Location Ċ import Ġandroid . os .* Ċ import Ġandroid . speech . tts . Text ToS peech Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ruby food . Custom Static Ċ import Ġcom . ruby food . R Ċ import Ġcom . ruby food . app . App Database Ċ import Ġcom . ruby food . app . Network Constant Ċ import Ġcom . ruby food . app . Pref Ċ import Ġcom . ruby food . app . Search Listener Ċ import Ġcom . ruby food . app . domain . Add Shop DB Model Entity Ċ import Ġcom . ruby food . app . domain . Assign To D DE ntity Ċ import Ġcom . ruby food . app . types . Frag Type Ċ import Ġcom . ruby food . app . utils . App Utils Ċ import Ġcom . ruby food . app . utils . FT Storage Utils Ċ import Ġcom . ruby food . app . utils . Permission Utils Ċ import Ġcom . ruby food . base . Base Response Ċ import Ġcom . ruby food . base . presentation . Base Activity Ċ import Ġcom . ruby food . base . presentation . Base Fragment Ċ import Ġcom . ruby food . face Rec . Detector Activity Ċ import Ġcom . ruby food . face Rec . Face Start Activity Ċ import Ġcom . ruby food . face Rec . t flite . Similarity Classifier Ċ import Ġcom . ruby food . face Rec . t flite . T FL ite Object Detection API Model Ċ import Ġcom . ruby food . features . add Att end ence . Primary Value Adapter Ċ import Ġcom . ruby food . features . add Att end ence . api . add att end ence api . Add Att end ence Repo Provider Ċ import Ġcom . ruby food . features . add Att end ence . model . Add Att end ence In pu Model Ċ import Ġcom . ruby food . features . add Att end ence . model . Primary Value DataModel Ċ import Ġcom . ruby food . features . attendance . api . Attendance Repository Provider Ċ import Ġcom . ruby food . features . attendance . model . Attendance Request Ċ import Ġcom . ruby food . features . attendance . model . Attendance Response Ċ import Ġcom . ruby food . features . dashboard . presentation . Dashboard Activity Ċ import Ġcom . ruby food . features . location . Location Wizard Ċ import Ġcom . ruby food . features . location . Single Shot Location Provider Ċ import Ġcom . ruby food . features . photo Reg . adapter . Adapter UserList Ċ import Ġcom . ruby food . features . photo Reg . adapter . Adapter UserList At ten D Ċ import Ġcom . ruby food . features . photo Reg . adapter . Photo Attendance List ner Ċ import Ġcom . ruby food . features . photo Reg . adapter . Photo Reg UserList ner Ċ import Ġcom . ruby food . features . photo Reg . api . GetUser List Photo Reg Provider Ċ import Ġcom . ruby food . features . photo Reg . model . GetUser ListResponse Ċ import Ġcom . ruby food . features . photo Reg . model . User ListResponse Model Ċ import Ġcom . ruby food . widgets . App Custom TextView Ċ import Ġcom . el vis he w . x log . X Log Ċ import Ġcom . google . android . gms . tasks . On Success Listener Ċ import Ġcom . google . ml kit . vision . common . Input Image Ċ import Ġcom . google . ml kit . vision . face . Face Ċ import Ġcom . google . ml kit . vision . face . Face Detection Ċ import Ġcom . google . ml kit . vision . face . Face Detector Ċ import Ġcom . google . ml kit . vision . face . Face Detector Options Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . fragment _ photo _ registration .* Ċ import Ġorg . jetbrains . ank o . do Async Ċ import Ġorg . jetbrains . ank o . ui Thread Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Ċ import Ġjava . net . URL Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ class ĠPhoto Attendance Fragment : ĠBase Fragment (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠmContext : ĠContext ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrv User D tls : RecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprogress _ wheel : Ġcom . pn ik osis . material ish progress . Progress Wheel ĊĠĠĠ Ġvar Ġuser List : ArrayList < User ListResponse Model > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠAdapter UserList At ten D ?= Ġnull ĊĊĠĠĠ Ġprotected Ġvar Ġpreview Width Ġ= Ġ 0 ĊĠĠĠ Ġprotected Ġvar Ġpreview Height Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġrgb Frame Bitmap : ĠBitmap ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġface B mp : ĠBitmap ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpor trait B mp : ĠBitmap ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġcrop To Frame Transform : ĠMatrix ? Ġ= ĠMatrix () ĊĠĠĠ Ġvar Ġface Detector : ĠFace Detector ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval ĠTF _ OD _ API _ MODEL _ FILE Ġ= Ġ" mobile _ face _ net . t flite " ĊĠĠĠ Ġval ĠTF _ OD _ API _ IS _ QU ANTI Z ED Ġ= Ġfalse ĊĠĠĠ Ġval ĠTF _ OD _ API _ LABEL S _ FILE Ġ= Ġ" file :/// android _ asset / label map . txt " ĊĠĠĠ Ġval ĠTF _ OD _ API _ INPUT _ SIZE Ġ= Ġ 1 1 2 ĊĊĠĠĠ Ġprivate Ġval Ġadd Att end ence Model : ĠAdd Att end ence In pu Model Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠAdd Att end ence In pu Model () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġobj _ temp Ġ: User ListResponse Model ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġvar Ġuser _ uid : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( objects : ĠAny ): ĠPhoto Attendance Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphoto Attendance Fragment Ġ= ĠPhoto Attendance Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( objects . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser _ uid = objects . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġphoto Attendance Fragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ photo _ attendance , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġinit View ( view ) ĊĊĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). set Search Listener ( object Ġ: ĠSearch Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Search Query Listener ( query : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( query . isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser List ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. refresh List ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ cust _ no . text Ġ= Ġ" Total Ġcustomer ( s ): Ġ" Ġ+ Ġit . size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. filter ?. filter ( query ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View ( view : ĠView ){ ĊĠĠĠĠĠĠĠ Ġrv User D tls Ġ= Ġview . findViewById ( R . id . rv _ frag _ photo _ att end _ user _ details ) ĊĠĠĠĠĠĠĠ Ġprogress _ wheel Ġ= Ġview . findViewById ( R . id . progress _ wheel _ frag _ photo _ att end ) ĊĊĠĠĠĠĠĠĠ Ġface Detector SetUp () ĊĊĠĠĠĠĠĠĠ Ġinit Permission Check () ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠ ĠHandler ( Looper . get Main Looper ()). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall U Ser List Api () ĊĠĠĠĠĠĠĠ Ġ}, Ġ 3 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġpermission Utils : ĠPermission Utils ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġfun Ġinit Permission Check () Ġ{ ĊĠĠĠĠĠĠĠ Ġpermission Utils Ġ= ĠPermission Utils ( mContext Ġas ĠActivity , Ġobject Ġ: ĠPermission Utils . On Permission Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Granted () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall U Ser List Api () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Not Granted () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . accept _ permission )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}, ĠarrayOf < String >( Manifest . permission . CAMERA , ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcall U Ser List Api (){ ĊĠĠĠĠĠĠĠ Ġuser List . clear () ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠGetUser List Photo Reg Provider . provide UserList Photo Reg () ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠ ĠBase Activity . composite Disposable . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . getUser List Api ( Pref . user _ id !! , ĠPref . session _ token !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresponse Ġ= Ġresult Ġas ĠGetUser ListResponse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . status Ġ== ĠNetwork Constant . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . user _ list !!. size Ġ> Ġ 0 Ġ&& Ġresponse . user _ list !! Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser List Ġ= Ġresponse . user _ list !! ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ date _ found )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ date _ found )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . printStackTrace () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message (" ERROR ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Adapter (){ ĊĠĠĠĠĠĠĠ Ġadapter = Adapter UserList At ten D ( mContext , user List , object Ġ: ĠPhoto Attendance List ner { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetUser Info On L ick ( obj : ĠUser ListResponse Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj _ temp = obj ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( App Utils . is Online ( mContext )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Pref . is Add Att end ence Ġ|| Ġtrue ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( obj _ temp . is Face Registered !! ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( App Utils . is Online ( mContext )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Current Day At td User Wise () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ internet )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// get Loc for DD () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Get Image From Url (). execute ( obj _ temp . face _ image _ link ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message (" Face ĠNot ĠRegistered ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . choose _ attendance _ type )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ internet )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetUser Info Att end Report On L ick ( obj : ĠUser ListResponse Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( context Ġas ĠDashboard Activity ). load Fragment ( Frag Type . Team Attendance Fragment , Ġtrue , Ġobj !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġrv User D tls . adapter = adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Current Day At td User Wise (){ ĊĠĠĠĠĠĠĠ Ġval Ġatt endance Req Ġ= ĠAtt endance Request () ĊĠĠĠĠĠĠĠ Ġatt endance Req . user _ id Ġ= Ġobj _ temp . user _ id . toString () ĊĠĠĠĠĠĠĠ Ġatt endance Req . session _ token Ġ= ĠPref . session _ token ĊĠĠĠĠĠĠĠ Ġatt endance Req . start _ date Ġ= ĠApp Utils . getCurrent Date For Cons () ĊĠĠĠĠĠĠĠ Ġatt endance Req . end _ date Ġ= ĠApp Utils . getCurrent Date For Cons () ĊĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠAtt endance Repository Provider . provide Attendance Repository () ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠ ĠBase Activity . composite Disposable . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . get Attendance List ( attendance Req ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġatt endance List Ġ= Ġresult Ġas ĠAtt endance Response ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( attendance List . status Ġ== Ġ" 2 0 5 "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Loc for DD () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġif ( attendance List . status Ġ== ĠNetwork Constant . SUCCESS ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . team _ attendance _ submit ed )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ( mContext Ġas ĠDashboard Activity ). show Sn ack Message (" Attendance Ġsubmitted Ġfor Ġto ay .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġat ted Submit ed Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . something _ w ent _ wrong )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġat ted Submit ed Dialog (){ ĊĠĠĠĠĠĠĠ Ġval Ġsimple Dialog Ġ= ĠDialog ( mContext ) ĊĠĠĠĠĠĠĠ Ġsimple Dialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠ Ġsimple Dialog . getWindow () !!. setBackground Drawable ( Color Drawable ( Color . TRANSP ARENT )) ĊĠĠĠĠĠĠĠ Ġsimple Dialog . set ContentView ( R . layout . dialog _ message ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog Header Ġ= Ġsimple Dialog . findViewById ( R . id . dialog _ message _ header _ TV ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠ Ġval Ġdialog _ yes _ no _ header TV Ġ= Ġsimple Dialog . findViewById ( R . id . dialog _ message _ header TV ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠ Ġdialog _ yes _ no _ header TV . text Ġ= ĠApp Utils . hi FirstName Text ()+" !" ĊĠĠĠĠĠĠĠ Ġ// dialog Header . text Ġ= Ġ" Attendance Ġof Ġ"+ obj _ temp !!. user _ name Ġ+" Ġsubmitted Ġfor Ġtoday ." ĊĠĠĠĠĠĠĠ Ġdialog Header . text Ġ= Ġ" Attendance Ġfor Ġ"+ obj _ temp !!. user _ name +" Ġalready Ġmarked Ġfor Ġtoday ." ĊĠĠĠĠĠĠĠ Ġvoice Attendance Msg (" Attendance Ġfor Ġ"+ obj _ temp !!. user _ name +" Ġalready Ġmarked Ġfor Ġtoday .") ĊĠĠĠĠĠĠĠ Ġval Ġdialog Yes Ġ= Ġsimple Dialog . findViewById ( R . id . tv _ message _ ok ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠ Ġdialog Yes . setOnClickListener ({ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . cancel () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsimple Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Loc for DD () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( App Utils . is Online ( mContext ) Ġ|| Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( App Utils . m Location Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( App Utils . m Location !!. accuracy Ġ<= ĠPref . gps Accuracy . toInt ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( App Utils . m Location !!. accuracy Ġ<= ĠPref . shop Loc Accuracy . toFloat ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Ne ary Shop List DD ( App Utils . m Location !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// get DD List ( App Utils . m Location !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Location DD () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" ===== In accur ate Ġcurrent Ġlocation Ġ( Local ĠShop ĠList ) ==== =") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Location DD () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" ===== null Ġlocation Ġ( Local ĠShop ĠList ) ==== ==" ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Location DD () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ internet )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġis Get Location Ġ= Ġ- 1 ĊĠĠĠ Ġprivate Ġfun Ġsingle Location DD () Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠ Ġis Get Location Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ ĠSingle Shot Location Provider . request Single Update ( mContext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠSingle Shot Location Provider . Location Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Status Changed ( status : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Provider Enabled ( status : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Provider Disabled ( status : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon New Location Available ( location : ĠLocation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Get Location Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Get Location Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( location . accuracy Ġ> ĠPref . gps Accuracy . toInt ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message (" Unable Ġto Ġfetch Ġaccurate ĠGPS Ġdata . ĠPlease Ġtry Ġagain .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Ne ary Shop List DD ( location ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= ĠTimer () ĊĠĠĠĠĠĠĠ Ġt . schedule ( object Ġ: ĠTimer Task () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Get Location Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Get Location Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message (" GPS Ġdata Ġto Ġshow Ġnearby Ġparty Ġis Ġin accur ate . ĠPlease Ġstop Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" internet , Ġstop ĠGPS / Location Ġservice , Ġand Ġthen Ġrestart Ġinternet Ġand ĠGPS Ġservices Ġto Ġget Ġnearby Ġparty Ġlist .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, Ġ 1 5 0 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Ne ary Shop List DD ( location : ĠLocation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġnear By : ĠDouble Ġ= ĠPref . shop Loc Accuracy . toDouble () ĊĠĠĠĠĠĠĠ Ġvar Ġshop _ id : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġfinal Near By Shop : ĠAdd Shop DB Model Entity Ġ= ĠAdd Shop DB Model Entity () ĊĠĠĠĠĠĠĠ Ġvar Ġfinal Near By DD : ĠAssign To D DE ntity Ġ= ĠAssign To D DE ntity () ĊĊĠĠĠĠĠĠĠ Ġval Ġall Shop List Ġ= ĠApp Database . get DBInstance () !!. add Shop Entry Dao (). all ĊĠĠĠĠĠĠĠ Ġval Ġnew List Ġ= Ġjava . util . ArrayList < Add Shop DB Model Entity >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġall Shop List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew List . add ( all Shop List [ i ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġval Ġall DD List Ġ= ĠApp Database . get DBInstance () !!. dd List Dao (). getAll () ĊĠĠĠĠĠĠĠ Ġval Ġnew DD List Ġ= Ġjava . util . ArrayList < Assign To D DE ntity >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġall DD List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew DD List . add ( all DD List [ i ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( new DD List Ġ!= Ġnull Ġ&& Ġnew DD List . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġnew DD List . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdd Lat : ĠDouble Ġ= Ġnew DD List [ i ]. dd _ latitude !!. toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdd Long : ĠDouble Ġ= Ġnew DD List [ i ]. dd _ longitude !!. toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dd Lat Ġ!= Ġnull Ġ&& Ġdd Long Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdd Location Ġ= ĠLocation ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdd Location . latitude Ġ= Ġdd Lat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdd Location . longitude Ġ= Ġdd Long ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Shop Near by Ġ= ĠFT Storage Utils . check Shop Position Within Rad ious ( location , Ġdd Location , ĠLocation Wizard . NEAR BY _ RADIUS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Shop Near by ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( location . distance To ( dd Location )) Ġ< Ġnear By ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnear By Ġ= Ġlocation . distance To ( dd Location ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Near By DD Ġ= Ġnew DD List [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// start Day ( new List [ i ], Ġlocation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// break ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ( mContext Ġas ĠDashboard Activity ). show Sn ack Message (" No ĠShop ĠFound ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ// final Near By DD = new DD List [ 5 ] ĊĊĠĠĠĠĠĠĠ Ġif Ġ( final Near By DD . dd _ id Ġ!= Ġnull Ġ&& Ġfinal Near By DD . dd _ id !!. length Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGet Image From Url (). execute ( obj _ temp . face _ image _ link ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// prepare Add Attendance Input Params () ĊĠĠĠĠĠĠĠ Ġ} Ġ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsimple Dialog Ġ= ĠDialog ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . getWindow () !!. setBackground Drawable ( Color Drawable ( Color . TRANSP ARENT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . set ContentView ( R . layout . dialog _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Header Ġ= Ġsimple Dialog . findViewById ( R . id . dialog _ message _ header _ TV ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog _ yes _ no _ header TV Ġ= Ġsimple Dialog . findViewById ( R . id . dialog _ message _ header TV ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ yes _ no _ header TV . text Ġ= ĠApp Utils . hi FirstName Text ()+" !" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Header . text Ġ= Ġ" No Ġnearby ĠShop / Point Ġfound ..." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Yes Ġ= Ġsimple Dialog . findViewById ( R . id . tv _ message _ ok ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Yes . setOnClickListener ({ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ///// ĊĠĠĠ Ġinner Ġclass ĠGet Image From Url Ġ: ĠAsync Task < String ?, ĠVoid ?, ĠBitmap ?> () Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠGet Image From Url () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// this . imageView Ġ= Ġimg ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo In Background ( var arg Ġurl : ĠString ?): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbitmap pp px : ĠBitmap ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstring Url Ġ= Ġurl [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap pp px Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠinputStream : ĠInputStream ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream Ġ= ĠURL ( string Url ). open Stream () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap pp px Ġ= ĠBitmap Factory . decode Stream ( inputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbitmap pp px !! ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Post Execute ( result : ĠBitmap ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Post Execute ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" reg _ face Ġ- Ġregister Face Ġcalled "+ App Utils . getCurrent DateTime ()); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Face ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġface Detector SetUp (){ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFace Start Activity . detector Ġ= ĠT FL ite Object Detection API Model . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmContext . get Assets (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTF _ OD _ API _ MODEL _ FILE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTF _ OD _ API _ LABEL S _ FILE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTF _ OD _ API _ INPUT _ SIZE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTF _ OD _ API _ IS _ QU ANTI Z ED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// crop Size Ġ= ĠTF _ OD _ API _ INPUT _ SIZE ; ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// LOGGER . e ( e , Ġ" Exception Ġinitializing Ġclassifier !"); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoast Ġ= ĠToast . makeText ( mContext , Ġ" Classifier Ġcould Ġnot Ġbe Ġinitialized ", ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠFace Detector Options . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Performance Mode ( Face Detector Options . PER FORMANCE _ MODE _ FAST ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// . set Performance Mode ( Face Detector Options . PER FORMANCE _ MODE _ AC CUR ATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Contour Mode ( Face Detector Options . LAND MARK _ MODE _ NONE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Classification Mode ( Face Detector Options . CLAS SIF ICATION _ MODE _ ALL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġdetector Ġ= ĠFace Detection . getClient ( options ) ĊĊĠĠĠĠĠĠĠ Ġface Detector Ġ= Ġdetector ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġregister Face ( m Bitmap : ĠBitmap ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Base Activity . is Api Initi ated = false ĊĠĠĠĠĠĠĠ Ġprintln (" reg _ face Ġ- Ġadd _ attendance _ register Face "+ App Utils . getCurrent DateTime ()); ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Bitmap Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Toast . makeText ( this , Ġ" No ĠFile ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// iv Face . setImage Bitmap ( m Bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreview Width Ġ= Ġm Bitmap . width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreview Height Ġ= Ġm Bitmap . height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrgb Frame Bitmap Ġ= ĠBitmap . create Bitmap ( preview Width , Ġpreview Height , ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpor trait B mp Ġ= Ġm Bitmap ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Ġ= ĠInput Image . from Bitmap ( m Bitmap , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġface B mp Ġ= ĠBitmap . create Bitmap ( TF _ OD _ API _ INPUT _ SIZE , ĠTF _ OD _ API _ INPUT _ SIZE , ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġface Detector ?. process ( image )?. add On Success Listener ( On Success Listener < List < Face >> Ġ{ Ġfaces Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( faces . size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" reg _ face Ġ- Ġadd _ attendance _ register Face Ġno Ġface Ġdetected "+ App Utils . getCurrent DateTime ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On Success Listener ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠThread () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// action ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" reg _ face Ġ- Ġadd _ attendance _ register Face Ġface Ġdetected "+ App Utils . getCurrent DateTime ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Faces Detected ( 1 , Ġfaces , Ġtrue ) Ġ// no Ġneed Ġto Ġadd Ġcurr time ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : Ġjava . lang . Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Faces Detected ( curr Timestamp : ĠLong , Ġfaces : ĠList < Face >, Ġadd : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpaint Ġ= ĠPaint () ĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= ĠColor . RED ĊĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠĠĠĠĠ Ġpaint . stroke Width Ġ= Ġ 2 . 0 f ĊĠĠĠĠĠĠĠ Ġval Ġmapped Re cogn itions : ĠMutable List < Similarity Classifier . Recognition > Ġ= ĠLinkedList () ĊĊĊĠĠĠĠĠĠĠ Ġ// final ĠList < Classifier . Recognition > Ġresults Ġ= Ġnew ĠArrayList <>(); ĊĊĠĠĠĠĠĠĠ Ġ// ĠNote Ġthis Ġcan Ġbe Ġdone Ġonly Ġonce ĊĠĠĠĠĠĠĠ Ġval Ġsource W Ġ= Ġrgb Frame Bitmap !!. width ĊĠĠĠĠĠĠĠ Ġval Ġsource H Ġ= Ġrgb Frame Bitmap !!. height ĊĠĠĠĠĠĠĠ Ġval Ġtarget W Ġ= Ġpor trait B mp !!. width ĊĠĠĠĠĠĠĠ Ġval Ġtarget H Ġ= Ġpor trait B mp !!. height ĊĠĠĠĠĠĠĠ Ġval Ġtransform Ġ= Ġcreate Transform ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource W , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource H , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget W , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget H , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġmutable Bitmap Ġ= Ġpor trait B mp !!. copy ( Bitmap . Config . ARGB _ 8 8 8 8 , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġval Ġcv Ġ= ĠCanvas ( mutable Bitmap ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġdraw s Ġthe Ġoriginal Ġimage Ġin Ġpor trait Ġmode . ĊĠĠĠĠĠĠĠ Ġcv . draw Bitmap ( rgb Frame Bitmap !! , Ġtransform !! , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġcv Face Ġ= ĠCanvas ( face B mp !! ) ĊĠĠĠĠĠĠĠ Ġval Ġsaved Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġfor Ġ( face Ġin Ġfaces ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// results Ġ= Ġdetector . re cognize Image ( c ropped Bitmap ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbounding Box Ġ= ĠRect F ( face . bounding Box ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// final Ġboolean Ġgood Confidence Ġ= Ġresult . get Confidence () Ġ>= Ġminimum Confidence ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgood Confidence Ġ= Ġtrue Ġ// face . get ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bounding Box Ġ!= Ġnull Ġ&& Ġgood Confidence ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmaps Ġcrop Ġcoordinates Ġto Ġoriginal ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcrop To Frame Transform ?. map Rect ( bounding Box ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmaps Ġoriginal Ġcoordinates Ġto Ġpor trait Ġcoordinates ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġface BB Ġ= ĠRect F ( bounding Box ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransform . map Rect ( face BB ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtrans lates Ġpor trait Ġto Ġorigin Ġand Ġscales Ġto Ġfit Ġinput Ġinference Ġsize ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// cv . draw Rect ( face BB , Ġpaint ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsx Ġ= ĠTF _ OD _ API _ INPUT _ SIZE . toFloat () Ġ/ Ġface BB . width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsy Ġ= ĠTF _ OD _ API _ INPUT _ SIZE . toFloat () Ġ/ Ġface BB . height () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatrix Ġ= ĠMatrix () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix . post Translate (- face BB . left , Ġ- face BB . top ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix . post Scale ( sx , Ġsy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcv Face . draw Bitmap ( portrait B mp !! , Ġmatrix , Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// canvas . draw Rect ( face BB , Ġpaint ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlabel Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġconfidence Ġ= Ġ- 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcolor Ġ= ĠColor . BLUE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġextra : ĠAny ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcrop : ĠBitmap ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcrop Ġ= ĠBitmap . create Bitmap ( portrait B mp !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġface BB . left . toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġface BB . top . toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġface BB . width (). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġface BB . height (). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( eon : Ġjava . lang . Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// run On Ui Thread ( Runnable Ġ{ ĠToast . makeText ( mContext , Ġ" Failed Ġto Ġdetect ", ĠToast . LENGTH _ LONG ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstartTime Ġ= ĠSystem Clock . uptime Millis () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Aux Ġ= ĠFace Start Activity . detector . re cognize Image ( face B mp , Ġadd ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Processing Time Ms Ġ= ĠSystem Clock . uptime Millis () Ġ- ĠstartTime ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( results Aux . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġresults Aux [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextra Ġ= Ġresult . extra ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠ ĠObject Ġextra Ġ= Ġresult . get Extra (); Ċ // ĠĠĠĠĠĠĠĠĠ Ġif Ġ( extra Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLOGGER . i (" em be ed ing Ġretrieved Ġ" Ġ+ Ġextra . toString ()); Ċ // ĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconf Ġ= Ġresult . distance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( conf Ġ< Ġ 1 . 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfidence Ġ= Ġconf ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġresult . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġif Ġ( result . id Ġ== Ġ" 0 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . GREEN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . RED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġflip Ġ= ĠMatrix () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflip . post Scale ( 1 f , Ġ- 1 f , Ġpreview Width Ġ/ Ġ 2 . 0 f , Ġpreview Height Ġ/ Ġ 2 . 0 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// flip . post Scale ( 1 , Ġ- 1 , Ġtarget W Ġ/ Ġ 2 . 0 f , Ġtarget H Ġ/ Ġ 2 . 0 f ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflip . map Rect ( bounding Box ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠSimilar ity Classifier . Recognition ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 ", Ġlabel , Ġconfidence , Ġbounding Box ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . location Ġ= Ġbounding Box ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . extra Ġ= Ġextra ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . crop Ġ= Ġcrop ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmapped Re cogn itions . add ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġif Ġ( saved ) Ġ{ Ċ // ĠĠĠĠĠ Ġlast Saved Ġ= ĠSystem . currentTimeMillis (); Ċ // ĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠCustom Static . Is Camera Facing From Team At td C ame ta Status = true ĊĠĠĠĠĠĠĠ ĠCustom Static . Is Camera Facing From Team At td = true ĊĠĠĠĠĠĠĠ ĠLog . e (" xc ", Ġ" start abc " Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġrec Ġ= Ġmapped Re cogn itions [ 0 ] ĊĠĠĠĠĠĠĠ ĠFace Start Activity . detector . register ("", Ġrec ) ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( mContext , ĠDetector Activity :: class . java ) ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , Ġ 1 7 2 ) Ċ // ĠĠĠĠĠĠĠ ĠstartActivity ( new ĠIntent ( this , Detector Activity . class )); Ċ // ĠĠĠĠĠĠĠ Ġfinish (); ĊĊĠĠĠĠĠĠĠ Ġ// Ġdetector . register (" S ak il ", Ġrec ); ĊĠĠĠĠĠĠĠ Ġ/* ĠĠ Ġrun On Ui Thread ( new ĠRunnable () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Override ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġvoid Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Face . setImage Bitmap ( rec . getC rop ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// show Add Face Dialog ( rec ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder Ġbuilder Ġ= Ġnew ĠAlertDialog . Builder ( MainActivity . this ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater Ġinflater Ġ= Ġget LayoutInflater (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Ġdialog Layout Ġ= Ġinflater . inflate ( R . layout . image _ edit _ dialog , Ġnull ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImageView Ġiv Face Ġ= Ġdialog Layout . findViewById ( R . id . dlg _ image ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTextView Ġtv Title Ġ= Ġdialog Layout . findViewById ( R . id . dlg _ title ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEditText Ġet Name Ġ= Ġdialog Layout . findViewById ( R . id . dlg _ input ); ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Title . setText (" Register ĠYour ĠFace "); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv Face . setImage Bitmap ( rec . getC rop ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet Name . set Hint (" Please Ġtell Ġyour Ġname "); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetector . register (" sam ", Ġrec ); Ġ// for Ġregister Ġa Ġface ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// button . set Pressed ( true ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// button . perform Click (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}); */ ĊĊĠĠĠĠĠĠĠ Ġ// Ġupdate Results ( curr Timestamp , Ġmapped Re cogn itions ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Transform ( src Width : ĠInt , Ġsrc Height : ĠInt , Ġdst Width : ĠInt , Ġdst Height : ĠInt , Ġapply Rotation : ĠInt ): ĠMatrix ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmatrix Ġ= ĠMatrix () ĊĠĠĠĠĠĠĠ Ġif Ġ( apply Rotation Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( apply Rotation Ġ% Ġ 9 0 Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLOGGER . w (" Rotation Ġof Ġ% d Ġ% Ġ 9 0 Ġ!= Ġ 0 ", Ġapply Rotation ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTranslate Ġso Ġcenter Ġof Ġimage Ġis Ġat Ġorigin . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix . post Translate (- src Width Ġ/ Ġ 2 . 0 f , Ġ- src Height Ġ/ Ġ 2 . 0 f ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRotate Ġaround Ġorigin . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix . post Rotate ( apply Rotation . toFloat ()) ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġ// ĠAccount Ġfor Ġthe Ġalready Ġapplied Ġrotation , Ġif Ġany , Ġand Ġthen Ġdetermine Ġhow Ċ // ĠĠĠĠĠĠĠ Ġ// Ġmuch Ġscaling Ġis Ġneeded Ġfor Ġeach Ġaxis . Ċ // ĠĠĠĠĠĠĠ Ġfinal Ġboolean Ġtranspose Ġ= Ġ( Math . abs ( apply Rotation ) Ġ+ Ġ 9 0 ) Ġ% Ġ 1 8 0 Ġ== Ġ 0 ; Ċ // ĠĠĠĠĠĠĠ Ġfinal Ġint Ġin Width Ġ= Ġtranspose Ġ? Ġsrc Height Ġ: Ġsrc Width ; Ċ // ĠĠĠĠĠĠĠ Ġfinal Ġint Ġin Height Ġ= Ġtranspose Ġ? Ġsrc Width Ġ: Ġsrc Height ; ĊĠĠĠĠĠĠĠ Ġif Ġ( apply Rotation Ġ!= Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTranslate Ġback Ġfrom Ġorigin Ġcentered Ġreference Ġto Ġdestination Ġframe . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix . post Translate ( dst Width Ġ/ Ġ 2 . 0 f , Ġdst Height Ġ/ Ġ 2 . 0 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmatrix ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== Ġ 1 7 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprepare Add Attendance Input Params () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare Add Attendance Input Params () Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . session _ token Ġ= ĠPref . session _ token !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . user _ id Ġ= Ġobj _ temp !!. user _ id . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . is _ on _ leave Ġ= Ġ" false " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( Pref . current _ latitude )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . work _ lat Ġ= Ġ" 0 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . work _ lat Ġ= ĠPref . current _ latitude ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( Pref . current _ longitude )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . work _ long Ġ= Ġ" 0 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . work _ long Ġ= ĠPref . current _ longitude ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( Pref . current _ latitude )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . work _ address Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . work _ address Ġ= ĠLocation Wizard . getLocation Name ( mContext , ĠPref . current _ latitude . toDouble (), ĠPref . current _ longitude . toDouble ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . work _ desc Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// add Att end ence Model . work _ date _ time Ġ= ĠApp Utils . getCurrent DateTime 1 2 Format To Attr ( tv _ current _ date _ time . text . toString (). trim ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . work _ lat Ġ= ĠPref . current _ latitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . work _ type Ġ= Ġ" 9 " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . order _ taken =" 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . collection _ taken =" 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . new _ shop _ visit =" 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . re visit _ shop =" 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . route ="" ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( Pref . profile _ state )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . state _ id Ġ= ĠPref . profile _ state ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( Pref . current _ latitude ) Ġ&& Ġ! TextUtils . isEmpty ( Pref . current _ longitude )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPref . source _ latitude Ġ= ĠPref . current _ latitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPref . source _ longitude Ġ= ĠPref . current _ longitude ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstate List Ġ= ĠApp Utils . load SharedPreferences State List ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( state List Ġ!= Ġnull Ġ&& Ġstate List !!. size Ġ> Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprimary List Ġ= ĠArrayList < Primary Value DataModel >() ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin ĠPrimary Value Adapter . primary Value List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprimary Value Ġ= ĠPrimary Value DataModel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Value . id Ġ= Ġstate List ?. get ( i )?. id !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Value . primary _ value Ġ= ĠPrimary Value Adapter . primary Value List [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary List . add ( primary Value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . primary _ value _ list Ġ= Ġprimary List ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Pref . is DD Field Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . distribut or _ name Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . market _ work ed Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . work _ date _ time Ġ= Ġ/* " 2 0 1 8 - 1 2 - 2 1 T 1 8 : 0 5 : 4 1 " */ ĠApp Utils . getCurrent ISO DateTime () // App Utils . getCurrent DateTime 1 2 Format To Attr ( App Utils . getCurrent DateTime 1 2 Format ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadd Att end ence Time Ġ= Ġ Ġ/* " 0 6 : 0 5 ĠPM " */ ĠApp Utils . getCurrent Time With Mer ed ian () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . add _ att end ence _ time Ġ= Ġadd Att end ence Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . from _ id Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . to _ id Ġ= Ġ"" ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Att end ence Model . distance Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Attendance () ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Attendance (){ ĊĠĠĠĠĠĠĠ ĠBase Activity . is Api Initi ated Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠAdd Att end ence Repo Provider . add Att end ence Repo () ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠ ĠBase Activity . composite Disposable . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . add Att end ence ( add Att end ence Model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult Ġas ĠBase Response ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" Add Attendance ĠResponse ĠCode ======== > Ġ" Ġ+ Ġresponse . status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" Add Attendance ĠResponse ĠMsg ======== => Ġ" Ġ+ Ġresponse . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . status Ġ== ĠNetwork Constant . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Activity . is Api Initi ated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Pref . user _ id !!. equals ( add Att end ence Model . user _ id )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPref . is Add Att end ence = true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Att end Success Msg () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Activity . is Api Initi ated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( response . message !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" add Ġatt endance Ġteam ", Ġ" api Ġwork Ġtype ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" Add Attendance Ġteam ĠResponse ĠMsg ======== => Ġ" Ġ+ Ġerror . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Activity . is Api Initi ated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . something _ w ent _ wrong )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Att end Success Msg (){ ĊĠĠĠĠĠĠĠ Ġval Ġsimple Dialog Ġ= ĠDialog ( mContext ) ĊĠĠĠĠĠĠĠ Ġsimple Dialog . set Cancel able ( false ) ĊĠĠĠĠĠĠĠ Ġsimple Dialog . getWindow () !!. setBackground Drawable ( Color Drawable ( Color . TRANSP ARENT )) ĊĠĠĠĠĠĠĠ Ġsimple Dialog . set ContentView ( R . layout . dialog _ message ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog Header Ġ= Ġsimple Dialog . findViewById ( R . id . dialog _ message _ header _ TV ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠ Ġval Ġdialog _ yes _ no _ header TV Ġ= Ġsimple Dialog . findViewById ( R . id . dialog _ message _ header TV ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠ Ġdialog _ yes _ no _ header TV . text Ġ= ĠApp Utils . hi FirstName Text () !! +" !" ĊĠĠĠĠĠĠĠ Ġdialog Header . text Ġ= Ġ" Attendance Ġsuccessfully Ġmarked Ġfor Ġ"+ obj _ temp . user _ name +". Thanks Ġ. " ĊĠĠĠĠĠĠĠ Ġvoice Attendance Msg (" Attendance Ġsuccessfully Ġmarked Ġfor Ġ"+ obj _ temp . user _ name ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog Yes Ġ= Ġsimple Dialog . findViewById ( R . id . tv _ message _ ok ) Ġas ĠApp Custom TextView ĊĠĠĠĠĠĠĠ Ġdialog Yes . setOnClickListener ({ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Dialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). load Fragment ( Frag Type . Photo Attendance Fragment , Ġfalse , Ġ"") ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsimple Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvoice Attendance Msg ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Pref . is Voice Enabled For Attendance Submit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspeech Status Ġ= Ġ( mContext Ġas ĠDashboard Activity ). text ToS peech . speak ( msg , ĠText ToS peech . QUEUE _ FLUSH , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( speech Status Ġ== ĠText ToS peech . ERROR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Add ĠDay ĠStart ", Ġ" TT S Ġerror Ġin Ġconverting ĠText Ġto ĠSpeech !"); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }