package Ġcom . whats help . ui . history Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . Menu Inflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . whats help . R Ċ import Ġcom . whats help . databinding . Fragment History Binding Ċ import Ġcom . whats help . manager . analytics . Analytics Event Ċ import Ġcom . whats help . ui . base . DB Fragment Ċ import Ġcom . whats help . util . Constants . EXTRA _ NUMBER Ċ import Ġcom . whats help . util . Swipe ToDelete Callback Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġjavax . inject . Inject Ċ Ċ @ Android EntryPoint Ċ class ĠHistory Fragment Ġ: ĠDB Fragment < Fragment History Binding , ĠHistory ViewModel >() Ġ{ ĊĊĠĠĠ Ġoverride Ġval ĠviewModel : ĠHistory ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Resource (): ĠInt Ġ= ĠR . layout . fragment _ history ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġhistory Adapter : ĠHistory Adapter ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġhistory Adapter . setItem ClickListener Ġ{ Ġhistory Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). let Ġ{ Ġnav Controller Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics Manager . log Event ( Analytics Event . History . Click ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . previous Back Stack Entry ?. saved State Handle ?. set ( EXTRA _ NUMBER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhistory . whats App Number . full Number ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate Up () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . rv History . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( Divider Item Decoration ( require Context (), ĠLinearLayout . VERTICAL )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġhistory Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . history . observe ( view Lifecycle Owner , Ġ{ Ġhistory Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhistory Adapter . submit List ( history ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Options Menu ( history . isNotEmpty ()) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠItem Touch Helper ( object Ġ: ĠSw ipe ToDelete Callback ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sw ip ed ( view Holder : ĠRecyclerView . ViewHolder , Ġdirection : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . delete History ( view Holder . binding Adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics Manager . log Event ( Analytics Event . History . Delete ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}). attach To RecyclerView ( binding . rv History ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . menu _ history , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ delete _ all Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . clear History () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics Manager . log Event ( Analytics Event . History . Clear ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} Ċ }