package Ġk z . so z di k . history . presentation Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġkotlinx . android . synt hetic . main . fragment _ history .* Ċ import Ġkotlinx . android . synt hetic . main . view _ loading .* Ċ import Ġk z . so z di k . R Ċ import Ġk z . so z di k . core . utils . Lang Ċ import Ġk z . so z di k . di . getApp Deps Provider Ċ import Ġk z . so z di k . dictionary . domain . model . Word Ċ import Ġk z . so z di k . history . di . D agger History Presenter Component Ċ import Ġk z . so z di k . main . Word Handler Ċ import Ġk z . so z di k . presentation . dialogs . Two Button Dialog Fragment Ċ import Ġk z . so z di k . presentation . utils . show Toast Ċ import Ġm oxy . M vp AppCompat Fragment Ċ import Ġm oxy . presenter . Inject Presenter Ċ import Ġm oxy . presenter . Provide Presenter Ċ Ċ private Ġconst Ġval ĠRC _ REMOVE _ WORD Ġ= Ġ 1 Ċ private Ġconst Ġval ĠRC _ CLEAR _ HISTORY Ġ= Ġ 2 Ċ private Ġconst Ġval ĠARG _ LANG _ FROM Ġ= Ġ" ARG _ LANG _ FROM " Ċ Ċ class ĠHistory List Fragment Ġ: ĊĠĠĠ ĠM vp AppCompat Fragment ( R . layout . fragment _ history ), ĊĠĠĠ ĠHistory View , ĊĠĠĠ ĠTwo Button Dialog Fragment . Two Button Dialog Listener Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( lang From : ĠString ): ĠHistory List Fragment Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHistory List Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= Ġbundle Of ( ARG _ LANG _ FROM Ġto Ġlang From ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject Presenter ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠHistory Presenter ĊĊĠĠĠ Ġ@ Provide Presenter ĊĠĠĠ Ġfun Ġprovide Presenter (): ĠHistory Presenter Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlang From Ġ= Ġarguments ?. getString ( ARG _ LANG _ FROM ) Ġ?: ĠLang . K AZ AK H _ CY R IL LIC ĊĠĠĠĠĠĠĠ Ġreturn ĠD agger History Presenter Component . factory () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Deps Ġ= Ġrequire Context (). getApp Deps Provider (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlang From Ġ= Ġlang From ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get History Presenter () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġword Handler Ġby Ġlazy Ġ{ Ġparent Fragment ?. parent Fragment Ġas ĠWord Handler Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġhistory RecyclerView . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġval Ġdivider Item Decoration Ġ= ĠDiv ider Item Decoration ( context , Ġlayout Manager . orientation ) ĊĠĠĠĠĠĠĠ Ġhistory RecyclerView . addItem Decoration ( divider Item Decoration ) ĊĊĠĠĠĠĠĠĠ Ġpresenter . fetch History () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Dialog Positive Click ( request Code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRC _ REMOVE _ WORD Ġ-> Ġpresenter . remove Word () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRC _ CLEAR _ HISTORY Ġ-> Ġpresenter . clear History () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Dialog Negative Click ( request Code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonSuccess ( words : ĠList < Word >) Ġ{ ĊĠĠĠĠĠĠĠ Ġhistory RecyclerView . adapter Ġ= ĠWord s Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwords , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġpresenter . on Word Selected ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġpresenter . on Word Long Click ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Toast ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Empty View ( isVisible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Empty . isVisible Ġ= Ġis Visible ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Loading Progress ( isVisible : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Loading . isVisible Ġ= Ġis Visible ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Word Translation ( word : ĠWord ) Ġ{ ĊĠĠĠĠĠĠĠ Ġword Handler . show Word Translation ( word ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Clear History Dialog () Ġ{ ĊĠĠĠĠĠĠĠ ĠTwo Button Dialog Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . re moving ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . history _ question _ re moving ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRC _ CLEAR _ HISTORY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( child FragmentManager , Ġ" Two Button Dialog Fragment ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Delete Word Dialog () Ġ{ ĊĠĠĠĠĠĠĠ ĠTwo Button Dialog Fragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . re moving ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . history _ question _ word _ re moving ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRC _ REMOVE _ WORD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( child FragmentManager , Ġ" Delete Word Dialog Fragment ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreset History List () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠFix me : Ġdon 't Ġcreate Ġnew Ġadapter Ġafter Ġwords Ġremoving , Ġset Ġempty Ġlist Ġand Ġnotify Ġadapter ĊĠĠĠĠĠĠĠ Ġhistory RecyclerView . adapter Ġ= ĠWord s Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġpresenter . on Word Selected ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġpresenter . on Word Long Click ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġshow Empty View ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Message ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġmessage , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Menu Clear Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . on Clear History Click () ĊĠĠĠ Ġ} Ċ }