package Ġcom . example . kon w now . ui . view . my page . friend Ċ Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . kon w now . R Ċ import Ġcom . example . kon w now . data . remote . dto . Friend Ċ import Ġcom . example . kon w now . ui . adapter . Friend Adapter Ċ import Ġcom . example . kon w now . ui . adapter . Words Adapter Ċ import Ġcom . example . kon w now . ui . view . MainActivity Ċ import Ġcom . example . kon w now . ui . view . home . Swipe Helper CallBack Ċ import Ġcom . example . kon w now . utils . Constants Ċ import Ġcom . example . kon w now . view model . Friend ViewModel ĊĊ Ċ class ĠFriend Activity Ġ: ĠAppCompatActivity (), ĠMake Friend Interface Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġfriends Item Ġ= Ġarray ListOf < Friend . Friend Data >() ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfriends Adapter : ĠFriend Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfriend ViewModel : ĠFriend ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrv Friend : ĠRecyclerView ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ friend ) ĊĊĠĠĠĠĠĠĠ Ġfriend ViewModel Ġ= ĠViewModel Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault ViewModel Provider Factory ĊĠĠĠĠĠĠĠ Ġ). get ( Friend ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġset Toolbar () ĊĠĠĠĠĠĠĠ Ġset Recycler () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġfriends Item . clear () ĊĠĠĠĠĠĠĠ Ġset Toolbar () ĊĠĠĠĠĠĠĠ Ġset Recycler () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Recycler () Ġ{ ĊĠĠĠĠĠĠĠ Ġrv Friend Ġ= ĠfindViewById ( R . id . rv _ friend ) ĊĠĠĠĠĠĠĠ Ġrequest Friend () ĊĊĠĠĠĠĠĠĠ Ġfriends Adapter Ġ= ĠFriend Adapter ( friends Item , Ġthis ) ĊĠĠĠĠĠĠĠ Ġrv Friend . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġfriends Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Friend () Ġ{ ĊĠĠĠĠĠĠĠ Ġfriend ViewModel . get Friend List Observer (). observe ( this , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( Constants . TAG , Ġ" ì¹ ľ êµ¬ Ġê°Ģ ìł¸ ìĺ¤ ê¸° ĠìĦ± ê³µ !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfriends Item . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfriends Item . addAll ( it . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrv Friend . adapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġfriend ViewModel . get Friend ( MainActivity . getUser Data (). login Token ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġset Toolbar () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠfindViewById < TextView >( R . id . tv _ title ) ĊĠĠĠĠĠĠĠ Ġtitle . text Ġ= Ġ" ì¹ ľ êµ¬ ê´Ģ ë¦¬ " ĊĊĠĠĠĠĠĠĠ Ġval Ġbtn Back Ġ= ĠfindViewById < Image Button >( R . id . ib _ back ) ĊĠĠĠĠĠĠĠ Ġbtn Back . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcopy Link Ġ= ĠfindViewById < Image Button >( R . id . ib _ plus _ friend ) ĊĠĠĠĠĠĠĠ Ġcopy Link . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdlg Ġ= ĠFriend Make Dialog ( this , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdlg . start () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmake Friend Clicked ( code : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfriend ViewModel . post Friend Observer (). observe ( this , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= Ġlayout Inflater . inflate ( R . layout . dialog _ friend _ finish , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv Mes a age Ġ= Ġdialog View . findViewById < TextView >( R . id . tv _ message ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Mes a age . text Ġ= Ġ"${ it . data . nick Name } ëĭ ĺ ê³¼ Ġì¹ ľ êµ¬ ê°Ģ ĠëĲĺ ìĹĪ ìĬµëĭĪëĭ¤ !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" íĻ ķ ìĿ¸ ") Ġ{ Ġdialog Interface : ĠDialog Interface , Ġi : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Resume () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" ìĿ´ ë¯¸ Ġì¹ ľ êµ¬ ìĿ´ ê±°ëĤĺ Ġìľł í ļ¨ íķĺì§Ģ ĠìķĬ ìĿĢ Ġì½Ķëĵľ ìŀħëĭĪëĭ¤ .", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġfriend ViewModel . post Friend ( MainActivity . getUser Data (). login Token , Ġcode ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Friend Clicked ( friend Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfriend ViewModel . delete Friend Observer (). observe ( this , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull Ġ&& Ġit . statusCode Ġ== Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Resume () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġval Ġdlg : Ġandroid . app . AlertDialog . Builder Ġ= Ġandroid . app . AlertDialog . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . style . Theme _ Device Default _ Light _ Dialog _ No ActionBar _ Min Width ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdlg . setTitle (" ìłķ ë§ Ĳ ë¡ľ Ġì¹ ľ êµ¬ ë¥¼ ĠìĤ Ń ìłľ íķĺ ìĭľ ê²ł ìĬµ ëĭĪ ê¹Į ?") ĊĠĠĠĠĠĠĠ Ġdlg . set Neutral Button (" íĻ ķ ìĿ¸ ", ĠDialog Interface . OnClickListener Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfriend ViewModel . delete Friend ( MainActivity . getUser Data (). login Token , Ġfriend Id ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġdlg . set Negative Button (" ì · ¨ ìĨĮ ", ĠDialog Interface . OnClickListener Ġ{ Ġdialog , Ġwhich Ġ-> ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġdlg . show () ĊĠĠĠ Ġ} Ċ }