package Ġcom . example . biz _ home . profile Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . example . biz _ home . R Ċ import Ġcom . example . biz _ home . databinding . Fragment Profile Binding Ċ import Ġcom . example . common . ui . component . Hi Base Fragment Ċ import Ġcom . example . hi . banner . core . Hi Banner Mo Ċ import Ġcom . example . library . utils . Hi Display Util Ċ Ġimport Ġcom . example . biz _ login . Account Manager Ċ import Ġcom . example . common . ext . load Corner Ċ import Ġcom . example . common . route . Hi Route Ċ Ġimport Ġcom . example . service _ login . Notice Ċ import Ġcom . example . service _ login . UserProfile Ċ Ċ class ĠProfile Fragment Ġ: ĠHi Base Fragment < Fragment Profile Binding >() Ġ{ ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠProfile ViewModel Ġby Ġview Models () ĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . fragment _ profile ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġquery Login UserData () ĊĠĠĠĠĠĠĠ Ġquery Course Notice () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġquery Course Notice () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . query Course Notice (). observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Binding . course Notice Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġquery Login UserData () Ġ{ ĊĠĠĠĠĠĠĠ ĠAccount Manager . getUser Profile ( this , Ġobserver Ġ= ĠObserver Ġ{ Ġprofile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( profile Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Binding . user Profile Ġ= Ġprofile ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate UI ( profile ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast (" èİ·åıĸ çĶ¨æĪ· ä¿¡æģ¯ å¤±è´¥ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}, Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate UI ( profile : ĠUser Profile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! profile . is Login ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Binding . user Avatar . setImage Resource ( R . drawable . ic _ avatar _ default ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Binding . user Avatar . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount Manager . login ( context , Ġobserver Ġ= ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Login UserData () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġupdate Banner ( profile . banner Notice List ) ĊĠĠĠĠĠĠĠ Ġdata Binding . ll Notice . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHi Route . startActivity ( context , Ġdestination Ġ= ĠHi Route . Destination . NOTICE _ LIST ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Banner ( banner List : ĠList < Notice > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmodules Ġ= Ġmutable ListOf < Hi Banner Mo >() ĊĠĠĠĠĠĠĠ Ġif Ġ( banner List Ġ== Ġnull Ġ|| Ġbanner List . isEmpty ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġbanner List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbanner Mo Ġ= Ġobject Ġ: ĠHi Banner Mo () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbanner Mo . url Ġ= Ġit . cover ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules . add ( banner Mo ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata Binding . hi Banner . set Banner Data ( R . layout . layout _ file _ banner _ item , Ġmodules ) ĊĠĠĠĠĠĠĠ Ġdata Binding . hi Banner . set Bind Adapter Ġ{ ĠviewHolder , Ġmo , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Holder Ġ== Ġnull Ġ|| Ġmo Ġ== Ġnull ) Ġreturn @ set Bind Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠimageView Ġ= ĠviewHolder . findViewById < ImageView >( R . id . banner _ item _ image ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageView . load Corner ( mo . url , ĠHi Display Util . dp 2 px ( 1 0 f , Ġresources )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata Binding . hi Banner . setOn Banner ClickListener Ġ{ ĠviewHolder , Ġh iB anner Mo , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHi Route . startActivity 4 Browser ( banner List [ position ]. url ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata Binding . hi Banner . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġshow Toast ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( message Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġmessage , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} Ċ }