package Ġcom . san og uer al oren zo . navigation . core Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Parcelable Ċ import Ġcom . air bnb . mv rx . M aver icks Ċ Ċ /** Ċ Ġ* ĠNavigation Ġwith Ġarguments Ċ Ġ* Ċ Ġ* ĠScenario Ġ 1 Ġ( Mv Rx Ġscreens ): ĠSend Ġprimitive Ġtypes Ġor ĠParcel able Ġobjects Ċ Ġ* ĠM v Rx Ġwill Ġautomatically Ġset Ġit Ġup Ġin Ġthe Ġinitial Ġstate Ġof Ġyour ĠViewModel Ċ Ġ* ĠJust Ġremember Ġto Ġnot Ġhave Ġa Ġdefault Ġvalue Ġand Ġa Ġsecondary Ġconstructor Ġ( examples Ġbelow ) Ċ Ġ* Ċ Ġ* ĠPrimitive Ġtype Ġexample Ċ Ġ* ĠSending : Ċ Ġ* ĠExample Navigator . fragment (" com . example . Example Fragment , Ġ" Hello ") Ċ Ġ* Ċ Ġ* ĠRe ceiving Ġit : Ċ Ġ* ĠExample : Ċ Ġ* Ġdata Ġclass ĠExample State ( val Ġexample : ĠString ) Ġ: ĠM v Rx State Ġ{ Ċ Ġ* Ċ Ġ* Ġconstructor ( example Arg : ĠString ) Ġ: Ġthis ( example Ġ= Ġexample Arg ) Ċ Ġ* Ġ} Ċ Ġ* Ċ Ġ* ĠParcel ize ĠExample Ġ( use Ġit Ġwhen Ġmore Ġthan Ġone Ġarg ): Ċ Ġ* Ġ@ Parcel ize Ċ Ġ* Ġdata Ġclass ĠExample Args ( val Ġname : ĠString , Ġval Ġage : ĠInt ) Ġ: ĠParcel able Ċ Ġ* Ċ Ġ* ĠSending : Ċ Ġ* ĠExample Navigator . fragment (" com . example . Example Fragment , ĠExample Args (" M ario ", Ġ 2 8 ) Ċ Ġ* Ċ Ġ* ĠRe ceiving Ġit : Ċ Ġ* ĠExample : Ċ Ġ* Ġdata Ġclass ĠExample State ( val Ġexample Args : ĠExample Args ) Ġ: ĠM v Rx State Ġ{ Ċ Ġ* Ċ Ġ* Ġconstructor ( args : ĠExample Args ) Ġ: Ġthis ( example Args Ġ= Ġargs ) Ċ Ġ* Ġ} Ċ Ġ*/ Ċ internal Ġfun ĠAny . to Bundle (): ĠBundle Ġ= Ġif Ġ( this Ġis ĠBundle ) Ġthis Ġelse Ġthis . to Mv Rx Bundle () Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ private Ġfun ĠAny . to Mv Rx Bundle (): ĠBundle Ġ= ĠBundle (). also Ġ{ ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠString Ġ-> Ġit . putString ( M aver icks . KEY _ ARG , Ġthis ) ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠLong Ġ-> Ġit . put Long ( M aver icks . KEY _ ARG , Ġthis ) ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠBoolean Ġ-> Ġit . put Boolean ( M aver icks . KEY _ ARG , Ġthis ) ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠInt Ġ-> Ġit . put Int ( M aver icks . KEY _ ARG , Ġthis ) ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠParcel able Ġ-> Ġit . put Parcelable ( M aver icks . KEY _ ARG , Ġthis ) ĊĠĠĠĠĠĠĠ Ġthis Ġis ĠList < *> Ġ&& Ġthis . isNotEmpty () Ġ&& Ġthis . first () Ġis ĠString Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . putString ArrayList ( M aver icks . KEY _ ARG , Ġthis Ġas ĠArrayList < String >) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Non Ġimplemented Ġsimple Mv Rx Arg ") ĊĠĠĠ Ġ} Ċ } Ċ