package Ġcom . example . bubble layout . ui . fragment Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . text . TextUtils Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . example . bubble layout . R Ċ import Ġcom . example . bubble layout . api . body . User Body Ċ import Ġcom . example . bubble layout . base . Base VM Fragment Ċ import Ġcom . example . bubble layout . ui . UserInfo Activity Ċ import Ġcom . example . bubble layout . utils . Corner Transform Ċ import Ġcom . example . bubble layout . utils . G lide Engine Ċ import Ġcom . example . bubble layout . utils . UserInfo Util Ċ import Ġcom . example . bubble layout . view model . Login ViewModel Ċ import Ġcom . luck . picture . lib . Picture Selector Ċ import Ġcom . luck . picture . lib . config . Picture Config Ċ import Ġcom . luck . picture . lib . config . Picture MimeType Ċ import Ġcom . luck . picture . lib . tools . Screen Utils Ċ import Ġkotlinx . android . synt hetic . main . fragment _ account .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ moment .* Ċ import Ġjava . io . File ĊĊ Ċ class ĠAccount Fragment Ġ: ĠBase VM Fragment < Login ViewModel >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt Ġ= ĠR . layout . fragment _ account ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtransform : ĠCor ner Transform ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġtransform Ġ= ĠCor ner Transform ( context , ĠScreen Utils . dip 2 px ( context , Ġ 4 f ). toFloat ()) ĊĠĠĠĠĠĠĠ Ġm ViewModel Ġ= ĠViewModel Provider ( this ). get ( Login ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġm ViewModel . error LiveData . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( it ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm ViewModel . user LiveData . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Tv Nick name . text Ġ= Ġit . nickname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( it . avatar _ url )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( context !! ). as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( UserInfo Util . getUser Avatar ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Options (). placeholder ( R . mip map . ic _ launcher ). error ( R . mip map . ic _ launcher ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( transform ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( m Iv User Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm ViewModel . file LiveData . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . update User ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . file _ url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġm ViewModel . getUser Info () ĊĠĠĠĠĠĠĠ Ġm Tv Nick name . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( context , ĠUserInfo Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Iv User Icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPicture Selector . create ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. open Gallery ( Picture MimeType . of Image ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. image Engine ( G lide Engine . create G lide Engine ()) Ġ// ĠPlease Ġrefer Ġto Ġthe ĠDemo ĠG lide Engine . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. for Result ( Picture Config . CH OOSE _ REQUEST ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !! , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . Manifest . permission . WRITE _ EXTERNAL _ STORAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . Manifest . permission . CAMERA ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ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 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠPicture Config . CH OOSE _ REQUEST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselect List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPicture Selector . obtain Multiple Result ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . upload File ( File ( select List [ 0 ]. real Path )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ViewModel (): ĠClass < Login ViewModel > Ġ= ĠLogin ViewModel :: class . java Ċ }