package Ġorg . wik ied u foundation . wik ied ud ashboard . ui . profile . view Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View .* Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . widget . Search View Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . R Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . data . preferences . Shared Prefs Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . ui . course detail . recent activity . Profile Presenter Impl Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . ui . course detail . uploads . data . Course Upload List Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . ui . course detail . uploads . view . Course Upload s Fragment Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . ui . profile . Profile Activity Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . ui . profile . Profile Contract Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . ui . profile . Ret rofit Profile Provider Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . ui . profile . data . Profile Details Response Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . ui . profile . data . Profile Response Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . ui . settings . Settings Activity Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . util . Urls Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . util . ViewPager Adapter Ċ import Ġorg . wik ied u foundation . wik ied ud ashboard . util . View Utils Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ*/ Ċ class ĠProfile Fragment Ġ: ĠFragment (), ĠProfile Contract . View , ĠToolbar . On MenuItem ClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Param 1 : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Param 2 : ĠBoolean ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtoolbar : ĠToolbar ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtab Layout : ĠTab Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġview Pager : ĠView Pager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠprogressBar : ĠProgress Bar ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġshared Prefs : ĠShared Prefs ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpresenter : ĠProfile Contract . Presenter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġview Pager Adapter : ĠView Pager Adapter ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġiv Profile Pic : ĠImageView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Username : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Description : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Email : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Location : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtv Inst itute : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġll As Student : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġll By Student : ĠLinearLayout ? Ġ= Ġnull Ċ // ĠĠĠ Ġprivate Ġvar Ġll As Student : ĠLinearLayout ?= null ĊĠĠĠ Ġprivate Ġvar Ġll Email : LinearLayout ?= null ĊĠĠĠ Ġprivate Ġvar Ġll Location : LinearLayout ?= null ĊĠĠĠ Ġprivate Ġvar Ġll Inst itute : LinearLayout ?= null ĊĠĠĠ Ġprivate Ġvar Ġll Profile Parent : ĠLinearLayout ?= null ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠĠĠĠĠ Ġif Ġ( arguments Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Param 1 Ġ= Ġarguments !!. getString ( ARG _ PARAM 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Param 2 Ġ= Ġarguments !!. getBoolean ( ARG _ PARAM 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ training , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġtoolbar Ġ= Ġview . findViewById ( R . id . toolbar ) ĊĠĠĠĠĠĠĠ Ġtab Layout Ġ= Ġview . findViewById ( R . id . tab Layout ) ĊĠĠĠĠĠĠĠ Ġview Pager Ġ= Ġview . findViewById ( R . id . view Pager ) ĊĠĠĠĠĠĠĠ ĠprogressBar Ġ= Ġview . findViewById ( R . id . progress Bar ) ĊĠĠĠĠĠĠĠ Ġtoolbar !!. inflate Menu ( R . menu . menu _ profile ) ĊĠĠĠĠĠĠĠ Ġtoolbar !!. setOn MenuItem ClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġiv Profile Pic Ġ= Ġview . findViewById ( R . id . iv _ profile _ pic ) ĊĠĠĠĠĠĠĠ Ġtv Username Ġ= Ġview . findViewById ( R . id . tv _ profile _ username ) ĊĠĠĠĠĠĠĠ Ġtv Description Ġ= Ġview . findViewById ( R . id . tv _ profile _ description ) ĊĠĠĠĠĠĠĠ Ġtv Email Ġ= Ġview . findViewById ( R . id . tv _ profile _ email ) ĊĠĠĠĠĠĠĠ Ġtv Location Ġ= Ġview . findViewById ( R . id . tv _ profile _ location ) ĊĠĠĠĠĠĠĠ Ġtv Inst itute Ġ= Ġview . findViewById ( R . id . tv _ profile _ institute ) ĊĠĠĠĠĠĠĠ Ġll Email Ġ= Ġview . findViewById ( R . id . ll _ profile _ email ) ĊĠĠĠĠĠĠĠ Ġll Location Ġ= Ġview . findViewById ( R . id . ll _ profile _ location ) ĊĠĠĠĠĠĠĠ Ġll Inst itute = Ġview . findViewById ( R . id . ll _ profile _ institute ) ĊĠĠĠĠĠĠĠ Ġll Profile Parent Ġ= Ġview . findViewById ( R . id . ll _ profile _ parent ) ĊĠĠĠĠĠĠĠ Ġview Pager Adapter Ġ= ĠView Pager Adapter ( child FragmentManager ) ĊĠĠĠĠĠĠĠ Ġview Pager !!. adapter Ġ= Ġview Pager Adapter ĊĠĠĠĠĠĠĠ Ġtab Layout !!. setup With ViewPager ( view Pager ) Ċ // ĠĠĠĠĠĠĠ Ġcontext Ġ= ĠgetContext () ĊĠĠĠĠĠĠĠ Ġshared Prefs Ġ= ĠShared Prefs ( getContext ()) ĊĠĠĠĠĠĠĠ Ġtoolbar !!. set Navigation OnClickListener Ġ{ Ġactivity !!. on Back Pressed () Ġ} ĊĠĠĠĠĠĠĠ Ġpresenter Ġ= ĠProfile Presenter Impl ( this , ĠRet rofit Profile Provider ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( m Param 1 !!. equals ( shared Prefs !!. userName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter !!. request Profile ( shared Prefs ?. cookies !! , Ġshared Prefs ?. userName !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter !!. request Profile Details ( shared Prefs ?. userName !! ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter !!. request Profile ( shared Prefs ?. cookies !! , Ġm Param 1 !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter !!. request Profile Details ( m Param 1 !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( m Param 2 !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar !!. set Navigation Icon ( R . drawable . ic _ arrow _ back _ black _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar !!. set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !!. on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon MenuItem Click ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠIntent ( context , ĠSettings Activity :: class . java ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( i ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġset Tabs ( data : ĠProfile Response ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment List Ġ= ĠArrayList < Fragment >() ĊĠĠĠĠĠĠĠ Ġval Ġtitle List Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠ Ġtitle List . add (" Contribution ĠStatistics ") ĊĠĠĠĠĠĠĠ Ġfragment List . add ( Profile Stats Fragment . newInstance ( data , Ġm Param 1 !! , Ġm Param 2 !! )) ĊĠĠĠĠĠĠĠ Ġtitle List . add (" Course ĠDetails ") ĊĠĠĠĠĠĠĠ Ġfragment List . add ( Profile Course List Fragment . newInstance ( data )) ĊĠĠĠĠĠĠĠ Ġtitle List . add (" Recent ĠUp loads ") ĊĠĠĠĠĠĠĠ Ġval Ġcourse Upload List Ġ= ĠCourse Upload List ( data . uploads !! ) ĊĠĠĠĠĠĠĠ Ġfragment List . add ( Course Upload s Fragment . newInstance ( 2 , Ġ"", Ġcourse Upload List )) ĊĊĠĠĠĠĠĠĠ Ġview Pager Adapter !!. set Tab Data ( fragment List , Ġtitle List ) ĊĠĠĠĠĠĠĠ Ġview Pager Adapter !!. notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Profile Data ( data : ĠProfile Details Response ) Ġ{ ĊĠĠĠĠĠĠĠ Ġll Profile Parent !!. visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠ Ġval Ġprofile Pic Url Ġ= ĠUrl s . BASE _ URL Ġ+ Ġdata . user _ profile . profile _ image ĊĠĠĠĠĠĠĠ ĠTim ber . d ( profile Pic Url ) ĊĠĠĠĠĠĠĠ Ġif Ġ( data . user _ profile . profile _ image Ġ== Ġnull Ġ|| Ġdata . user _ profile . profile _ image . equals ("")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Profile Pic !!. setImage Drawable ( resources . get Drawable ( R . drawable . ic _ account _ circle _ white _ 4 8 dp )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context ). load ( profile Pic Url ). apply ( RequestOptions (). circle Crop ()). into ( iv Profile Pic ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtv Username !!. text Ġ= Ġm Param 1 !! Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( data . user _ profile . email . isNotEmpty ()) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtv Email !!. text Ġ= Ġdata . user _ profile . email Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġll Email !!. visibility Ġ= ĠIN VISIBLE Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( data . user _ profile . bio != null ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Description !!. text Ġ= Ġdata . user _ profile . bio ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Description !!. visibility Ġ= ĠIN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( data . user _ profile . location != null ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Location !!. text Ġ= Ġdata . user _ profile . location ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġll Location !!. visibility Ġ= ĠIN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( data . user _ profile . institution != null ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtv Inst itute !!. text Ġ= Ġdata . user _ profile . institution Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġll Inst itute !!. visibility Ġ= ĠIN VISIBLE Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetData ( data : ĠProfile Response ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Tabs ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow ProgressBar ( show : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( show ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar !!. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar !!. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Message ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠView Utils . show Toast ( context !! , Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġthe Ġfragment Ġinitialization Ġparameters , Ġe . g . ĠARG _ ITEM _ NUMBER ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠARG _ PARAM 1 Ġ= Ġ" param 1 " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠARG _ PARAM 2 Ġ= Ġ" param 2 " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠUse Ġthis Ġfactory Ġmethod Ġto Ġcreate Ġa Ġnew Ġinstance Ġof ĊĠĠĠĠĠĠĠĠ Ġ* Ġthis Ġfragment Ġusing Ġthe Ġprovided Ġparameters . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġparam 1 ĠParameter Ġ 1 . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġparam 2 ĠParameter Ġ 2 . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠA Ġnew Ġinstance Ġof Ġfragment ĠExplo re Fragment . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠRename Ġand Ġchange Ġtypes Ġand Ġnumber Ġof Ġparameters ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( param 1 : ĠString , Ġother _ user : ĠBoolean ): ĠProfile Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠProfile Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( ARG _ PARAM 1 , Ġparam 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . put Boolean ( ARG _ PARAM 2 , Ġother _ user ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }