package Ġcom . look ie . inst ad own loader . ui . download Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Parcelable Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . view . menu . Menu Builder Ċ import Ġandroidx . appcompat . view . menu . Menu Popup Helper Ċ import Ġandroidx . appcompat . widget . PopupMenu Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . google . android . gms . ads . Ad Request Ċ import Ġcom . look ie . inst ad own loader . R Ċ import Ġcom . look ie . inst ad own loader . data . room . entity . Post Ċ import Ġcom . look ie . inst ad own loader . databinding . Fragment Download Binding Ċ import Ġcom . look ie . inst ad own loader . ui . main . MainActivity Ċ import Ġcom . look ie . inst ad own loader . ui . post details . Post Details Activity Ċ import Ġcom . look ie . inst ad own loader . utilities . EXTRA _ POST Ċ import Ġcom . look ie . inst ad own loader . utilities . Injector Utils Ċ import Ġcom . look ie . inst ad own loader . utilities . Shared Pref Utils Ċ import Ġcom . look ie . inst ad own loader . utilities . System Utils Ċ Ċ class ĠDownload Fragment Ġ: ĠFragment (), ĠPost Adapter . On ItemClickListener Ġ{ ĊĊĠ Ġprivate Ġval ĠviewModel : ĠPost List ViewModel Ġby Ġview Models Ġ{ ĊĠĠĠ ĠInject or Utils . provide Post List ViewModel Factory ( require Context ()) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠ Ġ): ĠView ? Ġ{ ĊĊĠĠĠ Ġval Ġbinding Ġ= ĊĠĠĠĠĠ ĠData Binding Util . inflate < Fragment Download Binding >( ĊĠĠĠĠĠĠĠ Ġinflater , ĊĠĠĠĠĠĠĠ ĠR . layout . fragment _ download , ĊĠĠĠĠĠĠĠ Ġcontainer , ĊĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġcontext Ġ?: Ġreturn Ġbinding . root ĊĊĠĠĠ Ġset Has Options Menu ( true ) ĊĊĠĠĠ Ġif Ġ( Shared Pref Utils . instance !!. premium !! ) Ġ{ ĊĠĠĠĠĠ Ġbinding . ad View 1 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠ Ġbinding . ad View 2 . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġbinding . ad View 1 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠ Ġbinding . ad View 2 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠ Ġbinding . ad View 1 . load Ad ( Ad Request . Builder (). build ()) ĊĠĠĠĠĠ Ġbinding . ad View 2 . load Ad ( Ad Request . Builder (). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġadapter Ġ= ĠPost Adapter ( this ) ĊĠĠĠ Ġbinding . post List . adapter Ġ= Ġadapter ĊĠĠĠ Ġbinding . has Posts Ġ= Ġtrue ĊĊĠĠĠ Ġsubscribe Ui ( adapter , Ġbinding ) ĊĊĠĠĠ Ġreturn Ġbinding . root ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠ Ġinflater . inflate ( R . menu . menu _ download , Ġmenu ) ĊĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġ( when Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠ ĠR . id . action _ open _ inst a Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠ Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ}) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġsubscribe Ui ( adapter : ĠPost Adapter , Ġbinding : ĠFragment Download Binding ) Ġ{ ĊĊĠĠĠ ĠviewModel . posts . observe ( view Lifecycle Owner , ĠObserver < List < Post >> Ġ{ Ġposts Ġ-> ĊĠĠĠĠĠ Ġbinding . has Posts Ġ= Ġ! posts . isNull OrEmpty () ĊĠĠĠĠĠ Ġprintln (" getPost LiveData Ġsize : Ġ${ posts . size }") ĊĠĠĠĠĠ Ġadapter . submit List ( posts ) ĊĠĠĠ Ġ}) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Item Click ( view : ĠView ?, Ġpost : ĠPost ?, Ġposition : ĠInt ) Ġ{ ĊĠĠĠ Ġwhen Ġ( view !!. id ) Ġ{ ĊĠĠĠĠĠ ĠR . id . card _ media Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( activity , ĠPost Details Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( EXTRA _ POST , Ġpost Ġas ĠParcel able ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠR . id . img _ menu Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Post Menu ( view , Ġpost ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġshow Post Menu ( v : ĠView , Ġpost : ĠPost ?) Ġ{ ĊĠĠĠ Ġval Ġpopup Ġ= ĠPopup Menu ( context !! , Ġv ) ĊĠĠĠ Ġpopup . menu Inflater . inflate ( R . menu . menu _ item _ post , Ġpopup . menu ) ĊĠĠĠ Ġpopup . setOn MenuItem ClickListener Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠ ĠR . id . view _ on _ inst a Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠSystem Utils . open Inst agram ( activity , Ġpost !!. shortcode ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠR . id . re post _ for _ inst a Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠSystem Utils . re post Inst a ( activity , Ġpost ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠR . id . share _ media Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠSystem Utils . share Local Media ( activity , Ġpost ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠR . id . share _ link Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠSystem Utils . share Link ( activity , Ġpost ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠR . id . delete Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠviewModel . delete Post ( post ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠR . id . copy _ link Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠSystem Utils . copy Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// www . instagram . com / p /${ post !!. shortcode }/ ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . copied _ link _ to _ clipboard ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠR . id . copy _ caption Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( post !!. has Caption Text ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcaption Ġ= Ġpost . get Caption Text () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem Utils . copy Text ( activity , Ġcaption , ĠR . string . copied _ caption _ to _ clipboard ) ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , ĠR . string . caption _ not _ found , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmenu Helper Ġ= ĠMenu Popup Helper ( context !! , Ġ( popup . menu Ġas ĠMenu Builder ), Ġv ) ĊĠĠĠ Ġmenu Helper . set Force Show Icon ( true ) ĊĠĠĠ Ġmenu Helper . gravity Ġ= ĠGr avity . END ĊĠĠĠ Ġmenu Helper . show () ĊĠ Ġ} Ċ }