package Ġwork . cal mat o . pre stop ay . ui . account Edit Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġcom . yal antis . uc rop . UC rop Ċ import Ġkotlinx . android . synt hetic . main . fragment _ account _ edit .* Ċ import Ġorg . json . JSONObject Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġwork . cal mat o . pre stop ay . MainActivity Ċ import Ġwork . cal mat o . pre stop ay . R Ċ import Ġwork . cal mat o . pre stop ay . databinding . Fragment Account Edit Binding Impl Ċ import Ġwork . cal mat o . pre stop ay . network . Api Ċ import Ġwork . cal mat o . pre stop ay . network . Edit Account Property Ċ import Ġwork . cal mat o . pre stop ay . network . Edit Account Response Ċ import Ġwork . cal mat o . pre stop ay . util .* Ċ Ċ class ĠAccount Edit Fragment Ġ: ĠPermission Base () Ġ{ ĊĠ Ġprivate Ġlateinit Ġvar Ġshared Preferences : ĠSharedPreferences ĊĊĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠ Ġ): ĠView Ġ{ ĊĠĠĠ Ġval Ġbinding : ĠFragment Account Edit Binding Impl Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠ Ġinflater , ĠR . layout . fragment _ account _ edit , Ġcontainer , Ġfalse ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn Ġbinding . root ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠ Ġthumbnail Edit . setOnClickListener Ġ{ ĊĠĠĠĠĠ Ġrequest Permission () ĊĠĠĠ Ġ} ĊĠĠĠ Ġshared Preferences Ġ= ĠPreference Manager . getDefault SharedPreferences ( require Context ()) ĊĠĠĠ Ġname EditText . setText ( shared Preferences . getString (" name ", Ġ"")) ĊĠĠĠ ĠuserName EditText . setText ( shared Preferences . getString (" username ", Ġ"")) ĊĠĠĠ Ġmail EditText . setText ( shared Preferences . getString (" email ", Ġ"")) ĊĠĠĠ Ġval Ġthumbnail Url Ġ= Ġshared Preferences . getString (" thumbnail Url ", Ġ"") ĊĠĠĠ Ġif Ġ( thumbnail Url !!. isNotEmpty ()) Ġ{ ĊĠĠĠĠĠ ĠPic asso . with ( context ). load ( thumbnail Url ). into ( thumbnail Edit ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġset Has Options Menu ( true ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK Ġ&& Ġrequest Code Ġ== ĠConstant . IMAGE _ P ICK _ CODE ) Ġ{ ĊĠĠĠĠĠ Ġcrop Image ( data ?. data !! ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK Ġ&& Ġrequest Code Ġ== ĠU Crop . REQUEST _ C ROP ) Ġ{ ĊĠĠĠĠĠ Ġval Ġresult Uri Ġ= ĠU Crop . getOutput ( data !! ) ĊĠĠĠĠĠ Ġthumbnail Edit . setImage URI ( result Uri ) ĊĠĠĠĠĠ Ġthumbnail Edit . set BackgroundColor ( Color . TRANSP ARENT ) ĊĠĠĠĠĠ Ġchange Profile Picture . text Ġ= Ġresources . getText ( R . string . change _ image ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠ Ġinflater . inflate ( R . menu . header _ done , Ġmenu ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠ ĠR . id . done Ġ-> Ġsend Request ( item ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġsend Request ( item : ĠMenuItem ) Ġ{ ĊĠĠĠ Ġ// ä¿ĿåŃĺ button ãĤĴ æĬ ¼ ãģĹãģŁ æĻĤ ãģ® åĩ¦çĲĨ ãĤĴ è¨ĺ è¿° ĊĠĠĠ Ġval Ġthumb nails Ġ= Ġencode Image 2 Base 6 4 ( thumbnail Edit ) ĊĠĠĠ Ġval Ġname : ĠString Ġ= Ġname EditText . text . toString () ĊĠĠĠ Ġval ĠuserName : ĠString Ġ= ĠuserName EditText . text . toString () ĊĠĠĠ Ġval Ġemail : ĠString Ġ= Ġmail EditText . text . toString () ĊĠĠĠ Ġval Ġid Ġ= ĠMainActivity . firebase Id ĊĠĠĠ Ġif Ġ( name Ġ!= Ġ"" Ġ&& ĠuserName Ġ!= Ġ"" Ġ&& Ġemail Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠ Ġitem . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠ ĠprogressBar Account Edit . visibility Ġ= ĠProgress Bar . VISIBLE ĊĠĠĠĠĠ Ġfront View Account Edit . visibility Ġ= ĠImageView . VISIBLE ĊĠĠĠĠĠ Ġval Ġaccount Property Ġ= ĠEdit Account Property ( name , ĠuserName , Ġemail , Ġthumb nails ) ĊĠĠĠĠĠ ĠApi . ret rofit Service . edit Account (" Bearer Ġ$ id ", Ġaccount Property ). enqueue ( object Ġ: ĊĠĠĠĠĠĠĠ ĠCallback < Edit Account Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Edit Account Response >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġitem . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠ ĠprogressBar Account Edit . visibility Ġ= ĠProgress Bar . GONE ĊĠĠĠĠĠĠĠĠĠ Ġfront View Account Edit . visibility Ġ= ĠImageView . GONE ĊĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . failed _ to _ change _ account _ information ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( ĊĠĠĠĠĠĠĠĠĠ Ġcall : ĠCall < Edit Account Response >, ĊĠĠĠĠĠĠĠĠĠ Ġresponse : ĠResponse < Edit Account Response > ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġshared Preferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" thumbnail Url ", Ġresponse . body ()?. thumbnail Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" name ", Ġresponse . body ()?. name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" username ", Ġresponse . body ()?. username ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" email ", Ġresponse . body ()?. email ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate To Account Home () ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . failed _ to _ change _ account _ information ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġitem . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠ ĠprogressBar Account Edit . visibility Ġ= ĠProgress Bar . GONE ĊĠĠĠĠĠĠĠĠĠ Ġfront View Account Edit . visibility Ġ= ĠImageView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠ Ġresources . getString ( R . string . fill _ all _ required _ forms ), ĊĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠ Ġ). show () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġnavigate To Account Home () Ġ{ ĊĠĠĠ Ġthis . find Nav Controller (). navigate ( ĊĠĠĠĠĠ ĠAccount Edit Fragment Directions . action Edit Account Fragment To Account Home () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġinternal Ġconst Ġval ĠTAG Ġ= Ġ" Account Edit Fragment " ĊĠ Ġ} Ċ } ĊĊ