package Ġcom . h jq . base Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . KeyEvent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġcom . h jq . base . Base Activity . On Activity Callback Ċ import Ġcom . h jq . base . action . Bundle Action Ċ import Ġcom . h jq . base . action . Click Action Ċ import Ġcom . h jq . base . action . Handler Action Ċ import Ġcom . h jq . base . action . Keyboard Action Ċ Ċ /** Ċ Ġ* ĠĠĠ Ġauthor Ġ: Ġme a qua Ċ Ġ* ĠĠĠ Ġtime ĠĠ Ġ: Ġ 2 0 1 8 / 1 0 / 1 8 Ċ Ġ* ĠĠĠ Ġdesc ĠĠ Ġ: ĠFragment ĠæĬ Ģ æľ¯ åŁº ç±» Ċ Ġ*/ Ċ abstract Ġclass ĠBase Fragment < A Ġ: ĠBase Activity > Ġ: ĠFragment (), ĊĠĠĠ ĠHandler Action , ĠClick Action , ĠBundle Action , ĠKeyboard Action Ġ{ ĊĊĠĠĠ Ġ/** ĠActivity Ġå¯¹è±¡ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġactivity : ĠA ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** Ġ æł¹ å¸ĥå±Ģ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġroot View : ĠView ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** Ġå½ĵåīį æĺ¯åĲ¦ åĬłè½½ è¿ĩ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġloading : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġ// Ġ èİ·å¾Ĺ åħ¨å±Ģ çļĦ ĠActivity ĊĠĠĠĠĠĠĠ Ġactivity Ġ= Ġrequire Activity () Ġas ĠA ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( get Layout Id () Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġloading Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġroot View Ġ= Ġinflater . inflate ( get Layout Id (), Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ(! loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Fragment Resume ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( this . activity ?. lifecycle ?. currentState Ġ== ĠLifecycle . State . STARTED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Activity Resume () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Fragment Resume ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFragment Ġåı¯ è§ģ åĽŀè°ĥ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfirst ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġæĺ¯åĲ¦ é¦ĸ æ¬¡ è°ĥçĶ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġon Fragment Resume ( first : ĠBoolean ) Ġ{} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠActivity Ġåı¯ è§ģ åĽŀè°ĥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġopen Ġfun Ġon Activity Resume () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġroot View Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġloading Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġremove Callbacks () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ Ġactivity Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è¿Ļä¸ª ĠFragment Ġæĺ¯åĲ¦ å·²ç»ı åĬłè½½ è¿ĩ äºĨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun ĠisLoading (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġloading ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View (): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ç»ĳ å®ļçļĦ ĠActivity ï¼Į éĺ² æŃ¢ åĩºçİ° ĠgetActivity Ġ ä¸ºç©º ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġget Attach Activity (): ĠA ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġactivity ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ĠApplication Ġå¯¹è±¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġget Application (): ĠApplication ? Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ Ġreturn Ġit . application Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å¸ĥå±Ģ ĠID ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġget Layout Id (): ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ æİ§ä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġinit View () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ æķ°æį® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġinit Data () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® èµĦæºĲ Ġid Ġèİ·åıĸ ä¸Ģä¸ª ĠView Ġå¯¹è±¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġ< V Ġ: ĠView ?> ĠfindViewById (@ Id Res Ġid : ĠInt ): ĠV ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ?. findViewById ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Bundle (): ĠBundle ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġarguments ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è·³è½¬ ĠActivity Ġ ç®Ģ åĮĸ çīĪ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun ĠstartActivity ( clazz : ĠClass < out ĠActivity >) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( context , Ġclazz )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠstartActivity For Result Ġæĸ¹æ³ķ ä¼ĺåĮĸ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun ĠstartActivity For Result ( clazz : ĠClass < out ĠActivity >, Ġcallback : ĠOn Activity Callback ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. startActivity For Result ( clazz , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun ĠstartActivity For Result ( intent : ĠIntent , Ġcallback : ĠOn Activity Callback ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. startActivity For Result ( intent , Ġnull , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun ĠstartActivity For Result ( intent : ĠIntent , Ġoptions : ĠBundle ?, Ġcallback : ĠOn Activity Callback ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. startActivity For Result ( intent , Ġoptions , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĶĢ æ¯ ģ å½ĵåīį ĠFragment Ġ æīĢåľ¨ çļĦ ĠActivity ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġfinish () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . activity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Finish ing Ġ|| Ġit . is Destroyed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFragment Ġ æĮī éĶ® äºĭä»¶ æ´¾ åıĳ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġdispatch KeyEvent ( event : ĠKeyEvent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragments : ĠMutable List < Fragment ?> Ġ= Ġchild FragmentManager . fragments ĊĠĠĠĠĠĠĠ Ġfor Ġ( fragment : ĠFragment ? Ġin Ġfragments ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¿Ļä¸ª åŃĲ ĠFragment Ġ å¿ħé¡» æĺ¯ ĠBase Fragment ĠçļĦ åŃĲ ç±» ï¼Į å¹¶ä¸Ķ å¤Ħ äºİ åı¯ è§ģ çĬ¶æĢģ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fragment Ġ! is ĠBase Fragment < *> Ġ|| Ġfragment . get Lifecycle (). currentState Ġ!= ĠLifecycle . State . RE SU MED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå°Ĩ æĮī éĶ® äºĭä»¶ æ´¾ åıĳ ç»Ļ åŃĲ ĠFragment Ġ è¿Ľè¡Į å¤ĦçĲĨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fragment . dispatch KeyEvent ( event )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå¦Ĥæŀľ åŃĲ ĠFragment Ġæĭ ¦ æĪª äºĨ è¿Ļä¸ª äºĭä»¶ ï¼Į éĤ£ä¹Ī å°± ä¸į äº¤ ç»Ļ çĪ¶ ĠFragment Ġ å¤ĦçĲĨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( event ?. action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyEvent . ACTION _ DOWN Ġ-> Ġon KeyDown ( event . keyCode , Ġevent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyEvent . ACTION _ UP Ġ-> Ġon KeyUp ( event . keyCode , Ġevent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĮī éĶ® æĮī ä¸ĭ äºĭä»¶ åĽŀè°ĥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġon KeyDown ( keyCode : ĠInt , Ġevent : ĠKeyEvent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġé»ĺè®¤ ä¸į æĭ ¦ æĪª æĮī éĶ® äºĭä»¶ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĮī éĶ® æĬ ¬ èµ· äºĭä»¶ åĽŀè°ĥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġon KeyUp ( keyCode : ĠInt , Ġevent : ĠKeyEvent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġé»ĺè®¤ ä¸į æĭ ¦ æĪª æĮī éĶ® äºĭä»¶ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetContext (): ĠContext ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġactivity ĊĠĠĠ Ġ} Ċ }