package Ġim . d acer . k ata . ui . main Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . mike pen z . material drawer . Account Header Builder Ċ import Ġcom . mike pen z . material drawer . Drawer Ċ import Ġcom . mike pen z . material drawer . Drawer Builder Ċ import Ġim . d acer . k ata . R Ċ import Ġim . d acer . k ata . data . local . Setting Utility Ċ import Ġim . d acer . k ata . ui . about . About Activity Ċ import Ġim . d acer . k ata . ui . base . Base Activity Ċ import Ġim . d acer . k ata . ui . ly ric . Ly ric Activity Ċ import Ġim . d acer . k ata . ui . main . Main Presenter . Drawer Item Ċ import Ġim . d acer . k ata . ui . main . inbox . Inbox Fragment Ċ import Ġim . d acer . k ata . ui . main . inbox . Inbox Fragment . Companion . REQUEST _ CODE _ OVER LAY _ PERMISSION Ċ import Ġim . d acer . k ata . ui . main . news . News Fragment Ċ import Ġim . d acer . k ata . ui . main . word book . Word Book Fragment Ċ import Ġim . d acer . k ata . ui . settings . Settings Activity Ċ import Ġim . d acer . k ata . util . extension . startActivity Ċ import Ġim . d acer . k ata . util . helper . An ki Droid Helper Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġq iu . ni org ai . StatusBar Compat Ċ import Ġjavax . inject . Inject ĊĊ Ċ class ĠMainActivity Ġ: ĠBase Activity (), ĠMain M vp Ġ{ ĊĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġmain Presenter : ĠMain Presenter ĊĠĠĠ Ġ@ Inject Ġlateinit Ġvar Ġsetting Utility : ĠSetting Utility ĊĠĠĠ Ġprivate Ġval Ġdrawer Ġby Ġlazy Ġ{ Ġinit Drawer () Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlayout Id () Ġ= ĠR . layout . activity _ main ĊĠĠĠ Ġoverride Ġfun ĠgetActivity () Ġ= Ġthis ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġactivity Component (). inject ( this ) ĊĠĠĠĠĠĠĠ Ġmain Presenter . attach View ( this ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( my Toolbar Ġas ĠToolbar ) ĊĊĠĠĠĠĠĠĠ Ġdrawer . setSelection ( Drawer Item . get ( setting Utility . last Exit Tab ). id , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Drawer (): ĠDraw er Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheader Result Ġ= ĠAccount Header Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Activity ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Header Background ( Color Drawable ( Context Compat . getColor ( this , ĠR . color . material _ drawer _ dark _ background ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġdrawer Ġ= ĠDraw er Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Activity ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Toolbar ( my Toolbar Ġas ĠToolbar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Account Header ( header Result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Trans luc ent StatusBar ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Drawer Items (* main Presenter . get Drawer Items ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with On Drawer ItemClickListener Ġ{ Ġ_, Ġ_, Ġdrawer Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( drawer Item . identifier ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDraw er Item . IN BOX . id Ġ-> Ġswitch Fragment ( Inbox Fragment (), ĠR . string . inbox ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDraw er Item . LY RIC . id Ġ-> ĠstartActivity ( Ly ric Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDraw er Item . N HK _ E ASY . id Ġ-> Ġswitch Fragment ( News Fragment . newInstance ( News Fragment . News Type . N HK _ E ASY ), ĠR . string . nh k _ news _ easy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDraw er Item . N HK . id Ġ-> Ġswitch Fragment ( News Fragment . newInstance ( News Fragment . News Type . N HK ), ĠR . string . nh k _ news ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDraw er Item . SETTINGS . id Ġ-> ĠstartActivity ( Settings Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDraw er Item . AB OUT . id Ġ-> ĠstartActivity ( About Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDraw er Item . WORD _ BOOK . id Ġ-> Ġswitch Fragment ( Word Book Fragment (), ĠR . string . word _ book ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with On Drawer ItemClickListener Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ ĠStatus Bar Compat . trans luc ent StatusBar ( this , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdrawer ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġmain Presenter . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġmain Presenter . detach View () ĊĠĠĠĠĠĠĠ Ġsetting Utility . last Exit Tab Ġ= Ġdrawer . current Selection ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠREQUEST _ CODE _ OVER LAY _ PERMISSION ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmain Presenter . restart Listen Service () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġ@ NonNull Ġpermissions : ĠArray < String >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ NonNull Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠAn ki Droid Helper . ANK I _ PERMISSION _ REQUEST Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrant Results [ 0 ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġword Fragment Ġ= Ġsupport FragmentManager . find Fragment ById ( R . id . frame Layout ) Ġas ĠWord Book Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġword Fragment . export An ki () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġswitch Fragment ( fragment : ĠFragment , Ġtitle Res : ĠInt Ġ= ĠR . string . app _ name ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġft Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġft . replace ( R . id . frame Layout , Ġfragment ). commit () ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. setTitle ( title Res ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. subtitle Ġ= Ġnull ĊĠĠĠ Ġ} Ċ } Ċ