package Ġcom . mo sp oly tech . mo sp oly helper . features . ui . account . auth Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget .* Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġby . kir ich 1 4 0 9 . view binding delegate . view Binding Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . mo sp oly tech . mo sp oly helper . R Ċ import Ġcom . mo sp oly tech . mo sp oly helper . databinding . Fragment Account Auth Binding Ċ import Ġcom . mo sp oly tech . mo sp oly helper . utils .* Ċ import Ġio . ktor . client . features .* Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel Ċ import Ġjava . net . Unknown Host Exception Ċ Ċ class ĠAuth Fragment Ġ: ĠFragment ( R . layout . fragment _ account _ auth ) Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlogin Text : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpassword Text : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlog In Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlog Out Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprogress Auth : ĠProgress Bar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġauth Layout : ĠLinearLayout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlogin Layout : ĠLinearLayout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġf io Student : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġavatar User : ĠImageView ĊĊĠĠĠ Ġprivate Ġval Ġview Binding Ġby Ġview Binding ( Fragment Account Auth Binding :: bind ) ĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby ĠviewModel < Auth ViewModel >() ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġlogin Text Ġ= Ġview Binding . text Login ĊĠĠĠĠĠĠĠ Ġpassword Text Ġ= Ġview Binding . text Password ĊĠĠĠĠĠĠĠ Ġlog In Button Ġ= Ġview Binding . btn Login ĊĠĠĠĠĠĠĠ Ġlog Out Button Ġ= Ġview Binding . btn Logout ĊĠĠĠĠĠĠĠ Ġprogress Auth Ġ= Ġview Binding . progress Auth ĊĠĠĠĠĠĠĠ Ġauth Layout Ġ= Ġview Binding . auth Layout ĊĠĠĠĠĠĠĠ Ġlogin Layout Ġ= Ġview Binding . login Layout ĊĠĠĠĠĠĠĠ Ġf io Student Ġ= Ġview Binding . f io Student ĊĠĠĠĠĠĠĠ Ġavatar User Ġ= Ġview Binding . avatar User ĊĊĠĠĠĠĠĠĠ Ġcreate Layout () ĊĊĠĠĠĠĠĠĠ Ġlog In Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch When Res umed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . log In ( login Text . text . toString (), Ġpassword Text . text . toString ()). collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult 0 . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Auth . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog In Button . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Layout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult 0 . Failure Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Auth . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog In Button . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġerror Ġ= Ġit . exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠClient RequestException Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( error . response . status . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 1 Ġ-> ĠToast . makeText ( context , ĠR . string . not _ authorized , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠToast . makeText ( context , ĠR . string . server _ error , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUnknown Host Exception Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , ĠR . string . check _ connection , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠToast . makeText ( context , Ġerror . localized Message , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResult 0 . Loading Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Auth . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog In Button . hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlog Out Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . log Out () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Layout () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Layout () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . getName ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauth Layout . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Layout . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf io Student . text Ġ= ĠgetString ( R . string . hello _ msg , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( viewModel . get Avatar ()). circle Crop (). into ( avatar User ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġlet Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauth Layout . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Layout . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ ĠG lide . with ( this ). clear ( avatar User ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} Ċ Ċ }