package Ġorg . simple . clin ic . new entry . country . di Ċ Ċ import Ġcom . squareup . mos hi . Json Adapter Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġcom . squareup . mos hi . Types Ċ import Ġdagger . Lazy Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġorg . simple . clin ic . app config . Country Ċ import Ġorg . simple . clin ic . facility . Facility Ċ import Ġorg . simple . clin ic . new entry . country . Bang l ade sh Input Fields Provider Ċ import Ġorg . simple . clin ic . new entry . country . Eth iop ia Input Fields Provider Ċ import Ġorg . simple . clin ic . new entry . country . In dia Input Fields Provider Ċ import Ġorg . simple . clin ic . new entry . country . Input Fields Provider Ċ import Ġorg . simple . clin ic . new entry . country . S ri L ank a Input Fields Provider Ċ import Ġorg . simple . clin ic . platform . crash . Crash Reporter Ċ import Ġorg . simple . clin ic . remote config . Remote Config Service Ċ import Ġjava . util . UUID Ċ Ċ @ Module Ċ class ĠInput Fields Factory Module Ġ{ ĊĊĠ Ġ@ Provides ĊĠ Ġfun Ġprovide Input Fields Provider ( ĊĠĠĠĠĠ Ġcountry : ĠCountry , ĊĠĠĠĠĠ Ġcurrent Facility : ĠLazy < Facility >, ĊĠĠĠĠĠ Ġch enn ai Facility Group Ids : ĠLazy < Set < UUID >> ĊĠ Ġ): ĠInput Fields Provider Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( val Ġiso CountryCode Ġ= Ġcountry . iso CountryCode ) Ġ{ ĊĠĠĠĠĠ ĠCountry . DEMO , ĊĠĠĠĠĠ ĠCountry . IN DI A Ġ-> ĠIn dia Input Fields Provider ( current Facility , Ġch enn ai Facility Group Ids ) ĊĠĠĠĠĠ ĠCountry . BAN GL ADE SH Ġ-> ĠB ang l ade sh Input Fields Provider () ĊĠĠĠĠĠ ĠCountry . ETH IO PI A Ġ-> ĠE th iop ia Input Fields Provider () ĊĠĠĠĠĠ ĠCountry . S RI _ L ANK A Ġ-> ĠS ri L ank a Input Fields Provider () ĊĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException (" Unknown Ġcountry Ġcode : Ġ$ iso CountryCode ") ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Provides ĊĠ Ġfun Ġread Ch enn ai Facility Group Ids ( ĊĠĠĠĠĠ Ġuuid Set Json Adapter : ĠJson Adapter < Set < UUID >>, ĊĠĠĠĠĠ Ġremote Config Service : ĠRemote Config Service , ĊĠ Ġ): ĠSet < UUID > Ġ{ ĊĠĠĠ Ġval Ġch enn ai Facility Id JsonArray Ġ= Ġremote Config Service . reader (). string (" ch enn ai _ facility _ group _ ids ", Ġ" [] ") ĊĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠ Ġuuid Set Json Adapter . fromJson ( ch enn ai Facility Id JsonArray ) !! ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠ Ġ// ĠWe Ġdo Ġnot Ġwant Ġcrash Ġthe Ġapp Ġin Ġthis Ġscenario , Ġjust Ġreport ĊĠĠĠĠĠ Ġ// Ġthe Ġexception Ġand Ġgo Ġwith Ġthe Ġdefault Ġbehaviour . ĊĠĠĠĠĠ ĠCrash Reporter . report ( e ) ĊĠĠĠĠĠ Ġempty Set () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Provides ĊĠ Ġfun Ġprovide Uuid Json Adapter ( ĊĠĠĠĠĠ Ġm oshi : ĠM oshi ĊĠ Ġ): ĠJson Adapter < Set < UUID >> Ġ{ ĊĠĠĠ Ġval Ġtype Ġ= ĠTypes . new Parameterized Type ( Set :: class . java , ĠUUID :: class . java ) ĊĠĠĠ Ġreturn Ġm oshi . adapter ( type ) ĊĠ Ġ} Ċ } Ċ