package Ġapp . k run al 3 kap adi ya . ml glossary . ui . listing Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġapp . k run al 3 kap adi ya . ml glossary . Build Config Ċ import Ġapp . k run al 3 kap adi ya . ml glossary . Injection Ċ import Ġapp . k run al 3 kap adi ya . ml glossary . R Ċ import Ġapp . k run al 3 kap adi ya . ml glossary . base . Shared Prefs Provider Ċ import Ġapp . k run al 3 kap adi ya . ml glossary . base . Shared Prefs Provider . Companion . USER _ PRE F _ FILE Ċ import Ġapp . k run al 3 kap adi ya . ml glossary . data . api . Ml definitions Ċ import Ġapp . k run al 3 kap adi ya . ml glossary . ui . About Activity Ċ import Ġapp . k run al 3 kap adi ya . ml glossary . ui . detail . Detail Dialog Fragment Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠBase Activity (), ĠOn ClickListener Ġ{ ĊĊĠĠĠ Ġvar Ġdefinition List : ĠArrayList < Ml definitions > Ġ= ĠArrayList () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġlaunch ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Intent Ġ= ĠIntent ( context , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( main Intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġshow Ġfirst Ġtime Ġdialog ĊĠĠĠĠĠĠĠ Ġshow Info Dialog () ĊĊĠĠĠĠĠĠĠ Ġvf _ main . display ed Child Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠML Definitions Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefinition List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġrv _ definitions . layout Manager Ġ= ĠLinearLayoutManager ( this @ MainActivity ) ĊĠĠĠĠĠĠĠ Ġrv _ definitions . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġval ĠviewModel Factory Ġ= ĠInjection . provide List ViewModel ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġlisting ViewModel Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewModel Providers . of ( this , ĠviewModel Factory ). get ( Listing ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġlisting ViewModel . isLoading . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvf _ main . display ed Child Ġ= Ġ 1 Ġ// Ġdisplaying Ġloading ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvf _ main . display ed Child Ġ= Ġ 0 Ġ// Ġdisplaying Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġlisting ViewModel . isError . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvf _ main . display ed Child Ġ= Ġ 2 Ġ// Ġdisplaying Ġno Ġinternet Ġconnection ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbt _ internet _ on . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ MainActivity . startActivity ( Intent ( android . provider . Settings . ACTION _ WIFI _ SETTINGS )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġlisting ViewModel . definition List . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefinition List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefinition List . addAll ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Network Connected () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġif Ġinternet Ġis Ġconnected Ġload Ġapi Ġcall ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlisting ViewModel . on Firebase Api Call And Add Into Database () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlisting ViewModel . fetch Data From Database () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Info Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshow Display Dialog Ġ= ĠShared Prefs Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context . get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUSER _ PRE F _ FILE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ). get Bool From Preferences ( getString ( R . string . pref _ display _ dialog ), Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( show Display Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle ( getString ( R . string . app _ name ). plus (" Ġ" Ġ+ ĠBuild Config . VERSION _ NAME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Message ( getString ( R . string . message _ dialog )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. set Positive Button ( getString ( R . string . ok ay )) Ġ{ Ġdialog , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. set Negative Button ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . never _ show ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShared Prefs Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context . get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUSER _ PRE F _ FILE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). save Preferences ( getString ( R . string . pref _ display _ dialog ), Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. create (). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick Listener ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Transaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġval Ġprev Ġ= Ġsupport FragmentManager . find Fragment By Tag (" dialog ") ĊĠĠĠĠĠĠĠ Ġif Ġ( prev Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Transaction . remove ( prev ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfragment Transaction . addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog Fragment Ġ= ĠDetail Dialog Fragment . newInstance ( definition List [ position ]) ĊĠĠĠĠĠĠĠ Ġdialog Fragment . show ( fragment Transaction , Ġ" dialog ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ about Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAbout Activity . launch ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ