package Ġwork . cal mat o . pre stop ay . ui . group Friend Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . activity . On Back Pressed Callback Ċ import Ġandroidx . appcompat . content . res . AppCompat Resources Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġkotlinx . android . synt hetic . main . fragment _ group _ friend .* Ċ 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 Group Friend Binding Ċ import Ġwork . cal mat o . pre stop ay . network .* Ċ import Ġwork . cal mat o . pre stop ay . util . Adapter Friend Plane Ċ import Ġwork . cal mat o . pre stop ay . util . Adapter Group Plane Ċ import Ġwork . cal mat o . pre stop ay . util . ViewModel Friend Group Ċ import Ġwork . cal mat o . pre stop ay . util . ViewModel Group Ċ Ċ class ĠGroup Friend Fragment Ġ: ĠFragment () Ġ{ ĊĠ Ġprivate Ġval ĠviewModel : ĠViewModel Friend Group Ġby Ġlazy Ġ{ ĊĠĠĠ ĠViewModel Provider ( this ). get ( ViewModel Friend Group :: class . java ) ĊĠ Ġ} ĊĠ Ġprivate Ġvar Ġgroups : ĠList < Group Property Response >? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġfriends : ĠList < User Property >? Ġ= Ġnull ĊĊĠ Ġprivate Ġvar Ġre cycle Adapter : ĠAdapter Friend Plane ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġre cycle Group Adapter : ĠAdapter Group Plane ? Ġ= Ġnull ĊĊĠ Ġprivate Ġlateinit Ġvar Ġid : ĠString ĊĊĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠ ĠviewModel . friends List . observe ( view Lifecycle Owner , ĠObserver < List < User Property >> Ġ{ ĊĠĠĠĠĠ Ġit ?. apply Ġ{ ĊĠĠĠĠĠĠĠ Ġre cycle Adapter ?. friend List Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġfriends Ġ= Ġit ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĊĠĠĠ ĠprogressBar . visibility Ġ= Ġandroid . widget . ProgressBar . IN VISIBLE ĊĊĠĠĠ ĠviewModel . groups List . observe ( view Lifecycle Owner , ĠObserver < List < Group Property Response >> Ġ{ ĊĠĠĠĠĠ Ġit ?. apply Ġ{ ĊĠĠĠĠĠĠĠ Ġre cycle Group Adapter ?. group List Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġgroups Ġ= Ġit ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġid Ġ= ĠMainActivity . firebase Id ĊĊĠĠĠ Ġval Ġswipe To Group Dismiss Touch Helper Ġ= Ġget Group Swipe To Dismiss Touch Helper () ĊĠĠĠ Ġswipe To Group Dismiss Touch Helper . attach To RecyclerView ( group Re cycle View ) ĊĊĠĠĠ Ġval Ġswipe To Friend Dismiss Touch Helper Ġ= Ġget Friend Swipe To Dismiss Touch Helper () ĊĠĠĠ Ġswipe To Friend Dismiss Touch Helper . attach To RecyclerView ( friends Re cycle View ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġlateinit Ġvar Ġclick Listener : ĠAdapter Friend Plane . OnClickListener ĊĠ Ġprivate Ġlateinit Ġvar Ġclick Listener Group : ĠAdapter Group Plane . OnClickListener ĊĊĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠ Ġ): ĠView Ġ{ ĊĠĠĠ Ġval Ġbinding : ĠFragment Group Friend Binding Ġ= ĊĠĠĠĠĠ ĠData Binding Util . inflate ( in flater , ĠR . layout . fragment _ group _ friend , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġthis ĊĠĠĠ Ġbinding . viewModel Ġ= ĠviewModel ĊĊĠĠĠ Ġclick Listener Ġ= ĠAdapter Friend Plane . OnClickListener Ġ{ ĠviewModel . item Is Clicked ( it ) Ġ} ĊĠĠĠ Ġclick Listener Group Ġ= ĠAdapter Group Plane . OnClickListener Ġ{ ĠviewModel . item Is Clicked Group ( it ) Ġ} ĊĠĠĠ Ġre cycle Adapter Ġ= ĠAdapter Friend Plane ( click Listener ) ĊĠĠĠ Ġre cycle Group Adapter Ġ= ĠAdapter Group Plane ( click Listener Group , Ġrequire Activity (), Ġfalse ) ĊĠĠĠ Ġbinding . friends Re cycle View . apply Ġ{ ĊĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠ Ġadapter Ġ= Ġre cycle Adapter ĊĠĠĠ Ġ} ĊĠĠĠ Ġbinding . group Re cycle View . apply Ġ{ ĊĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠ Ġadapter Ġ= Ġre cycle Group Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġbinding . root ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠ ĠviewModel . refresh ing Friend . observe ( view Lifecycle Owner , ĠObserver < Boolean > Ġ{ ĊĠĠĠĠĠ Ġit ?. apply Ġ{ ĊĠĠĠĠĠĠĠ Ġswipe Container . is Refresh ing Ġ= Ġit ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ ĠviewModel . refresh ing Group . observe ( view Lifecycle Owner , ĠObserver < Boolean > Ġ{ ĊĠĠĠĠĠ Ġit ?. apply Ġ{ ĊĠĠĠĠĠĠĠ Ġswipe Container Group . is Refresh ing Ġ= Ġit ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġswipe Container . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠ ĠviewModel . user ListView () ĊĠĠĠ Ġ} ĊĠĠĠ Ġswipe Container Group . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠ ĠviewModel . group ListView () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġadd Friend . setOnClickListener Ġ{ ĊĠĠĠĠĠ Ġthis . find Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠ ĠGroup Friend Fragment Directions . action Group Friend Fragment ToAdd Friend Fragment () ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġgroup Edit Add Friend . setOnClickListener Ġ{ ĊĠĠĠĠĠ Ġthis . find Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠ ĠGroup Friend Fragment Directions . action Group Friend Fragment To Friend List Fragment ( ĊĠĠĠĠĠĠĠĠĠ ĠUsers ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfront View . visibility Ġ= ĠImageView . GONE ĊĠĠĠ ĠprogressBar . visibility Ġ= Ġandroid . widget . ProgressBar . IN VISIBLE ĊĊĠĠĠ Ġval Ġshared Preferences Ġ= ĠPreference Manager . getDefault SharedPreferences ( require Context ()) ĊĠĠĠ ĠuserName Text . text Ġ= Ġshared Preferences . getString (" name ", Ġ"") ĊĠĠĠ Ġval Ġthumbnail Url Ġ= Ġshared Preferences . getString (" thumbnail Url ", Ġ"") ĊĠĠĠ Ġif Ġ( thumbnail Url !!. isNotEmpty ()) Ġ{ ĊĠĠĠĠĠ ĠPic asso . with ( context ). load ( thumbnail Url ). into ( thumbnail ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġgroup Switch er . setOnClickListener Ġ{ ĊĠĠĠĠĠ Ġif Ġ( swipe Container Group . visibility Ġ== ĠRecyclerView . VISIBLE Ġ&& Ġswipe Container . visibility Ġ== ĠRecyclerView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġswipe Container Group . visibility Ġ= ĠRecyclerView . GONE ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġswipe Container Group . visibility Ġ= ĠRecyclerView . VISIBLE ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfriend Switch er . setOnClickListener Ġ{ ĊĠĠĠĠĠ Ġif Ġ( swipe Container . visibility Ġ== ĠRecyclerView . VISIBLE Ġ&& Ġswipe Container Group . visibility Ġ== ĠRecyclerView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġswipe Container . visibility Ġ= ĠRecyclerView . GONE ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġswipe Container . visibility Ġ= ĠRecyclerView . VISIBLE ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġrequire Activity (). on Back Pressed Dispatcher . add Callback ( ĊĠĠĠĠĠ Ġview Lifecycle Owner , ĊĠĠĠĠĠ Ġobject Ġ: ĠOn Back Pressed Callback ( true ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle On Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGroup Friend Fragment Directions . action Group Friend Fragment To Home Fragment () ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Group Swipe To Dismiss Touch Helper () Ġ= ĊĠĠĠ ĠItem Touch Helper ( object Ġ: ĠItem Touch Helper . Simple Callback ( ĊĠĠĠĠĠ ĠItem Touch Helper . LEFT , ĊĠĠĠĠĠ ĠItem Touch Helper . LEFT ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ Ġtarget : ĠRecyclerView . ViewHolder ĊĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġ// ãĤ¹ ãĥ¯ ãĤ¤ ãĥĹ æĻĤ ãģ« å®Łè¡Į ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Sw ip ed ( view Holder : ĠRecyclerView . ViewHolder , Ġdirection : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder : ĠAlertDialog . Builder Ġ= Ġrequire Activity (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuilder . setMessage ( resources . getString ( R . string . delete _ question )) ĊĠĠĠĠĠĠĠĠĠ Ġ? . set Positive Button ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . delete ) ĊĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfront View . visibility Ġ= ĠImageView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= Ġandroid . widget . ProgressBar . VISIBLE ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi . ret rofit Service . delete Group ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Bearer Ġ$ id ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroups ! ![ view Holder . adapter Position ]. id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: ĠCallback < Unit > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall : ĠCall < Unit >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse : ĠResponse < Unit > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delete Group ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroups ! ![ view Holder . adapter Position ]. id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfront View . visibility Ġ= ĠImageView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= Ġandroid . widget . ProgressBar . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġresources . getString ( R . string . delete _ group _ failed ), ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfront View . visibility Ġ= ĠImageView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= Ġandroid . widget . ProgressBar . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Unit >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġresources . getString ( R . string . delete _ group _ failed ), ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfront View . visibility Ġ= ĠImageView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= Ġandroid . widget . ProgressBar . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ? . set Negative Button ( resources . getString ( R . string . cancel ), Ġnull ) ĊĠĠĠĠĠĠĠ Ġre cycle Group Adapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġval Ġdialog : ĠAlertDialog ? Ġ= Ġbuilder . create () ĊĠĠĠĠĠĠĠ Ġdialog ?. show () ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġ// ãĤ¹ ãĥ¯ ãĤ¤ ãĥĹ ãģĹãģŁ æĻĤ ãģ® èĥĮæĻ¯ ãĤĴè¨Ńå®ļ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Child Draw ( ĊĠĠĠĠĠĠĠ Ġc : ĠCanvas , ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ Ġd X : ĠFloat , ĊĠĠĠĠĠĠĠ Ġd Y : ĠFloat , ĊĠĠĠĠĠĠĠ Ġaction State : ĠInt , ĊĠĠĠĠĠĠĠ Ġis Currently Active : ĠBoolean ĊĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Child Draw ( ĊĠĠĠĠĠĠĠĠĠ Ġc , ĊĠĠĠĠĠĠĠĠĠ Ġre cyclerView , ĊĠĠĠĠĠĠĠĠĠ ĠviewHolder , ĊĠĠĠĠĠĠĠĠĠ Ġd X , ĊĠĠĠĠĠĠĠĠĠ Ġd Y , ĊĠĠĠĠĠĠĠĠĠ Ġaction State , ĊĠĠĠĠĠĠĠĠĠ Ġis Currently Active ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= ĠviewHolder . item View ĊĠĠĠĠĠĠĠ Ġval Ġbackground Ġ= ĠColor Drawable ( Color . RED ) ĊĠĠĠĠĠĠĠ Ġval Ġdelete Icon Ġ= ĠAppCompat Resources . get Drawable ( ĊĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ baseline _ delete _ sweep _ 2 4 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġicon Margin Vertical Ġ= ĊĠĠĠĠĠĠĠĠĠ Ġ( view Holder . item View . height Ġ- Ġdelete Icon !!. intrinsic Height ) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġdelete Icon . setBounds ( ĊĠĠĠĠĠĠĠĠĠ ĠitemView . right Ġ- Ġicon Margin Vertical Ġ- Ġdelete Icon . intrinsic Width , ĊĠĠĠĠĠĠĠĠĠ ĠitemView . top Ġ+ Ġicon Margin Vertical , ĊĠĠĠĠĠĠĠĠĠ ĠitemView . right Ġ- Ġicon Margin Vertical , ĊĠĠĠĠĠĠĠĠĠ ĠitemView . bottom Ġ- Ġicon Margin Vertical ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbackground . setBounds ( ĊĠĠĠĠĠĠĠĠĠ ĠitemView . right , ĊĠĠĠĠĠĠĠĠĠ ĠitemView . top , ĊĠĠĠĠĠĠĠĠĠ ĠitemView . left Ġ+ Ġd X . toInt (), ĊĠĠĠĠĠĠĠĠĠ ĠitemView . bottom ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbackground . draw ( c ) ĊĠĠĠĠĠĠĠ Ġdelete Icon . draw ( c ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ}) ĊĊĠ Ġprivate Ġfun Ġget Friend Swipe To Dismiss Touch Helper () Ġ= ĊĠĠĠ ĠItem Touch Helper ( object Ġ: ĠItem Touch Helper . Simple Callback ( ĊĠĠĠĠĠ ĠItem Touch Helper . LEFT , ĊĠĠĠĠĠ ĠItem Touch Helper . LEFT ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ Ġtarget : ĠRecyclerView . ViewHolder ĊĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġ// ãĤ¹ ãĥ¯ ãĤ¤ ãĥĹ æĻĤ ãģ« å®Łè¡Į ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Sw ip ed ( view Holder : ĠRecyclerView . ViewHolder , Ġdirection : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder : ĠAlertDialog . Builder Ġ= Ġrequire Activity (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuilder . setMessage ( resources . getString ( R . string . delete _ question )) ĊĠĠĠĠĠĠĠĠĠ Ġ? . set Positive Button ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . delete ) ĊĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfront View . visibility Ġ= ĠImageView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= Ġandroid . widget . ProgressBar . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi . ret rofit Service . delete Friend ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Bearer Ġ$ id ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfriends ! ![ view Holder . adapter Position ]. id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: ĠCallback < Account Response > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall : ĠCall < Account Response >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse : ĠResponse < Account Response > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delete Friend Swipe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfriends ! ![ view Holder . adapter Position ]. id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfront View . visibility Ġ= ĠImageView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= Ġandroid . widget . ProgressBar . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . delete _ friend _ failed ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfront View . visibility Ġ= ĠImageView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= Ġandroid . widget . ProgressBar . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Account Response >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . delete _ friend _ failed ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfront View . visibility Ġ= ĠImageView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= Ġandroid . widget . ProgressBar . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ? . set Negative Button ( resources . getString ( R . string . cancel ), Ġnull ) ĊĠĠĠĠĠĠĠ Ġre cycle Adapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġval Ġdialog : ĠAlertDialog ? Ġ= Ġbuilder . create () ĊĠĠĠĠĠĠĠ Ġdialog ?. show () ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġ// ãĤ¹ ãĥ¯ ãĤ¤ ãĥĹ ãģĹãģŁ æĻĤ ãģ® èĥĮæĻ¯ ãĤĴè¨Ńå®ļ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Child Draw ( ĊĠĠĠĠĠĠĠ Ġc : ĠCanvas , ĊĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠ Ġd X : ĠFloat , ĊĠĠĠĠĠĠĠ Ġd Y : ĠFloat , ĊĠĠĠĠĠĠĠ Ġaction State : ĠInt , ĊĠĠĠĠĠĠĠ Ġis Currently Active : ĠBoolean ĊĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Child Draw ( ĊĠĠĠĠĠĠĠĠĠ Ġc , ĊĠĠĠĠĠĠĠĠĠ Ġre cyclerView , ĊĠĠĠĠĠĠĠĠĠ ĠviewHolder , ĊĠĠĠĠĠĠĠĠĠ Ġd X , ĊĠĠĠĠĠĠĠĠĠ Ġd Y , ĊĠĠĠĠĠĠĠĠĠ Ġaction State , ĊĠĠĠĠĠĠĠĠĠ Ġis Currently Active ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= ĠviewHolder . item View ĊĠĠĠĠĠĠĠ Ġval Ġbackground Ġ= ĠColor Drawable ( Color . RED ) ĊĠĠĠĠĠĠĠ Ġval Ġdelete Icon Ġ= ĠAppCompat Resources . get Drawable ( ĊĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ baseline _ delete _ sweep _ 2 4 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġicon Margin Vertical Ġ= ĊĠĠĠĠĠĠĠĠĠ Ġ( view Holder . item View . height Ġ- Ġdelete Icon !!. intrinsic Height ) Ġ/ Ġ 2 ĊĊĠĠĠĠĠĠĠ Ġdelete Icon . setBounds ( ĊĠĠĠĠĠĠĠĠĠ ĠitemView . right Ġ- Ġicon Margin Vertical Ġ- Ġdelete Icon . intrinsic Width , ĊĠĠĠĠĠĠĠĠĠ ĠitemView . top Ġ+ Ġicon Margin Vertical , ĊĠĠĠĠĠĠĠĠĠ ĠitemView . right Ġ- Ġicon Margin Vertical , ĊĠĠĠĠĠĠĠĠĠ ĠitemView . bottom Ġ- Ġicon Margin Vertical ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbackground . setBounds ( ĊĠĠĠĠĠĠĠĠĠ ĠitemView . right , ĊĠĠĠĠĠĠĠĠĠ ĠitemView . top , ĊĠĠĠĠĠĠĠĠĠ ĠitemView . left Ġ+ Ġd X . toInt (), ĊĠĠĠĠĠĠĠĠĠ ĠitemView . bottom ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbackground . draw ( c ) ĊĠĠĠĠĠĠĠ Ġdelete Icon . draw ( c ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ}) ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġinternal Ġconst Ġval ĠTAG Ġ= Ġ" Group Friend Fragment " ĊĠ Ġ} Ċ } Ċ