package Ġcom . g ce ct . g ce ct app . ui . activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . view . Gravity Compat Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . Nav Host Fragment Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . downloader . PR Downloader Ċ import Ġcom . g ce ct . g ce ct app . R Ċ import Ġcom . g ce ct . g ce ct app . adapters . Nav Base Recycler Adapter Ċ import Ġcom . g ce ct . g ce ct app . databinding . Activity Main Binding Ċ import Ġcom . g ce ct . g ce ct app . adapters . Home Auto Slider Adapter Ċ import Ġcom . g ce ct . g ce ct app . view models .* Ċ import Ġcom . smart e ist . auto image slider . Indicator View . animation . type . Indicator Animation Type Ċ import Ġcom . smart e ist . auto image slider . Slider Animations Ċ import Ġcom . smart e ist . auto image slider . Slider View ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠView . OnClickListener Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠMainActivity ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpdf Loader ViewModel : ĠPdf Viewer ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Main Binding ĊĠĠĠ Ġval Ġnote ViewModel Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewModel Provider . Android ViewModel Factory . getInstance ( application ) ĊĠĠĠĠĠĠĠ Ġ). get ( Note ViewModel :: class . java ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ main ) ĊĠĠĠĠĠĠĠ ĠPR Downloader . initialize ( application Context ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMainActivity ViewModel Factory () ĊĠĠĠĠĠĠĠ Ġ). get ( MainActivity ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġpdf Loader ViewModel Ġ= ĠViewModel Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPdf Viewer ViewModel Factory () ĊĠĠĠĠĠĠĠ Ġ). get ( Pdf Viewer ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġfinding Ġthe Ġnav Controller ĊĠĠĠĠĠĠĠ Ġval Ġnav Host Fragment Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . find Fragment ById ( R . id . fragment _ container ) Ġas ĠNav Host Fragment ĊĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= Ġnav Host Fragment . nav Controller ĊĊĠĠĠĠĠĠĠ Ġ// Ġgetting Ġthe Ġre cycler view Ġby Ġits Ġid ĊĠĠĠĠĠĠĠ Ġval Ġre cycler view Ġ= ĠfindViewById < RecyclerView >( R . id . nav _ base _ recycler _ view ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthis Ġcreates Ġa Ġvertical Ġlayout ĠManager ĊĠĠĠĠĠĠĠ Ġre cycler view . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġwill Ġpass Ġthe ĠArrayList Ġto Ġour ĠAdapter ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNav Base Recycler Adapter ( this , Ġnav Controller , Ġbinding . img H amburger , Ġbinding . drawer Layout , viewModel , pdf Loader ViewModel ) ĊĠĠĠĠĠĠĠ Ġadapter . update List ( viewModel . main List ) ĊĠĠĠĠĠĠĠ Ġ// ĠSetting Ġthe ĠAdapter Ġwith Ġthe Ġre cycler view ĊĠĠĠĠĠĠĠ Ġre cycler view . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġbinding . img H amburger . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . img Close . setOnClickListener ( this ) ĊĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v ?. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . img H amburger Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . drawer Layout . open Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . img Close Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . drawer Layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }