package Ġtop . little fog cat . click er x . base . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . content . res . Resources Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . alibaba . android . ar outer . facade . Post card Ċ import Ġtop . little fog cat . click er x . base . R Ċ import Ġtop . little fog cat . click er x . base . base . Base Fragment Ċ import Ġtop . little fog cat . click er x . base . base . Base ViewModel Ċ import Ġtop . little fog cat . common . utils . AlertDialog Compat Ċ Ċ /** Ċ Ġ* Ġ ç»Ħä»¶ æī©å±ķ åĩ½æķ° ãĢĤ Ċ Ġ* Ċ Ġ* Ġ@ Author Ġlittle fog cat Ċ Ġ* Ġ@ Date Ġ 2 0 2 0 / 8 / 4 - 0 : 2 3 Ċ Ġ* Ġ@ Email Ġlittle fog cat @ fox mail . com Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* Ġ åĲĮ [ Activity . startActivity ] Ċ Ġ*/ Ċ fun ĠAppCompatActivity . launch Activity ( clazz : ĠClass < out ĠAppCompatActivity >) Ġ{ ĊĠĠĠ ĠstartActivity ( Intent ( this , Ġclazz )) Ċ } Ċ Ċ /** Ċ Ġ* Ġ è¾ ħ åĬ© åĪĽå»º dialog Ċ Ġ*/ Ċ fun ĠAppCompatActivity . make Dialog ( ĊĠĠĠ Ġtitle : ĠString , ĊĠĠĠ Ġcontent : ĠString Ġ= Ġ"", ĊĠĠĠ Ġcancel able : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġpositive ButtonText : ĠString Ġ= Ġ" ç¡®å®ļ ", ĊĠĠĠ Ġpositive Button ClickListener : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull , Ċ ) Ġ= ĠAlertDialog Compat . Builder ( this ) ĊĠĠĠ Ġ. setTitle ( title ) ĊĠĠĠ Ġ. setMessage ( content ) ĊĠĠĠ Ġ. set Positive Button ( positive ButtonText ) Ġ{ Ġ_, Ġ_ Ġ-> Ġpositive Button ClickListener ?. invoke () Ġ} ĊĠĠĠ Ġ. set Cancel able ( cancel able ) ĊĠĠĠ Ġ. create () Ċ Ċ /** Ċ Ġ* Ġ åĲĮ : Ċ Ġ* Ċ Ġ* Ġsupport FragmentManager . beginTransaction () Ċ Ġ* Ġ. replace ( id , Ġfrag ) Ċ Ġ* Ġ. commit () Ċ Ġ*/ Ċ fun ĠAppCompatActivity . replace Fragment ( id : ĠInt , Ġfrag : ĠFragment ) Ġ{ ĊĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġ. replace ( id , Ġfrag ) ĊĠĠĠĠĠĠĠ Ġ. commit () Ċ } Ċ Ċ fun ĠAppCompatActivity . replace Fragment If Absent ( id : ĠInt , Ġfrag : ĠFragment ) Ġ{ ĊĠĠĠ Ġsupport FragmentManager . find Fragment ById ( id ) ĊĠĠĠĠĠĠĠ Ġ?: Ġreplace Fragment ( id , Ġfrag ) Ċ } Ċ Ċ fun ĠContext . load Drawable ( res Id : ĠInt ) Ġ= ĊĠĠĠ ĠResources Compat . get Drawable ( resources , Ġres Id , Ġtheme ) Ċ Ċ fun ĠAppCompatActivity . load Color ( color Id : ĠInt ) Ġ= ĊĠĠĠ ĠResources Compat . getColor ( resources , Ġcolor Id , Ġtheme ) Ċ Ċ fun ĠActivity . todo () Ġ{ ĊĠĠĠ ĠToast . makeText ( this , Ġ" åĬŁèĥ½ å»º è®¾ ä¸Ń âĢ¦âĢ¦ ", ĠToast . LENGTH _ SHORT ). show () Ċ } Ċ Ċ fun ĠFragment . todo () Ġ{ ĊĠĠĠ ĠToast . makeText ( context , Ġ" åĬŁèĥ½ å»º è®¾ ä¸Ń âĢ¦âĢ¦ \"", ĠToast . LENGTH _ SHORT ). show () Ċ } Ċ Ċ fun ĠView . todo () Ġ{ ĊĠĠĠ ĠToast . makeText ( context , Ġ" åĬŁèĥ½ å»º è®¾ ä¸Ń âĢ¦âĢ¦ \"", ĠToast . LENGTH _ SHORT ). show () Ċ } Ċ Ċ /** Ċ Ġ* ĠéĢļè¿ĩ [ ViewModel Provider ] èİ·åıĸ [ clazz ] å¯¹åºĶçļĦ ViewModel Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠBase ViewModel > ĠBase Fragment <* >. get ViewModel ( clazz : ĠClass < T >): ĠT Ġ{ ĊĠĠĠ Ġreturn ĠViewModel Provider ( this , ĠViewModel Provider . New Instance Factory ())[ clazz ] Ċ } Ċ Ċ /** Ċ Ġ* ĠéĢļè¿ĩ [ ViewModel Provider ] èİ·åıĸ [ clazz ] å¯¹åºĶçļĦ ViewModel ï¼Į è¿Ļä¸ª ViewModel çļĦ çĶŁåĳ½ åĳ¨æľŁ è·Ł Fragment æīĢåľ¨ çļĦ Activity çĽ¸åĲĮ ãĢĤ Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠBase ViewModel > ĠBase Fragment <* >. get ViewModel With Activity Lifecycle ( clazz : ĠClass < T >): ĠT Ġ{ ĊĠĠĠ Ġreturn ĠViewModel Provider ( require Activity (), ĠViewModel Provider . New Instance Factory ())[ clazz ] Ċ } Ċ Ċ /** Ċ Ġ* ĠéĢļè¿ĩ [ ViewModel Provider ] èİ·åıĸ [ clazz ] å¯¹åºĶçļĦ ViewModel Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠBase ViewModel > ĠAppCompatActivity . get ViewModel ( clazz : ĠClass < T >): ĠT Ġ{ ĊĠĠĠ Ġreturn ĠViewModel Provider ( this , ĠViewModel Provider . New Instance Factory ())[ clazz ] Ċ } Ċ Ċ fun ĠFragment . navigate Back () Ġ= Ġfind Nav Controller (). pop Back Stack () Ċ Ċ /** Ċ Ġ* ĠSet Ġdefault Ġtransition Ġfor ĠA Router Ġnavigation . Ċ Ġ*/ Ċ fun ĠPost card . as Default (): ĠPost card Ġ{ ĊĠĠĠ Ġreturn Ġwith Transition ( R . anim . rtl _ enter _ anim , ĠR . anim . rtl _ exit _ anim ) Ċ } Ċ Ċ /** Ċ Ġ* Ġæ£Ģ æŁ¥ æĺ¯åĲ¦ å¾ĹåĪ° çĽĳåĲ¬ éĢļçŁ¥ æĿĥéĻĲ Ċ Ġ*/ Ċ private Ġfun ĠContext . is Listen Notification Permission Granted (): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġpkg Name Ġ= ĠpackageName ĊĠĠĠ Ġval Ġflat Ġ= ĠSettings . Secure . getString ( content Resolver , Ġ" enabled _ notification _ listeners ") ĊĠĠĠ Ġif Ġ(! flat . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnames Ġ= Ġflat . split (": ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( name Ġin Ġnames ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠComponent Name . un flatten FromString ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( component Ġ!= Ġnull Ġ&& Ġcomponent . packageName Ġ== Ġpkg Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ å¼ĢåĲ¯ æĿĥéĻĲ äºĨ ï¼Į è·³è½¬ åĪ° MainActivity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ }