package Ġorg . fo ss as ia . open event . general . ticket Ċ Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . view . is G one Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . navigation . Navigation . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġkotlinx . android . synt hetic . main . content _ no _ internet . view . retry Ċ import Ġkotlinx . android . synt hetic . main . content _ no _ internet . view . no Internet Card Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . tickets Coordinator Layout Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . eventName Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . organ izer Name Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . register Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . ticket Info TextView Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . ticket Table Header Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . tickets Recycler Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . time Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . tickets Coordinator Layout Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . discount Code EditText Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . discount Code Layout Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . discount Code Applied Layout Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . cancel Discount Code Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . apply Discount Code Ċ import Ġkotlinx . android . synt hetic . main . fragment _ tickets . view . apply Button Ċ import Ġorg . fo ss as ia . open event . general . R Ċ import Ġorg . fo ss as ia . open event . general . event . Event Ċ import Ġorg . fo ss as ia . open event . general . event . Event Utils Ċ import Ġorg . fo ss as ia . open event . general . utils . Utils . progress Dialog Ċ import Ġorg . fo ss as ia . open event . general . utils . Utils . show Ċ import Ġorg . fo ss as ia . open event . general . utils . Utils . hide Soft Keyboard Ċ import Ġorg . fo ss as ia . open event . general . utils . extensions . non Null Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel Ċ import Ġorg . fo ss as ia . open event . general . utils . Utils . set Toolbar Ċ import Ġorg . jetbrains . ank o . design . long Snackbar Ċ Ċ const Ġval ĠT ICK ETS _ FRAGMENT Ġ= Ġ" tickets Fragment " Ċ const Ġval ĠAP PLY _ DIS COUNT _ CODE Ġ= Ġ 1 Ċ private Ġconst Ġval ĠSHOW _ DIS COUNT _ CODE _ LAYOUT Ġ= Ġ 2 Ċ private Ġconst Ġval ĠDIS COUNT _ CODE _ APP LIED Ġ= Ġ 3 Ċ Ċ class ĠTick ets Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtickets Recycler Adapter : ĠTick ets Recycler Adapter Ġ= ĠTick ets Recycler Adapter () ĊĠĠĠ Ġprivate Ġval Ġtickets ViewModel Ġby ĠviewModel < Tickets ViewModel >() ĊĠĠĠ Ġprivate Ġval Ġsafe Args : ĠTick ets Fragment Args Ġby Ġnav Args () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġroot View : ĠView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlinear LayoutManager : ĠLinearLayoutManager ĊĠĠĠ Ġprivate Ġvar Ġticket Id And Qty Ġ= ĠArrayList < Triple < Int , ĠInt , ĠFloat >>() ĊĠĠĠ Ġprivate Ġvar Ġtotal Amount : ĠFloat Ġ= Ġ 0 . 0 f ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . set Currency ( safe Args . currency ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġroot View Ġ= Ġinflater . inflate ( R . layout . fragment _ tickets , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġset Toolbar ( activity , ĠgetString ( R . string . ticket _ details )) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĊĠĠĠĠĠĠĠ Ġroot View . tickets Recycler . layout Manager Ġ= ĠLinearLayoutManager ( activity ) ĊĊĠĠĠĠĠĠĠ Ġroot View . tickets Recycler . adapter Ġ= Ġtickets Recycler Adapter ĊĠĠĠĠĠĠĠ Ġroot View . tickets Recycler . is Nested Scrolling Enabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġlinear LayoutManager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġlinear LayoutManager . orientation Ġ= ĠRecyclerView . VERTICAL ĊĠĠĠĠĠĠĠ Ġroot View . tickets Recycler . layout Manager Ġ= Ġlinear LayoutManager ĊĊĠĠĠĠĠĠĠ Ġval Ġprogress Dialog Ġ= Ġprogress Dialog ( context , ĠgetString ( R . string . loading _ message )) ĊĠĠĠĠĠĠĠ Ġtickets ViewModel . progress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. non Null () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . show ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . ticket Table Header . is G one Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . register . is G one Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġtickets ViewModel . ticket Table Visibility ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. non Null () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġticket Table Visible Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . ticket Table Header . isVisible Ġ= Ġticket Table Visible ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . register . isVisible Ġ= Ġticket Table Visible ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . tickets Recycler . isVisible Ġ= Ġticket Table Visible ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . ticket Info TextView . is G one Ġ= Ġticket Table Visible ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . apply Discount Code . isVisible Ġ= Ġticket Table Visible ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġtickets ViewModel . error ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. non Null () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Discount Code Visibility () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . discount Code EditText . text Ġ= ĠSp ann able StringBuilder ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtickets Coordinator Layout . long Snackbar ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġtickets ViewModel . event ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. non Null () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Event Details ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġtickets ViewModel . tickets ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. non Null () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . addAll ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġroot View . register . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! tickets ViewModel . total Tickets Empty ( ticket Id And Qty )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtickets ViewModel . get Amount ( ticket Id And Qty ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ErrorMessage ( resources . getString ( R . string . no _ tickets _ message )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtickets ViewModel . amount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. non Null () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Amount Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck For Authentication () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġroot View . retry . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Tickets () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġroot View . apply Discount Code . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Discount Code Visibility ( SHOW _ DIS COUNT _ CODE _ LAYOUT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġroot View . apply Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( root View . discount Code EditText . text . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . discount Code EditText . error Ġ= ĠgetString ( R . string . empty _ field _ error _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Soft Keyboard ( context , Ġroot View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtickets ViewModel . fetch Discount Code ( root View . discount Code EditText . text . toString (). trim ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtickets ViewModel . discount Code ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. non Null () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . eventId ?. id Ġ!= Ġsafe Args . eventId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Discount Code Visibility () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . tickets Coordinator Layout . long Snackbar ( getString ( R . string . invalid _ discount _ code )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ Observer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtickets ViewModel . applied Discount Code Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . apply Discount ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Discount Code Visibility ( DIS COUNT _ CODE _ APP LIED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġroot View . cancel Discount Code . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . discount Code EditText . text Ġ= ĠSp ann able StringBuilder ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtickets ViewModel . applied Discount Code Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . cancel Discount Code () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Discount Code Visibility () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtickets ViewModel . connection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. non Null () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġis Connected Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Tickets () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow No Internet Screen (! isConnected Ġ&& Ġtickets ViewModel . tickets . value Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġticket Selected Listener Ġ= Ġobject Ġ: ĠTicket Selected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Selected ( ticket Id : ĠInt , Ġquantity : ĠInt , Ġdon ation : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Ticket Select ( ticket Id , Ġquantity , Ġdon ation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtickets ViewModel . ticket Id And Qty . value Ġ= Ġticket Id And Qty ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . set Select Listener ( ticket Selected Listener ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( safe Args . timeout ) Ġshow ErrorMessage ( getString ( R . string . ticket _ timeout _ message )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . set Select Listener ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck For Authentication () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tickets ViewModel . is LoggedIn ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġredirect To At tendee () ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtickets Coordinator Layout . long Snackbar ( getString ( R . string . log _ in _ first )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġredirect To Login () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġredirect To At tendee () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwrapped Ticket And Qty Ġ= ĠTicket Id And Qty Wrapper ( ticket Id And Qty ) ĊĠĠĠĠĠĠĠ Ġtickets ViewModel . mutable Amount . value Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfind Nav Controller ( root View ). navigate ( Tickets Fragment Directions . action Tickets To At tendee ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Id Ġ= Ġsafe Args . eventId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġticket Id And Qty Ġ= Ġwrapped Ticket And Qty , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrency Ġ= Ġsafe Args . currency , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġtotal Amount , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Paid Tickets Ġ= Ġtickets ViewModel . has Paid Tickets ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġtickets ViewModel . has Paid Tickets Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġredirect To Login () Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Nav Controller ( root View ). navigate ( Tickets Fragment Directions . action Tickets To Auth ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . log _ in _ first ), ĠT ICK ETS _ FRAGMENT ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Ticket Select ( id : ĠInt , Ġquantity : ĠInt , Ġdon ation : ĠFloat Ġ= Ġ 0 F ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpos Ġ= Ġticket Id And Qty . map Ġ{ Ġit . first Ġ}. indexOf ( id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( pos Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġticket Id And Qty . add ( Triple ( id , Ġquantity , Ġdon ation )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġticket Id And Qty [ pos ] Ġ= ĠTrip le ( id , Ġquantity , Ġdon ation ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Event Details ( event : ĠEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġroot View . eventName . text Ġ= Ġevent . name ĊĠĠĠĠĠĠĠ Ġval Ġorgan izer Name Ġ= Ġevent . owner Name ĊĠĠĠĠĠĠĠ Ġif Ġ( organ izer Name Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . organ izer Name . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . organ izer Name . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . organ izer Name . text Ġ= ĠgetString ( R . string . by _ organ izer _ name , Ġorgan izer Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġstarts At Ġ= ĠEvent Utils . getEvent DateTime ( event . starts At , Ġevent . timezone ) ĊĠĠĠĠĠĠĠ Ġval Ġends At Ġ= ĠEvent Utils . getEvent DateTime ( event . ends At , Ġevent . timezone ) ĊĠĠĠĠĠĠĠ Ġroot View . time . text Ġ= ĠEvent Utils . get Formatted DateTime Range Detailed ( starts At , Ġends At ) ĊĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . set TimeZone ( event . timezone ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow ErrorMessage ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( resources . getString ( R . string . who ops )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( resources . getString ( R . string . ok )) Ġ{ Ġdialog , Ġ_ Ġ-> Ġdialog . cancel () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Tickets () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Event Ġ= Ġtickets ViewModel . event . value ĊĠĠĠĠĠĠĠ Ġif Ġ( current Event Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtickets ViewModel . load Event ( safe Args . eventId ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Event Details ( current Event ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( tickets ViewModel . isConnected () Ġ&& Ġtickets ViewModel . tickets . value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtickets ViewModel . load Tickets ( safe Args . eventId ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġretained Ticket Id And Qty : ĠList < Triple < Int , ĠInt , ĠFloat >> ? Ġ= Ġtickets ViewModel . ticket Id And Qty . value ĊĠĠĠĠĠĠĠ Ġif Ġ( ret ained Ticket Id And Qty Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( id And Qty Ġin Ġretained Ticket Id And Qty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Ticket Select ( id And Qty . first , Ġid And Qty . second , Ġid And Qty . third ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . set Ticket And Qty ( ret ained Ticket Id And Qty ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtickets Recycler Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow No Internet Screen ( show : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġroot View . no Internet Card . isVisible Ġ= Ġshow ĊĠĠĠĠĠĠĠ Ġroot View . ticket Table Header . isVisible Ġ= Ġ! show ĊĠĠĠĠĠĠĠ Ġroot View . tickets Recycler . isVisible Ġ= Ġ! show ĊĠĠĠĠĠĠĠ Ġroot View . register . isVisible Ġ= Ġ! show ĊĠĠĠĠĠĠĠ Ġif Ġ( show ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . discount Code Layout . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . discount Code Applied Layout . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . apply Discount Code . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Discount Code Visibility ( tickets ViewModel . discount Code Current Layout ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Discount Code Visibility ( code : ĠInt Ġ= ĠAP PLY _ DIS COUNT _ CODE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtickets ViewModel . discount Code Current Layout Ġ= Ġcode ĊĠĠĠĠĠĠĠ Ġwhen Ġ( code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAP PLY _ DIS COUNT _ CODE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . apply Discount Code . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . discount Code Applied Layout . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . discount Code Layout . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSHOW _ DIS COUNT _ CODE _ LAYOUT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . apply Discount Code . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . discount Code Applied Layout . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . discount Code Layout . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDIS COUNT _ CODE _ APP LIED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . apply Discount Code . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . discount Code Applied Layout . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . discount Code Layout . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ