package Ġcom . mobile health sport s . v accine pass . ui . v acc ination čĊč Ċ import Ġandroid . graphics . Bitmap č Ċ import Ġandroid . graphics . Color č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . util . Log č Ċ import Ġandroid . view . LayoutInflater č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . ViewGroup č Ċ import Ġandroidx . fragment . app . Fragment č Ċ import Ġcom . google . zx ing . Barcode Format č Ċ import Ġcom . google . zx ing . Multi Format Writer č Ċ import Ġcom . google . zx ing . Writer Exception č Ċ import Ġcom . mobile health sport s . v accine pass . R č Ċ import Ġcom . mobile health sport s . v accine pass . databinding . Fragment V acc ination Binding č Ċ import Ġcom . mobile health sport s . v accine pass . presentation . services . messages . Message Service č Ċ import Ġcom . mobile health sport s . v accine pass . presentation . services . navigation . Navigation Service č Ċ import Ġio . reactivex . rx java 3 . dis pos ables . Composite Disposable č Ċ import Ġorg . k oin . android . ext . android . inject č Ċ import Ġorg . k oin . android x . view model . ext . android . state ViewModel č Ċ import Ġorg . k oin . core . parameter . parameters Of čĊčĊč Ċ class ĠV acc ination Fragment Ġ: ĠFragment () Ġ{ čĊĠĠĠ Ġprivate Ġvar Ġv acc ination Id : ĠLong ? Ġ= Ġnull čĊčĊĠĠĠ Ġprivate Ġvar Ġdis pos ables Ġ= ĠComposite Disposable () čĊĠĠĠ Ġprivate Ġval Ġmessage Service : ĠMessage Service Ġby Ġinject Ġ{ Ġparameters Of ( this ) Ġ} čĊĠĠĠ Ġprivate Ġval Ġnavigation Service : ĠNavigation Service Ġby Ġinject Ġ{ Ġparameters Of ( this ) Ġ} čĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠV acc ination ViewModel Ġby Ġstate ViewModel () čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊčĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġv acc ination Id Ġ= Ġit . getLong ( ARG _ PARAM _ ID ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( čĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, čĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? čĊĠĠĠ Ġ): ĠView ? Ġ{ čĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment čĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ v acc ination , Ġcontainer , Ġfalse ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) čĊčĊĠĠĠĠĠĠĠ Ġnavigation Service . subscribe To Requests ( viewModel . navigation Request ) čĊĠĠĠĠĠĠĠ Ġmessage Service . subscribe To Requests ( viewModel . message Request ) čĊĠĠĠĠĠĠĠ Ġdis pos ables . addAll ( message Service ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠFragment V acc ination Binding . bind ( view ) čĊĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= ĠviewModel čĊĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġrequire Activity () čĊčĊĠĠĠĠĠĠĠ ĠviewModel . qr Json . observe ( view Lifecycle Owner , Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . qr Code . setImage Bitmap ( generate QR Code ( it )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ}) čĊčĊĠĠĠĠĠĠĠ ĠviewModel . v acc ination Id . value Ġ= Ġv acc ination Id čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġgenerate QR Code ( text : ĠString ): ĠBitmap Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġ 5 0 0 čĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġ 5 0 0 čĊĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠBitmap . create Bitmap ( width , Ġheight , ĠBitmap . Config . ARGB _ 8 8 8 8 ) čĊĠĠĠĠĠĠĠ Ġval Ġcode Writer Ġ= ĠMulti Format Writer () čĊĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbit Matrix Ġ= Ġcode Writer . encode ( text , ĠBar code Format . QR _ CODE , Ġwidth , Ġheight ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( x Ġin Ġ 0 Ġuntil Ġwidth ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( y Ġin Ġ 0 Ġuntil Ġheight ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap . set Pixel ( x , Ġy , Ġif Ġ( bit Matrix [ x , Ġy ]) ĠColor . BLACK Ġelse ĠColor . WHITE ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠWriter Exception ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" V acc ination UserData ", Ġ" generate QR Code : Ġ${ e . message }") čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġbitmap čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠARG _ PARAM _ ID Ġ= Ġ" param 1 " čĊčĊĠĠĠĠĠĠĠ Ġ/** čĊĠĠĠĠĠĠĠĠ Ġ* ĠUse Ġthis Ġfactory Ġmethod Ġto Ġcreate Ġa Ġnew Ġinstance Ġof čĊĠĠĠĠĠĠĠĠ Ġ* Ġthis Ġfragment Ġusing Ġthe Ġprovided Ġparameters . čĊĠĠĠĠĠĠĠĠ Ġ* čĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġv acc ination Id Ġid Ġof Ġthe Ġv acc ination . čĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠA Ġnew Ġinstance Ġof Ġfragment ĠV acc ination Fragment . čĊĠĠĠĠĠĠĠĠ Ġ*/ čĊĠĠĠĠĠĠĠ Ġ@ Jvm Static čĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( v acc ination Id : ĠLong ) Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠ ĠV acc ination Fragment (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Long ( ARG _ PARAM _ ID , Ġv acc ination Id ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ čĊĠĠĠĠĠĠĠ Ġdis pos ables . dispose () čĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () čĊĠĠĠ Ġ} č Ċ }