package Ġcmp e . bo un . c ult id ate . activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . preference . Preference Manager Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġcmp e . bo un . c ult id ate . R Ċ import Ġcmp e . bo un . c ult id ate . api . Api Interface Ċ import Ġcmp e . bo un . c ult id ate . model . Auth Response Ċ import Ġcmp e . bo un . c ult id ate . model . UserProfile Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġcom . squareup . pic asso . Pic asso ĊĊĊ Ċ /** Ċ Ġ* ĠProfile Activity Ġclass Ġcontains Ġthe Ġmethods Ċ Ġ* Ġthat Ġa Ġuser Ġcan Ġvisit Ġher / his Ġprofile Ġpage Ċ Ġ* Ġon Ġthe Ġpage Ġthat Ġis Ġcreated Ċ Ġ* Ġas Ġactivity _ profile _ page Ġlayout Ġby Ġbinding Ġthe Ċ Ġ* ĠLogin ĠAPI Ġendpoints . Ċ Ġ* Ċ Ġ* Ġ@ author ĠAn Ä± l Ċ Ġ* Ċ Ġ* ĠNotes : Ġcompiling Ġand Ġworking Ċ Ġ*/ Ċ class ĠProfile Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠonCreate Ġmethod Ġis Ġgeneric Ġmethod Ġthat Ġcontains ĊĠĠĠĠ Ġ* Ġthe Ġcodes Ġabout Ġthe Ġmain Ġfunctionality Ġof Ġthe ĊĠĠĠĠ Ġ* Ġclass . ĠCreate Ġa Ġrequest Ġfor Ġthe ĠAPI Ġfor Ġuser Ġto ĊĠĠĠĠ Ġ* Ġvisit Ġhis / her Ġprofile Ġpage Ġaccording Ġto Ġfields Ġin ĠAPI . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAll Ġfields Ġare Ġdefined . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠResponse Ġtypes Ġand Ġfail Ġmessages Ġare Ġdefined . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠsavedInstanceState ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ profil ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsettings Button Ġ= ĠfindViewById < Button >( R . id . settings _ button ) ĊĊĠĠĠĠĠĠĠ Ġval Ġevents Button Ġ= ĠfindViewById < Button >( R . id . events _ button ) ĊĠĠĠĠĠĠĠ Ġval Ġfollow ers Button Ġ= ĠfindViewById < Button >( R . id . followers _ button ) ĊĠĠĠĠĠĠĠ Ġval Ġfollow ings Button Ġ= ĠfindViewById < Button >( R . id . follow ings _ button ) ĊĊĠĠĠĠĠĠĠ Ġval Ġname Text Ġ= ĠfindViewById < TextView >( R . id . name _ text ) ĊĠĠĠĠĠĠĠ Ġval Ġplace Text Ġ= ĠfindViewById < TextView >( R . id . place _ text ) ĊĠĠĠĠĠĠĠ Ġval Ġinterest s Text Ġ= ĠfindViewById < TextView >( R . id . interest s _ text ) ĊĊĠĠĠĠĠĠĠ Ġval Ġprofile Image Ġ= ĠfindViewById < ImageView >( R . id . profile _ image ) ĊĊĠĠĠĠĠĠĠ Ġsettings Button . setOnClickListener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠSettings Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= ĠPreference Manager . getDefault SharedPreferences ( base Context ). let Ġ{ Ġprefs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAuth Response ( token Ġ= Ġprefs . getString (" token ", Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġprefs . getInt (" token _ user ", Ġ- 1 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= Ġcreate Service () ĊĠĠĠĠĠĠĠ Ġservice . user ( token . userId , Ġtoken . token ). enqueue ( object Ġ: ĠCallback < UserProfile > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < UserProfile >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Profile Activity , Ġ" Can Ġnot Ġaccess Ġto Ġservice ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < UserProfile >, Ġresponse : ĠResponse < UserProfile >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . code () Ġ== Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Text . text Ġ= ĠString . format ("% s Ġ% s ", Ġresponse . body () !!. firstName , Ġresponse . body () !!. lastName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Text . text Ġ= ĠString . format ("% s Ġ", response . body () !!. city ) Ġ// ĠString . format ("% s Ġ% s ", Ġresponse . body () !!. firstName , Ġresponse . body () !!. lastName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// bio Text . text Ġ= ĠString . format ("% s Ġ", response . body () !!. bio ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġinterest s Ġ= Ġ" Inter ests : Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body () !!. tags !!. forEach Ġ{ Ġe Ġ-> Ġinterest s Ġ+= Ġe . name Ġ+ Ġ"; Ġ"} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterest s Text . text Ġ= Ġinterest s ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load ( String . format ("% s Ġ", response . body () !!. profile _ photo )). into ( profile Image ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevents Button . text Ġ= ĠString . format ("% d Ġ\ n Ġevents Ġ", response . body () !!. owned _ events _ count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfollow ers Button . text Ġ= ĠString . format ("% d Ġ\ n Ġfollow ers ", response . body () !!. follow er _ count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfollow ings Button . text Ġ= ĠString . format ("% d Ġ\ n Ġfollow ings ", response . body () !!. following _ count ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Profile Activity , Ġ" Can Ġnot Ġaccess Ġto Ġprofile ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcreate Service () Ġmethod Ġcreates Ġa Ġrequest Ġto ĠAPI ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġretrofit . create ( Api Interface :: class . java ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Service (): ĠApi Interface Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠBASE _ URL Ġ= Ġ" http :// c ult id ate . herokuapp . com /" ĊĠĠĠĠĠĠĠ Ġval Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( Api Interface :: class . java ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ