package Ġru . if mo . stat app . presentation . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġm oxy . M vp AppCompat Fragment Ċ import Ġm oxy . presenter . Inject Presenter Ċ import Ġm oxy . presenter . Provide Presenter Ċ import Ġru . if mo . stat app . App Ċ import Ġru . if mo . stat app . R Ċ import Ġru . if mo . stat app . data . db . entity . Student Ċ import Ġru . if mo . stat app . presentation . presenter . Statistics Presenter Ċ import Ġru . if mo . stat app . presentation . view . Statistics View Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Provider Ċ Ċ class ĠStatistics Fragment Ġ: ĠM vp AppCompat Fragment (), ĠStatistics View Ġ{ ĊĊĠĠĠ Ġ@ Inject Presenter ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠStatistics Presenter ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġpresenter Provider : ĠProvider < Statistics Presenter > ĊĊĠĠĠ Ġ@ Provide Presenter ĊĠĠĠ Ġfun Ġprovide Presenter (): ĠStatistics Presenter Ġ= Ġpresenter Provider . get () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmain View : ĠView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstudent RecyclerView : ĠRecyclerView ĊĊĠĠĠ Ġprivate Ġval Ġadapter Ġ= ĠStudent Adapter () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠApp . app Component . inject ( this ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġpresenter . get Students () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġmain View Ġ= Ġinflater . inflate ( R . layout . fragment _ list , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġinit Views () ĊĠĠĠĠĠĠĠ Ġreturn Ġmain View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġmain View . findViewById < View >( R . id . add _ holder _ btn ). apply Ġ{ Ġvisibility Ġ= ĠView . GONE Ġ} ĊĠĠĠĠĠĠĠ Ġstudent RecyclerView Ġ= Ġmain View . findViewById ( R . id . holder _ list ) ĊĠĠĠĠĠĠĠ Ġstudent RecyclerView . adapter Ġ= Ġadapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Students ( students : ĠList < Student >) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . students Ġ= Ġstudents ĊĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Statistics ( count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= ĠgetString ( R . string . attendance , Ġcount ) ĊĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġtext , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġinner Ġclass ĠStudent V ie Holder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġstudent Ġ= ĠStudent () ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . get Student Attendance ( student Id Ġ= Ġstudent . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġstudent Name Ġ= ĠitemView . findViewById < TextView >( R . id . student _ name ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġstudent LastName Ġ= ĠitemView . findViewById < TextView >( R . id . student _ surname ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġstudent Email Ġ= ĠitemView . findViewById < TextView >( R . id . student _ email ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( student : ĠStudent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . student Ġ= Ġstudent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Name . text Ġ= Ġstudent . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstudent LastName . text Ġ= Ġstudent . lastName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstudent Email . text Ġ= Ġstudent . email ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġinner Ġclass ĠStudent Adapter Ġ: ĠRecyclerView . Adapter < Student V ie Holder >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġstudents : ĠList < Student > Ġ= Ġempty List () ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġstudents . size ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠStudent V ie Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( students [ position ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠStudent V ie Holder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= Ġlayout Inflater . inflate ( R . layout . holder _ student , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠStudent V ie Holder ( item View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }