package Ġcom . app . h bc u . activity Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Environment Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . widget .* Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġcom . app . h bc u . R Ċ import Ġcom . app . h bc u . model . user . User Login Response Ċ import Ġcom . app . h bc u . ret rofit . ApiClient Ċ import Ġcom . app . h bc u . ret rofit . Api Interface Ċ import Ġcom . app . h bc u . util . App Utils Ċ import Ġcom . app . h bc u . util . Config Ċ import Ġcom . app . h bc u . util . Pref Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . es af irm . image picker . features .* Ċ import Ġcom . es af irm . image picker . model . Image Ċ import Ġde . hd od enh of . circle image view . Circle ImageView Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . Multipart Body Ċ import Ġokhttp 3 . RequestBody Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . HashMap Ċ Ċ class ĠEdit Profile Activity Ġ: ĠBase AppCompatActivity (), ĠView . OnClickListener Ġ{ ĊĠĠĠ Ġval ĠREQUEST _ PERMISSION S _ CODE _ STORAGE Ġ= Ġ 1 2 1 ĊĊĠĠĠ Ġlateinit Ġvar Ġet FirstName : ĠEditText ĊĠĠĠ Ġlateinit Ġvar Ġet LastName : ĠEditText ĊĠĠĠ Ġlateinit Ġvar Ġiv Profile Pic : ĠCircle ImageView ĊĠĠĠ Ġlateinit Ġvar Ġrl Pic : ĠRelative Layout ĊĊĠĠĠ Ġlateinit Ġvar Ġbtn Submit : ĠButton ĊĊĠĠĠ Ġlateinit Ġvar Ġiv Back : ĠImageView ĊĠĠĠ Ġlateinit Ġvar Ġfl Progress : ĠFrame Layout ĊĠĠĠ Ġvar Ġimage path : ĠString Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġval Ġimages Ġ= Ġarray ListOf < Image >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ edit _ profile ) ĊĊĠĠĠĠĠĠĠ Ġinit (); ĊĠĠĠĠĠĠĠ Ġget Profile () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġet LastName Ġ= ĠfindViewById ( R . id . et LastName ) ĊĠĠĠĠĠĠĠ Ġet FirstName Ġ= ĠfindViewById ( R . id . et FirstName ) ĊĠĠĠĠĠĠĠ Ġfl Progress Ġ= ĠfindViewById ( R . id . fl Progress ) ĊĠĠĠĠĠĠĠ Ġiv Profile Pic Ġ= ĠfindViewById ( R . id . iv Profile Pic ) ĊĠĠĠĠĠĠĠ Ġrl Pic Ġ= ĠfindViewById ( R . id . rl Pic ) ĊĊĊĠĠĠĠĠĠĠ Ġbtn Submit Ġ= ĠfindViewById ( R . id . btn Submit ) ĊĊĠĠĠĠĠĠĠ Ġiv Back Ġ= ĠfindViewById ( R . id . iv Back ) ĊĊĠĠĠĠĠĠĠ Ġbtn Submit . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġiv Back . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġrl Pic . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Pref . getUser Login Data ( this ). firstName Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġet FirstName . setText ( Pref . getUser Login Data ( this ). firstName Ġ+ Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Pref . getUser Login Data ( this ). lastName Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġet LastName . setText ( Pref . getUser Login Data ( this ). lastName Ġ+ Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(!( Pref . getUser Login Data ( this )?. av tar Ġ+ Ġ""). equals ("")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( Pref . getUser Login Data ( this ) !!. av tar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ user _ placeholder ). error ( R . drawable . ic _ user _ placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDisk Cache Strategy . NONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( iv Profile Pic ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġcheck Per mis ion () ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġcheck Per mis ion () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! App Utils . Check Storage READ Permission ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Permissions Needed : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Permissions Needed . add ( Manifest . permission . READ _ EXTERNAL _ STORAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Permissions Needed . to Typed Array (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠREQUEST _ PERMISSION S _ CODE _ STORAGE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġimage Picker Launcher Ġ= Ġregister Image Picker Ġ{ ĊĠĠĠĠĠĠĠ Ġimages . clear () ĊĠĠĠĠĠĠĠ Ġimages . addAll ( it ) ĊĠĠĠĠĠĠĠ Ġif Ġ( images . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" IMG ", Ġimages . get ( 0 ). path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġ(( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . Q )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( Uri . from File ( File ( images . get ( 0 ). path ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ user _ placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . ic _ user _ placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( iv Profile Pic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetPath ( uri : ĠUri ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprojection Ġ= ĠarrayOf ( Media Store . Images . Media . DATA ) ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġmanaged Query ( uri , Ġprojection , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġstart Man aging Cursor ( cursor ) ĊĠĠĠĠĠĠĠ Ġval Ġcolumn _ index Ġ= Ġcursor . getColumnIndex OrThrow ( Media Store . Images . Media . DATA ) ĊĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĠĠĠĠĠĠĠ Ġreturn Ġcursor . getString ( column _ index ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( p 0 : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( p 0 ?. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . iv Back Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . rl Pic Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Picker Launcher . launch ( create Config ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġopen Image Selection () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn Submit Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( et FirstName . text . toString (). trim ()). equals ("")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet FirstName . error Ġ= Ġresources . getString ( R . string . lbl _ required ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(( et LastName . text . toString (). trim ()). equals ("")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet LastName . error Ġ= Ġresources . getString ( R . string . lbl _ required ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Profile () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Config (): ĠImage Picker Config Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreturn After Capture Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġis Single Mode Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġuse Custom Image Loader Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġfolder Mode Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġinclude Video Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġonly Video Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġis Exclude Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ/* ĠĠĠĠĠĠ ĠImage Picker Components Holder . set Internal Component ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Image Picker Components ( this , Ġuse Custom Image Loader ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) */ ĊĊĠĠĠĠĠĠĠ Ġreturn ĠImage Picker Config Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmode Ġ= Ġif Ġ( is Single Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Picker Mode . SINGLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Picker Mode . MULTIPLE Ġ// Ġmulti Ġmode Ġ( default Ġmode ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= Ġ" in " Ġ// ĠSet Ġimage Ġpicker Ġlanguage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtheme Ġ= ĠR . style . Image Picker Theme ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ġwhether Ġpick Ġaction Ġor Ġcamera Ġaction Ġshould Ġreturn Ġimmediate Ġresult Ġor Ġnot . ĠOnly Ġworks Ġin Ġsingle Ġmode Ġfor Ġimage Ġpicker ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Mode Ġ= Ġif Ġ( return After Capture ) ĠReturn Mode . ALL Ġelse ĠReturn Mode . NONE ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Folder Mode Ġ= Ġfolder Mode Ġ// Ġset Ġfolder Ġmode Ġ( false Ġby Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Include Video Ġ= Ġinclude Video Ġ// Ġinclude Ġvideo Ġ( false Ġby Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Only Video Ġ= Ġonly Video Ġ// Ġinclude Ġvideo Ġ( false Ġby Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarrow Color Ġ= ĠColor . RED Ġ// Ġset Ġtoolbar Ġarrow Ġup Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Title Ġ= Ġ" Folder " Ġ// Ġfolder Ġselection Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Title Ġ= Ġ" Tap Ġto Ġselect " Ġ// Ġimage Ġselection Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdone ButtonText Ġ= Ġ" DONE " Ġ// Ġdone Ġbutton Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Done Button Always Ġ= Ġtrue Ġ// ĠShow Ġdone Ġbutton Ġalways Ġor Ġnot ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġ 1 Ġ// Ġmax Ġimages Ġcan Ġbe Ġselected Ġ( 9 9 Ġby Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Show Camera Ġ= Ġtrue Ġ// Ġshow Ġcamera Ġor Ġnot Ġ( true Ġby Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġsave Path Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Picker Save Path (" Camera ") Ġ* /// Ġcaptured Ġimage Ġdirectory Ġname Ġ(" Camera " Ġfolder Ġby Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Path Ġ= ĠImage Picker Save Path ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . get External Storage Public Directory ( Environment . DIRECTORY _ DC IM ). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġfiles Dir . path , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEnvironment . get External Storage Directory (). path , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Relative Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ// Ġcan Ġbe Ġa Ġfull Ġpath ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Exclude ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexcluded Images Ġ= Ġimages . to Files () Ġ// Ġdon 't Ġshow Ġanything Ġon Ġthis Ġselected Ġimages ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Images Ġ= Ġimages Ġ Ġ// Ġoriginal Ġselected Ġimages , Ġused Ġin Ġmulti Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Image Selection () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġcheck Per mis ion () ĊĠĠĠĠĠĠĠ Ġ/* ĠĠ ĠImage Picker . create ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. return Mode ( Return Mode . ALL ) Ġ// Ġset Ġwhether Ġpick Ġand Ġ/ Ġor Ġcamera Ġaction Ġshould Ġreturn Ġimmediate Ġresult Ġor Ġnot . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. folder Mode ( true ) Ġ// Ġfolder Ġmode Ġ( false Ġby Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toolbar Folder Title (" Folder ") Ġ// Ġfolder Ġselection Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toolbar Image Title (" Tap Ġto Ġselect ") Ġ// Ġimage Ġselection Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toolbar Arrow Color ( resources . getColor ( R . color . white )) Ġ// ĠToolbar Ġ' up ' Ġarrow Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. include Video ( false ) Ġ// ĠShow Ġvideo Ġon Ġimage Ġpicker ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. single () Ġ// Ġsingle Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// . multi () Ġ// Ġmulti Ġmode Ġ( default Ġmode ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. limit ( 1 ) Ġ// Ġmax Ġimages Ġcan Ġbe Ġselected Ġ( 9 9 Ġby Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show Camera ( true ) Ġ// Ġshow Ġcamera Ġor Ġnot Ġ( true Ġby Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. image Directory (" Camera ") Ġ// Ġdirectory Ġname Ġfor Ġcaptured Ġimage Ġ Ġ(" Camera " Ġfolder Ġby Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// . origin ( images ) Ġ// Ġoriginal Ġselected Ġimages , Ġused Ġin Ġmulti Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// . exclude ( images ) Ġ// Ġexclude Ġanything Ġthat Ġin Ġimage . getPath () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// . exclude Files ( files ) Ġ// Ġsame Ġas Ġexclude Ġbut Ġusing ĠArrayList < File > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ. theme ( R . style . Custom Image Picker Theme ) Ġ// Ġmust Ġinherit Ġef _ Base Theme . Ġplease Ġrefer Ġto Ġsample ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. enable Log ( false ) Ġ// Ġdisabling Ġlog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () */ ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġget Profile () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! isConnected To Internet ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġuid : ĠString ? Ġ= ĠPref . getString Value ( this , ĠConfig . PRE F _ UID , Ġ"") ĊĊĠĠĠĠĠĠĠ Ġfl Progress . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠApi Client . client . create ( Api Interface :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġcall : ĠCall < User Login Response > Ġ= Ġservice . get Profile ( App Utils . get AuthToken ( this ), Ġuid !! ) ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < User Login Response > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall : ĠCall < User Login Response >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse : ĠResponse < User Login Response > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfl Progress . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . body () !!. status !!. equals (" 2 0 0 ")) Ġ{ ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPref . setUser Login Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Edit Profile Activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body () !!. data !!. user ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet FirstName . setText ( response . body () !!. data !!. user !!. firstName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet LastName . setText ( response . body () !!. data !!. user !!. lastName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this @ Edit Profile Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( Pref . getUser Login Data ( this @ Edit Profile Activity ) !!. av tar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ user _ placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . ic _ user _ placeholder ). disk Cache Strategy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDisk Cache Strategy . NONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( iv Profile Pic ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < User Login Response >, Ġt : ĠThrowable ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . msg _ som thing _ wrong )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfl Progress . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Profile () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! isConnected To Internet ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġtoken : ĠString ? Ġ= ĠPref . getString Value ( this , ĠConfig . PRE F _ F CM _ TOKEN , Ġ"- ") ĊĊĠĠĠĠĠĠĠ Ġfl Progress . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠ Ġimage path Ġ= Ġ""; ĊĠĠĠĠĠĠĠ Ġif Ġ( images . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage path Ġ= Ġimages . get ( 0 ). path ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġimage Perfil : ĠMultip art Body . Part ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= ĠFile ( image path ) ĊĠĠĠĠĠĠĠ Ġif Ġ( output Ġ!= Ġnull Ġ&& Ġoutput . exists ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest File Ġ= ĠRequest Body . create ( MediaType . parse (" multipart / form - data "), Ġoutput ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMultip art Body . Part Ġis Ġused Ġto Ġsend Ġalso Ġthe Ġactual Ġfile Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMultip art Body . Part Ġis Ġused Ġto Ġsend Ġalso Ġthe Ġactual Ġfile Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Perfil Ġ= ĠMultip art Body . Part . create FormData (" av tar ", Ġoutput . name , Ġrequest File ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġval Ġrequest UserId : ĠRequest Body Ġ= ĠRequest Body . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMediaType . parse (" multipart / form - data "), ĠPref . getString Value ( this , ĠConfig . PRE F _ UID , Ġ"") !! ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest f Name : ĠRequest Body Ġ= ĠRequest Body . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMediaType . parse (" multipart / form - data "), Ġet FirstName . text . toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġrequest l Name : ĠRequest Body Ġ= ĠRequest Body . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMediaType . parse (" multipart / form - data "), Ġet LastName . text . toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ/* Ġval Ġuserid : ĠRequest Body Ġ= ĠRequest Body . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĠMediaType . parse (" text / plain "), ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĠAZ Utils . getUserId ( this ) ĊĠĠĠĠĠĠĠĠ Ġ) */ ĊĠĠĠĠĠĠĠ Ġval Ġparams : ĠHashMap < String , ĠString > Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠ Ġparams . put (" user _ id ", ĠPref . getString Value ( this , ĠConfig . PRE F _ UID , Ġ"") !! ) ĊĠĠĠĠĠĠĠ Ġparams . put (" first _ name ", Ġet FirstName . text . toString ()) ĊĠĠĠĠĠĠĠ Ġparams . put (" last _ name ", Ġet LastName . text . toString ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠApi Client . client . create ( Api Interface :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġcall : ĠCall < User Login Response > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . update Profile ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Utils . get AuthToken ( this ), Ġrequest UserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest f Name , Ġrequest l Name , Ġimage Perfil ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĊĠĠĠĠĠĠĠ Ġcall !!. enqueue ( object Ġ: ĠCallback < User Login Response > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall : ĠCall < User Login Response >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse : ĠResponse < User Login Response > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfl Progress . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . body () !!. status !!. equals (" 2 0 0 ")) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( response . body () !!. message !!. success ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPref . setUser Login Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Edit Profile Activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body () !!. data !!. user ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( response . body () !!. message !!. success ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . msg _ som thing _ wrong )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < User Login Response >, Ġt : ĠThrowable ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . msg _ som thing _ wrong )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfl Progress . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ/* if Ġ( Image Picker . should Handle ( request Code , ĠresultCode , Ġdata )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġa Ġlist Ġof Ġpicked Ġimages ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// List < Image > Ġimages Ġ= ĠImage Picker . get Images ( data ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġor Ġget Ġa Ġsingle Ġimage Ġonly ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Ġ= ĠImage Picker . getFirst Image OrNull ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage path Ġ= Ġimage . path ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( Uri . from File ( File ( image . path ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ user _ placeholder ). error ( R . drawable . ic _ user _ placeholder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( iv Profile Pic ) ĊĠĠĠĠĠĠĠ Ġ}*/ ĊĠĠĠ Ġ} Ċ }