package Ġcom . github . ar ad xxx . c icer one flow ss ample Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Html Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . activity . On Back Pressed Callback Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . github . ar ad xxx . c icer one flow . Flow Router Ċ import Ġcom . github . ar ad xxx . c icer one flow . Navigation Container Ċ import Ġcom . github . ar ad xxx . c icer one flow ss ample . tab fragment . tab 2 Screen Ċ import Ġcom . github . ar ad xxx . c icer one flow ss ample . tab fragment . tab 3 Screen Ċ Ċ /** Ċ Ġ* ĠÐŁ ÑĢ Ð¸Ð¼ÐµÑĢ ĠÑĦ ÑĢÐ°Ð ³ Ð¼ ÐµÐ½ÑĤ Ð° ĠÑįÐº ÑĢÐ°Ð½ Ð° . Ċ Ġ*/ Ċ class ĠApp Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrouter : ĠFlow Router ĊĠĠĠ Ġprivate Ġval Ġon Back Pressed Callback : ĠOn Back Pressed Callback Ġ= Ġobject Ġ: ĠOn Back Pressed Callback ( true ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle On Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter . exit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= Ġview . findViewById < TextView >( R . id . label ) ĊĠĠĠĠĠĠĠ Ġval Ġswitch Button Ġ= Ġview . findViewById < Button >( R . id . switch _ to _ 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġswitch And Another One Button Ġ= Ġview . findViewById < Button >( R . id . switch _ to _ 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġadd Without Switch Button Ġ= Ġview . findViewById < Button >( R . id . add _ to _ 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġnext Button Ġ= Ġview . findViewById < Button >( R . id . open _ next ) ĊĠĠĠĠĠĠĠ Ġval Ġnext Global Button Ġ= Ġview . findViewById < Button >( R . id . open _ next _ global ) ĊĠĠĠĠĠĠĠ Ġval Ġreplace Global Button Ġ= Ġview . findViewById < Button >( R . id . replace _ global ) ĊĠĠĠĠĠĠĠ Ġif Ġ( arguments Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ Ð°ÐµÑĤ ĠÐ½Ð° ĠÑįÐº ÑĢÐ°Ð½ Ðµ ĠÑģ ĠÐºÐ°Ðº Ð¾Ð³Ð¾ ĠÑĤ Ð°Ð± Ð° ĠÐ±Ñĭ Ð» ĠÐ¾ÑĤ Ðº ÑĢÑĭ ÑĤ ĠÑĦ ÑĢÐ°Ð ³ Ð¼ ÐµÐ½ÑĤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠÐ¸ ĠÑĤÐµÐº Ñĥ ÑīÐ¸Ð¹ ĠÑĢÐ°Ð· Ð¼ ÐµÑĢ ĠÑģÑĤ ÐµÐº Ð° ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġ(" OPEN ED ĠFROM : Ġ< b >" Ġ+ Ġrequire Arguments (). getString ( B UNDLE _ KEY _ LABEL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"</ b >< br />< br /> back Ġstack Ġsize : Ġ< b >" Ġ+ Ġback Stack Size () Ġ+ Ġ"</ b >") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= ĠHtml . from Html ( text ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠÐº Ð½ Ð¾Ð¿ ÐºÐ° ĠÐ¿ÐµÑĢ ÐµÐº Ð»ÑİÑĩ ÐµÐ½Ð¸Ñı ĠÐ½Ð° Ġ 2 Ð¾Ð¹ ĠÑĤ Ð°Ð± ĊĠĠĠĠĠĠĠ Ġswitch Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter . switch ( tab 2 Screen ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠÐº Ð½ Ð¾Ð¿ ÐºÐ° ĠÐ¿ÐµÑĢ ÐµÐº Ð»ÑİÑĩ ÐµÐ½Ð¸Ñı ĠÐ½Ð° Ġ 3 Ð¸Ð¹ ĠÑĤ Ð°Ð± ĠÐ¸ ĠÐ¾ÑĤ Ðº ÑĢÑĭ ÑĤÐ¸ Ðµ ĠÐµ Ñī Ðµ ĠÐ¾Ð´ Ð½Ð¾Ð³Ð¾ ĠÑĦ ÑĢÐ°Ð ³ Ð¼ ÐµÐ½ÑĤ Ð° ĊĠĠĠĠĠĠĠ Ġswitch And Another One Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter . switch ( tab 3 Screen ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter . navigate To ( Tab . Tab 3 . tag (), Ġapp Fragment Screen ( tab Tag ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠÐŀ ÑĤ Ðº ÑĢÑĭ ÑĤÐ¸ Ðµ ĠÑįÐº ÑĢÐ°Ð½ Ð° ĠÐ½Ð° Ġ 3 ÐµÐ¼ ĠÑĤ Ð°Ð± Ðµ , ĠÐ±ÐµÐ· ĠÐ¿ÐµÑĢ ÐµÐº Ð»ÑİÑĩ ÐµÐ½Ð¸Ñı ĠÑĤ Ð°Ð± Ð° ĊĠĠĠĠĠĠĠ Ġadd Without Switch Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter . navigate To ( Tab . Tab 3 . tag (), Ġapp Fragment Screen ( tab Tag ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠÐº Ð½ Ð¾Ð¿ ÐºÐ° ĠÐ¾ÑĤ Ðº ÑĢÑĭ ÑĤÐ¸ Ñı ĠÐµ Ñī Ðµ ĠÐ¾Ð´ Ð½Ð¾Ð³Ð¾ ĠÑĦ ÑĢÐ°Ð ³ Ð¼ ÐµÐ½ÑĤ Ð° ĠÐ½Ð° ĠÑĤÐµÐº ÑĥÑī ÐµÐ¼ ĠÑĤ Ð°Ð± Ðµ ĊĠĠĠĠĠĠĠ Ġnext Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter . navigate To ( app Fragment Screen ( tab Tag ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠÐº Ð½ Ð¾Ð¿ ÐºÐ° ĠÐ¾ÑĤ Ðº ÑĢÑĭ ÑĤÐ¸ Ñı ĠÐµ Ñī Ðµ ĠÐ¾Ð´ Ð½Ð¾Ð³Ð¾ ĠÑĦ ÑĢÐ°Ð ³ Ð¼ ÐµÐ½ÑĤ Ð° ĠÐ¿ Ð¾Ð²ÐµÑĢ Ñħ ĠÑĤ Ð°Ð± Ð¾Ð² ĊĠĠĠĠĠĠĠ Ġnext Global Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter . navigate To ("", Ġapp Fragment Screen (" ACTIVITY ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠÐº Ð½ Ð¾Ð¿ ÐºÐ° ĠÐ· Ð°Ð¼ ÐµÐ½ Ñĭ ĠÐ³ Ð» Ð¾Ð± Ð°Ð» ĠÑįÐº ÑĢÐ°Ð½ Ð° ĊĠĠĠĠĠĠĠ Ġreplace Global Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter . replace Screen ("", Ġapp Fragment Screen (" REPL AC ED ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( parent Fragment Ġis ĠNavigation Container <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter Ġ= Ġ( parent Fragment Ġas ĠNavigation Container < *> ). router () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( require Activity () Ġis ĠNavigation Container <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter Ġ= Ġ( require Activity () Ġas ĠNavigation Container < *> ). router () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrequire Activity (). on Back Pressed Dispatcher . add Callback ( on Back Pressed Callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġon Back Pressed Callback . remove () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtab Tag (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġparent Fragment ĊĠĠĠĠĠĠĠ Ġreturn Ġfragment ?. tag Ġ?: Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġback Stack Size (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( parent Fragment Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). support FragmentManager . back Stack Entry Count . toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġrequire Parent Fragment (). child FragmentManager . back Stack Entry Count . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠB UNDLE _ KEY _ LABEL Ġ= Ġ" B UNDLE _ KEY _ LABEL " ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( label : ĠString ): ĠApp Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( B UNDLE _ KEY _ LABEL , Ġlabel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠApp Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }