package Ġcom . s ui han 7 4 . n edge . scenes . preferences . dialog Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . pm . Application Info Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . s ui han 7 4 . n edge . R Ċ import Ġcom . s ui han 7 4 . n edge . database . notification . Black List Entity Ċ import Ġcom . s ui han 7 4 . n edge . databinding . Dialog Black ListItem Editor Binding Ċ import Ġcom . s ui han 7 4 . n edge . models . Keyword Matching Type Ċ import Ġcom . s ui han 7 4 . n edge . repositories . Preferences Repository Ċ import Ġcom . s ui han 7 4 . n edge . scenes . preferences . page . Black ListItem Ċ import Ġcom . s ui han 7 4 . utilities . lazy Provide ViewModel Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ /** Ċ Ġ* Ġãĥ ĸ ãĥ© ãĥĥãĤ¯ ãĥªãĤ¹ãĥĪ éłħ çĽ® ãĤĴ ç· ¨ éĽĨ ãģĻãĤĭ ãĥĢ ãĤ¤ ãĤ¢ ãĥŃãĤ° Ċ Ġ*/ Ċ class ĠBlack ListItem Editor Dialog Fragment Ġ: ĠDialog Fragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Instance ( item : ĠBlack ListItem , Ġrepository : ĠPreferences Repository ) Ġ= ĠBlack ListItem Editor Dialog Fragment (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . lifecycle Scope . launch When Created Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . viewModel . initialize ( item , Ġrepository ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ------ Ġ// ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġlazy Provide ViewModel Ġ{ ĊĠĠĠĠĠĠĠ ĠDialog ViewModel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ------ Ġ// ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠDialog Black ListItem Editor Binding . inflate ( layout Inflater , Ġnull , Ġfalse ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . vm Ġ= ĠviewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . lifecycle Owner Ġ= Ġparent Fragment ?. view Lifecycle Owner Ġ?: Ġrequire Activity () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠAlertDialog . Builder ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . prefs _ black _ list _ item _ editor _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setView ( binding . root ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . dialog _ cancel , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . dialog _ ok ) Ġ{ Ġ_, Ġ_ Ġ-> ĠviewModel . complete ( this ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ------ Ġ// ĊĊĠĠĠ Ġclass ĠDialog ViewModel Ġ: ĠViewModel () Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġprefs Repo Ġ: ĠPreferences Repository ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ ç· ¨ éĽĨ å¯¾è±¡ ãģ® ãĤ¨ ãĥ³ ãĥĨãĤ£ ãĥĨãĤ£ ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ æĹ¢ åŃĺ ãģª ãĤī ID ãģĮ åħ¥ ãģ£ ãģ¦ãģĦãĤĭ ãģ®ãģ§ ãĢģ ä¿ĿåŃĺ æĻĤ ãģ«ãģ¯ ãģĵãĤĮ ãĤĴ ãĤ³ ãĥĶ ãĥ¼ ãģĹãģ¦ æĽ´æĸ° ãģĻãĤĭ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġentity Ġ: ĠBlack List Entity ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ å¯¾è±¡ ãĤ¢ãĥĹãĥª æĥħåł± ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġapplication Info Ġ= ĠMutable LiveData < Application Info >() ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠãĤ Ń ãĥ¼ãĥ ¯ ãĥ¼ãĥī ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġkeyword Ġ= ĠMutable LiveData < String >() ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠãĤ Ń ãĥ¼ãĥ ¯ ãĥ¼ãĥī ãĥŀ ãĥĥ ãĥģ æĸ¹æ³ķ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġkeyword Matching Type Ġ= ĠMutable LiveData < Keyword Matching Type >() ĊĊĠĠĠĠĠĠĠ Ġ// Ġ------ Ġ// ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ ç· ¨ éĽĨ å¯¾è±¡ ãģ® æĥħåł± ãĤĴ ãĤ»ãĥĥãĥĪ ãģĻãĤĭ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun Ġinitialize ( item : ĠBlack ListItem , Ġrepository : ĠPreferences Repository ) Ġ= Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprefs Repo Ġ= Ġrepository ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Ġ= Ġitem . entity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Info . value Ġ= Ġitem . app Info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkeyword . value Ġ= Ġitem . entity . keyword ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkeyword Matching Type . value Ġ= Ġitem . entity . keyword Matching Type ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ ç· ¨ éĽĨ åĨħå®¹ ãĤĴ ä¿ĿåŃĺ ãģĹãģ¦ ãĥĢ ãĤ¤ ãĤ¢ ãĥŃãĤ° ãĤĴ éĸ ī ãģĺ ãĤĭ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġcomplete ( dialog : ĠBlack ListItem Editor Dialog Fragment ) Ġ= ĠviewModel Scope . launch ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentity Ġ= Ġentity !!. copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyword Ġ= Ġkeyword . value !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyword Matching Type Ġ= Ġkeyword Matching Type . value !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprefs Repo !!. update Black List Entity ( entity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Black ListItem Editor ", ĠLog . get StackTrace String ( e )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ