package Ġcom . example . ant on . sb . ui . activities . ad Activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Navigation View Ċ import Ġandroid . support . v 4 . view . Gravity Compat Ċ import Ġandroid . support . v 7 . app . ActionBar Drawer Toggle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . TextView Ċ import Ġcom . example . ant on . sb . R Ċ import Ġcom . example . ant on . sb . model . Result Ad Ċ import Ġcom . example . ant on . sb . extensions . read UserData Ċ import Ġcom . example . ant on . sb . service . update DataList Ċ import Ġcom . example . ant on . sb . ui . activities . About App Ċ import Ġcom . example . ant on . sb . ui . activities . user Activity . Login Activity Ċ import Ġcom . example . ant on . sb . ui . activities . user Activity . User Settings Activity Ċ import Ġcom . example . ant on . sb . ui . adapters . Main Adapter Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ġ// Ġk tl int - disable Ġno - wildcard - imports Ċ import Ġkotlinx . android . synt hetic . main . app _ bar _ main .* Ġ// Ġk tl int - disable Ġno - wildcard - imports Ċ import Ġorg . jetbrains . ank o . do Async Ċ import Ġorg . jetbrains . ank o . find Ċ import Ġorg . jetbrains . ank o . startActivity Ċ import Ġorg . jetbrains . ank o . ui Thread Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠA Ġmain Ġscreen Ġof Ġapp Ġwith Ġupdating Ġlist Ġof Ġads . Ċ Ġ* Ċ Ġ* Ġ@ author ĠAnt on ĠK ir ich enk ov Ċ Ġ*/ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠNavigation View . On Navigation ItemSelected Listener Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ property Ġtoken ĊĠĠĠĠ Ġ* Ġ@ property Ġkey Token ĊĠĠĠĠ Ġ* Ġ@ property Ġname ĊĠĠĠĠ Ġ* Ġ@ property Ġmail ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġsaved Ġsession _ id ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġtoken : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġtoken Ġkey Ġfor ĠShared Preference ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġkey Token Ġ= Ġ" token " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġusername Ġkey Ġfor ĠShared Preference ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġname : ĠString Ġ= Ġ" name " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġemail Ġkey Ġfor ĠShared Preference ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġmail : ĠString Ġ= Ġ" email " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ suppress ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġtoken Ġ= Ġread UserData ( key Token , Ġthis ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlist : ĠArrayList < Result Ad > Ġ= ĠArrayList () ĊĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= Ġfind < RecyclerView >( R . id . ad _ list ) ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtoggle Ġ= ĠAction Bar Drawer Toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġdrawer _ layout , Ġtoolbar , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . navigation _ drawer _ open , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . navigation _ drawer _ close ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdrawer _ layout . add Drawer Listener ( toggle ) ĊĠĠĠĠĠĠĠ Ġtoggle . sync State () ĊĊĠĠĠĠĠĠĠ Ġnav _ view . set Navigation ItemSelected Listener ( this ) ĊĊĠĠĠĠĠĠĠ Ġnav _ view . getHeader View ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġfind < Navigation View >( R . id . nav _ view ). getHeader View ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġname User Ġ= Ġheader . find < TextView >( R . id . user _ first _ name ) ĊĠĠĠĠĠĠĠ Ġval Ġuser Email Ġ= Ġheader . find < TextView >( R . id . mail ) ĊĠĠĠĠĠĠĠ Ġval Ġnav View Header Ġ= Ġheader . find < View >( R . id . nav _ view _ header ) ĊĠĠĠĠĠĠĠ Ġval Ġsearch Button Ġ= Ġfind < Image Button >( R . id . search _ button ) ĊĊĠĠĠĠĠĠĠ Ġsearch Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < Search Activity >() ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Username ( name User , Ġuser Email ) ĊĊĠĠĠĠĠĠĠ Ġnav View Header . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( token . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < Login Activity >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < User Settings Activity >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdisplay Ads ( list , Ġre cyclerView , Ġlayout Manager ) ĊĊĠĠĠĠĠĠĠ ĠprogressBar _ main . visibility Ġ= ĠProgress Bar . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġfor Ġdisplay Ġads Ġwith Ġre cyclerView ĠAdapter . ĊĠĠĠĠ Ġ* ĠIf Ġhave Ġproblems Ġwith Ġconnection Ġserver Ġor Ġno Ġads , ĊĠĠĠĠ Ġ* Ġthen Ġdisplay Ġmessage Ġ" Ðŀ Ð± ÑĬ Ñı Ð² Ð» ÐµÐ½Ð¸Ð¹ ĠÐ½ ÐµÑĤ ". ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlist Ġ[ ArrayList ] Ġof Ġads ĊĠĠĠĠ Ġ* Ġ@ param Ġre cyclerView ĊĠĠĠĠ Ġ* Ġ@ param Ġlayout Manager ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ update DataList ] ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ Main Adapter ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdisplay Ads ( ĊĠĠĠĠĠĠĠ Ġlist : ĠArrayList < Result Ad >, ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ Ġlayout Manager : ĠLinearLayoutManager ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata List Ġ= Ġupdate DataList ( list , Ġthis @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar _ main . visibility Ġ= ĠProgress Bar . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMain Adapter ( data List , Ġobject Ġ: ĠMain Adapter . On ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinvoke ( ad : ĠResult Ad ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < Ad View Activity >(" ad Id " Ġto Ġad . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . add On Scroll Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMain Adapter . On Scroll Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ MainActivity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ suppress ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( drawer _ layout . is Drawer Open ( Gravity Compat . START )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrawer _ layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ suppress ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Navigation ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . search Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < MainActivity >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . account Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( token . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < Login Activity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < User Settings Activity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . my _ ads Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( token . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < Login Activity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < My Ads Activity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . add _ ad Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( token . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < Login Activity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < Add Ad Activity >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . about _ app Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < About App >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdrawer _ layout . close Drawer ( Gravity Compat . START ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġfor Ġdisplay Ġfull Ġuser Ġname Ġand Ġemail Ġfrom ĠShared Preference Ġon Ġnav _ header . ĊĠĠĠĠ Ġ* ĠIf Ġuser Ġdoesn 't Ġlogin , Ġthen Ġdisplay Ġ" ÐĴ Ð¾Ð¹ ÑĤÐ¸ Ġ/ ĠÐ· Ð°ÑĢ ÐµÐ³ Ð¸ÑģÑĤ ÑĢÐ¸ ÑĢÐ¾Ð² Ð°ÑĤÑĮÑģÑı " ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġname User Ġuser Ġname ĊĠĠĠĠ Ġ* Ġ@ param Ġuser Email Ġuser Ġemail ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Username ( name User : ĠTextView , Ġuser Email : ĠTextView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( token . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Email . text Ġ= ĠgetString ( R . string . Enter _ registration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname User . text Ġ= Ġread UserData ( mail , Ġthis ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname User . text Ġ= Ġread UserData ( name , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Email . text Ġ= Ġread UserData ( mail , Ġthis ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ