package Ġcom . s ui han 7 4 . n edge . scenes . preferences . page Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . transition . Fade Ċ import Ġandroidx . transition . Slide Ċ import Ġandroidx . transition . Transition Set Ċ import Ġcom . s ui han 7 4 . n edge . Application Ċ import Ġcom . s ui han 7 4 . n edge . R Ċ import Ġcom . s ui han 7 4 . n edge . database . notification . Notification Entity Ċ import Ġcom . s ui han 7 4 . n edge . databinding . Fragment Setting Editor Binding Ċ import Ġcom . s ui han 7 4 . n edge . scenes . preferences . Preferences Activity Ċ import Ġcom . s ui han 7 4 . n edge . scenes . preferences . Preferences ViewModel Ċ import Ġcom . s ui han 7 4 . n edge . scenes . preferences . data Binding . Slider Binding Adapters Ċ import Ġcom . s ui han 7 4 . utilities . extensions . hide Soft Input Method Ċ import Ġcom . s ui han 7 4 . utilities . lazy Provide ViewModel Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* Ġ éĢļçŁ¥ è¡¨ç¤º ç· ¨ éĽĨ çĶ» éĿ¢ Ċ Ġ*/ Ċ @ Android EntryPoint Ċ class ĠSetting Editor Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Instance ( entity : ĠNotification Entity ) Ġ= ĠSetting Editor Fragment (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . lifecycle Scope . launch When Created Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . viewModel . initialize ( entity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ------ Ġ// ĊĊĠĠĠ Ġprivate Ġval Ġpreferences Activity ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrequire Activity () Ġas ĠPreferences Activity ĊĊĠĠĠ Ġprivate Ġval Ġpreferences ViewModel Ġby Ġactivity ViewModels < Preferences ViewModel >() ĊĊĠĠĠ Ġ// Ġ------ Ġ// ĊĊĠĠĠ Ġval ĠviewModel Ġby Ġlazy Provide ViewModel Ġ{ ĊĠĠĠĠĠĠĠ ĠSetting Editor ViewModel ( Application . instance , Ġpreferences ViewModel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ------ Ġ// ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ éģ · ç§» ãĤ¢ ãĥĭ ãĥ¡ ãĥ¼ãĤ·ãĥ§ãĥ³ ĊĠĠĠĠĠĠĠ Ġenter Transition Ġ= ĠTransition Set (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Transition ( Fade ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Transition ( Slide (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . slide Edge Ġ= ĠGr avity . END ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . ordering Ġ= ĠTransition Set . ORDER ING _ TO GET HER ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠFragment Setting Editor Binding . inflate ( in flater , Ġcontainer , Ġfalse ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . vm Ġ= ĠviewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . activity Ġ= Ġpreferences Activity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . fragment Manager Ġ= Ġchild FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . lifecycle Owner Ġ= Ġview Lifecycle Owner ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . save Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . save Settings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences Activity . close Setting Editor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . cancel Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences Activity . close Setting Editor () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġaction Done Ġ= ĠTextView . On Editor ActionListener Ġ{ Ġview , Ġaction Id , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ== ĠEditor Info . IME _ ACTION _ DONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Soft Input Method ( binding . main Layout ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfocus ChangeListener Ġ= ĠView . On Focus ChangeListener Ġ{ Ġ_, Ġhas Focus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences ViewModel . show System UI ( preferences Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences ViewModel . hide System UI ( preferences Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . displayName EditText . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Editor ActionListener ( action Done ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Focus ChangeListener Ġ= Ġfocus ChangeListener ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . keyword EditText . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Editor ActionListener ( action Done ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Focus ChangeListener Ġ= Ġfocus ChangeListener ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . observe Top Not ch Type ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . top Not ch Setting Fragment Area , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Lifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild FragmentManager ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . observe Bottom Not ch Type ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . bottom Not ch Setting Fragment Area , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Lifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild FragmentManager ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . get Not ch Rect ( preferences Activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ Ġpreferences ViewModel . show System UI ( preferences Activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ ĠSlider Binding Adapters . on Terminate Lifecycle ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġpreferences ViewModel . hide System UI ( preferences Activity ) ĊĠĠĠ Ġ} Ċ } Ċ