package Ġcom . example . fragment . library . common . activity Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompat Delegate Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . example . fragment . library . base . component . activity . Base Activity Ċ import Ġcom . example . fragment . library . base . utils . Fragment Helper Ċ import Ġcom . example . fragment . library . common . constant . Nav Mode Ċ import Ġcom . example . fragment . library . common . constant . Router Ċ import Ġcom . example . fragment . library . common . utils . Wan Helper Ċ Ċ /** Ċ Ġ* Ġ è·¯çĶ± ç±» ï¼Į æĸ¹ä¾¿ æ¨¡åĿĹ ä¹ĭéĹ´ è°ĥçĶ¨ Ċ Ġ*/ Ċ abstract Ġclass ĠRouter Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġcur Fragment : ĠClass < out ĠFragment >? Ġ= Ġnull ĊĊĠĠĠ Ġabstract Ġfun Ġframe Layout Id (): ĠInt ĊĊĠĠĠ Ġabstract Ġfun Ġstart Record ( result Code : ĠInt , Ġresult Data : ĠIntent ): ĠBoolean ĊĊĠĠĠ Ġabstract Ġfun Ġstop Record (): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¯¼èĪª æĸ¹æ³ķ ï¼Į æł¹æį® è·¯çĶ± åĲį è·³è½¬ åĪĩæį¢ Fragment ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġnavigation ( ĊĠĠĠĠĠĠĠ Ġname : ĠRouter , ĊĠĠĠĠĠĠĠ Ġbundle : ĠBundle ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġon Back : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġnav Mode : ĠNav Mode Ġ= ĠNav Mode . SWITCH , ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġswitch er ( ĊĠĠĠĠĠĠĠ Ġclazz : ĠClass < out ĠFragment >, ĊĠĠĠĠĠĠĠ Ġbundle : ĠBundle ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ ĠaddTo Back Stack : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġnav Mode : ĠNav Mode ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( nav Mode Ġ== ĠNav Mode . SWITCH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Fragment Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFragment Helper . switch er ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġframe Layout Id (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcur Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclazz , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaddTo Back Stack ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( nav Mode Ġ== ĠNav Mode . POP _ BACK _ STACK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Fragment Ġ= ĠFragment Helper . pop ( support FragmentManager , Ġclazz ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® å¤ ľ éĹ´ æ¨¡å¼ı æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinit UI Mode () Ġ{ ĊĠĠĠĠĠĠĠ ĠW an Helper . get UI Mode (). observe ( this , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠAppCompat Delegate . setDefault Night Mode ( AppCompat Delegate . MODE _ N IGHT _ NO ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠAppCompat Delegate . setDefault Night Mode ( AppCompat Delegate . MODE _ N IGHT _ YES ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠAppCompat Delegate . setDefault Night Mode ( AppCompat Delegate . MODE _ N IGHT _ FOLLOW _ SYSTEM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ Ċ }