/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠA det un ji ĠD ahun si Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . main street code . team mate . adapters Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . main street code . team mate . R Ċ import Ġcom . main street code . team mate . adapters . view holders . Comp et itor ViewHolder Ċ import Ġcom . main street code . team mate . adapters . view holders . input . Date TextInput Style Ċ import Ġcom . main street code . team mate . adapters . view holders . input . Input ViewHolder Ċ import Ġcom . main street code . team mate . adapters . view holders . input . Spinner TextInput Style Ċ import Ġcom . main street code . team mate . adapters . view holders . input . TextInput Style Ċ import Ġcom . main street code . team mate . model . Comp et itor Ċ import Ġcom . main street code . team mate . model . Config Ċ import Ġcom . main street code . team mate . model . Head To Head Ċ import Ġcom . main street code . team mate . model . Item Ċ import Ġcom . main street code . team mate . model . always Enabled Ċ import Ġcom . main street code . team mate . model . enums . Sport Ċ import Ġcom . main street code . team mate . model . enums . Tournament Type Ċ import Ġcom . main street code . team mate . model . no Input Validation Ċ import Ġcom . main street code . team mate . util . AW AY Ċ import Ġcom . main street code . team mate . util . HOME Ċ import Ġcom . main street code . team mate . util . ITEM Ċ import Ġcom . tun jid . android x . recyclerview . adapter Of Ċ import Ġcom . tun jid . android x . recyclerview . diff . Different iable Ċ import Ġcom . tun jid . android x . view . util . inflate Ċ import Ġjava . util .* Ċ Ċ interface ĠHead To Head Adapter Listener Ġ{ ĊĠĠĠ Ġfun Ġon Home Clicked ( home : ĠComp et itor ) ĊĊĠĠĠ Ġfun Ġon Away Clicked ( away : ĠComp et itor ) Ċ } Ċ Ċ fun Ġhead To Head Request Adapter ( ĊĠĠĠĠĠĠĠ Ġrequest : ĠHead To Head . Request , ĊĠĠĠĠĠĠĠ Ġlistener : ĠHead To Head Adapter Listener Ċ ): ĠRecyclerView . Adapter < RecyclerView . ViewHolder > Ġ{ ĊĊĠĠĠ Ġval Ġcho oser Ġ= ĠHead To Head Chooser () ĊĊĠĠĠ Ġreturn Ġadapter Of < Different iable , ĠRecyclerView . ViewHolder >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems Source Ġ= Ġrequest :: items , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder Creator Ġ= Ġ{ Ġview Group : ĠViewGroup , Ġview Type : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠITEM Ġ-> ĠInput ViewHolder ( view Group . inflate ( R . layout . view holder _ simple _ input )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHOME Ġ-> ĠComp et itor ViewHolder ( view Group . inflate ( R . layout . view holder _ compet itor ), Ġlistener :: on Home Clicked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. hide Subtitle (). with Title ( R . string . pick _ home _ compet itor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA WAY Ġ-> ĠComp et itor ViewHolder ( view Group . inflate ( R . layout . view holder _ compet itor ), Ġlistener :: on Away Clicked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. hide Subtitle (). with Title ( R . string . pick _ away _ compet itor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠInput ViewHolder ( view Group . inflate ( R . layout . view holder _ simple _ input )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder Binder Ġ= Ġ{ Ġholder , Ġitem , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġis ĠItem Ġ&& Ġholder Ġis ĠInput ViewHolder Ġ-> Ġholder . bind ( cho oser [ item ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġis ĠComp et itor Ġ&& Ġholder Ġis ĠComp et itor ViewHolder Ġ-> Ġholder . bind ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Type Function Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠItem Ġ-> ĠITEM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠComp et itor Ġ&& Ġit . entity . id Ġ== Ġrequest . home Id Ġ-> ĠHOME ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠA WAY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemId Function Ġ= Ġ{ Ġit . diff Id . hashCode (). to Long () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ViewHolder Re cyc led Ġ= Ġ{ Ġif Ġ( it Ġis ĠInput ViewHolder ) Ġit . clear () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ViewHolder Detached Ġ= Ġ{ Ġif Ġ( it Ġis ĠInput ViewHolder ) Ġit . on Detached () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ViewHolder Re cycle Failed Ġ= Ġ{ Ġif Ġ( it Ġis ĠInput ViewHolder ) Ġit . clear (); Ġfalse Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ private Ġclass ĠHead To Head Chooser Ġinternal Ġconstructor () Ġ: ĠText Input Style . Input Chooser () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġs ports : ĠMutable List < Sport > ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġs ports Ġ= ĠArrayList ( Config . getS ports ()) ĊĠĠĠĠĠĠĠ Ġs ports . add ( 0 , ĠS port . empty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinvoke ( item : ĠItem ): ĠText Input Style Ġ= Ġwhen Ġ( item . item Type ) Ġ{ ĊĠĠĠĠĠĠĠ ĠItem . SP ORT Ġ-> ĠSp innerText Input Style ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . choose _ sport , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs ports , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS port :: name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS port :: code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠItem :: always Enabled , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠItem :: no Input Validation ) ĊĠĠĠĠĠĠĠ ĠItem . DATE Ġ-> ĠDate TextInput Style ( Item :: always Enabled ) ĊĠĠĠĠĠĠĠ ĠItem . TO UR NA MENT _ TYPE Ġ-> ĠSp innerText Input Style ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . tournament _ type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfig . get Tournament Types Ġ{ Ġtrue Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo urnament Type :: name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTo urnament Type :: code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠItem :: always Enabled , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠItem :: no Input Validation ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠSp innerText Input Style ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . choose _ sport , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs ports , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS port :: name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS port :: code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠItem :: always Enabled , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠItem :: no Input Validation ) ĊĠĠĠ Ġ} Ċ } Ċ