package Ġ Ġcom . fro go box . wall paper . mv vm . favorite Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . fro go box . recycler . core . IF ro go Binding Adapter Ċ import Ġcom . fro go box . wall paper . core . Base Fragment Ċ import Ġcom . fro go box . wall paper . databinding . Fragment Favorite Binding Ċ import Ġcom . fro go box . wall paper . databinding . Item Grid Wall paper Fav Binding Ċ import Ġcom . fro go box . wall paper . model . Favorite Ċ import Ġcom . fro go box . wall paper . mv vm . detail . Fan art Detail Activity Ċ import Ġcom . fro go box . wall paper . mv vm . main . MainActivity Ċ import Ġcom . fro go box . wall paper . util . Const Helper . Extra . EXTRA _ FA V _ F AN ART Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ*/ Ċ class ĠF avorite Fragment Ġ: ĠBase Fragment < Fragment Favorite Binding >() Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm ViewModel : ĠF avorite ViewModel ĊĊĠĠĠ Ġoverride Ġfun Ġsetup View Binding ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ĊĠĠĠ Ġ): ĠFragment Favorite Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFragment Favorite Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ Ġm ViewModel Ġ= Ġ( activity Ġas ĠMainActivity ). obtain Favorite ViewModel (). apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfav List Live . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup RV ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Empty Data . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding ?. empty ?. empty View ?. let Ġ{ Ġit 1 Ġ-> Ġsetup Event Empty View ( it 1 , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup UI ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Favorite () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġget Favorite () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Favorite () Ġ{ ĊĠĠĠĠĠĠĠ Ġm ViewModel . get Favorite () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup RV ( data : ĠList < Favorite >) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġobject Ġ: ĠIF ro go Binding Adapter < Favorite , ĠItem Grid Wall paper Fav Binding > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Clicked ( data : ĠF avorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Start Activity < Fan art Detail Activity , ĠF avorite >( EXTRA _ FA V _ F AN ART , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Long Clicked ( data : ĠF avorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset View Binding ( parent : ĠViewGroup ): ĠItem Grid Wall paper Fav Binding Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠItem Grid Wall paper Fav Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup Init Component ( binding : ĠItem Grid Wall paper Fav Binding , Ġdata : ĠF avorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( binding . root . context ). load ( data . link Image ). into ( binding . iv Post er ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding ?. re cyclerView ?. injector Binding < Favorite , ĠItem Grid Wall paper Fav Binding >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . addData ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . add Callback ( callback ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . create Layout St agger ed Grid ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . build () ĊĊĠĠĠ Ġ} Ċ Ċ }