/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 5 - 2 0 1 6 ĠDom in ik ĠH ib bel n Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . github . por ok oro . paper boy . builders Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . annotation . Layout Res Ċ import Ġandroid . support . annotation . Raw Res Ċ import Ġandroid . util . Sparse Array Ċ import Ġcom . github . por ok oro . paper boy .* Ċ Ċ fun Ġbuild Paper boy ( context : ĠContext , Ġfunc : ĠPaper boy Builder . () Ġ-> ĠUnit ): ĠPaper boy Fragment Ġ{ ĊĠĠĠ Ġval Ġbuilder Ġ= ĠPaper boy Builder () ĊĠĠĠ Ġbuilder . func () ĊĊĠĠĠ Ġreturn Ġbuild ( context , Ġbuilder ) Ċ } Ċ Ċ private Ġfun Ġbuild ( context : ĠContext , Ġbuilder : ĠPaper boy Builder ): ĠPaper boy Fragment Ġ{ ĊĠĠĠ Ġval Ġconfig Ġ= ĠPaper boy Configuration () ĊĠĠĠ Ġconfig . file Ġ= Ġif Ġ( builder . file Res Ġ> Ġ 0 ) Ġnull Ġelse Ġbuilder . file ĊĠĠĠ Ġconfig . file Res Ġ= Ġbuilder . file Res ĊĠĠĠ Ġconfig . view Type Ġ= Ġbuilder . view Type ĊĠĠĠ Ġconfig . section Layout Ġ= Ġbuilder . section Layout ĊĠĠĠ Ġconfig . type Layout Ġ= Ġbuilder . type Layout ĊĠĠĠ Ġconfig . item Layout Ġ= Ġbuilder . item Layout ĊĠĠĠ Ġconfig . sort Items Ġ= Ġbuilder . sort Items ĊĠĠĠ Ġconfig . item Types Ġ= Ġbuilder . item Types . let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsparse Array Ġ= ĠSparse Array < ItemType >( it . size ) ĊĠĠĠĠĠĠĠ Ġit . forEach Ġ{ Ġsparse Array . put ( it . id , Ġit ) Ġ} ĊĠĠĠĠĠĠĠ Ġsparse Array ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( config . item Types . get ( Default Item Types . FEATURE ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Type Ġ= ĠDefault Item Types . create Feature ( context ) ĊĠĠĠĠĠĠĠ Ġconfig . item Types . put ( item Type . id , Ġitem Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( config . item Types . get ( Default Item Types . BUG ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Type Ġ= ĠDefault Item Types . create Bug ( context ) ĊĠĠĠĠĠĠĠ Ġconfig . item Types . put ( item Type . id , Ġitem Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( config . item Types . get ( Default Item Types . IMP RO VE MENT ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Type Ġ= ĠDefault Item Types . create Impro vement ( context ) ĊĠĠĠĠĠĠĠ Ġconfig . item Types . put ( item Type . id , Ġitem Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġfragment Ġ= ĠPaper boy Fragment () ĊĠĠĠ Ġval Ġargs Ġ= ĠBundle ( 1 ) ĊĠĠĠ Ġargs . putString ( Paper boy Fragment . ARG _ CONFIG , ĠConfiguration Serializer . write ( config )) ĊĠĠĠ Ġfragment . arguments Ġ= Ġargs ĊĊĠĠĠ Ġreturn Ġfragment Ċ } Ċ Ċ class ĠPaper boy Builder Ġ{ ĊĠĠĠ Ġvar Ġfile : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġfile Res Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġview Type Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġsection Layout Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġtype Layout Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġitem Layout Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġsort Items Ġ= Ġfalse ĊĠĠĠ Ġvar Ġitem Types Ġ= ĠlistOf < ItemType >() Ċ } Ċ Ċ @ Suppress (" unused ") Ċ class ĠPaper boy Chain Builder ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbuilder Ġ= ĠPaper boy Builder () ĊĊĠĠĠ Ġfun Ġfile ( file : ĠString ?) Ġ= Ġapply Ġ{ Ġbuilder . file Ġ= Ġfile Ġ} ĊĊĠĠĠ Ġfun Ġfile Res (@ Raw Res Ġfile Res : ĠInt ) Ġ= Ġapply Ġ{ Ġbuilder . file Res Ġ= Ġfile Res Ġ} ĊĊĠĠĠ Ġfun Ġview Type ( view Type : ĠInt ) Ġ= Ġapply Ġ{ Ġbuilder . view Type Ġ= Ġview Type Ġ} ĊĊĠĠĠ Ġfun Ġsection Layout (@ Layout Res Ġsection Layout : ĠInt ) Ġ= Ġapply Ġ{ Ġbuilder . section Layout Ġ= Ġsection Layout Ġ} ĊĊĠĠĠ Ġfun Ġtype Layout (@ Layout Res Ġtype Layout : ĠInt ) Ġ= Ġapply Ġ{ Ġbuilder . type Layout Ġ= Ġtype Layout Ġ} ĊĊĠĠĠ Ġfun Ġitem Layout (@ Layout Res Ġitem Layout : ĠInt ) Ġ= Ġapply Ġ{ Ġbuilder . item Layout Ġ= Ġitem Layout Ġ} ĊĊĠĠĠ Ġfun Ġsort Items ( sort Items : ĠBoolean ) Ġ= Ġapply Ġ{ Ġbuilder . sort Items Ġ= Ġsort Items Ġ} ĊĊĠĠĠ Ġfun Ġadd ItemType ( item Type : ĠItem Type ) Ġ= Ġapply Ġ{ Ġbuilder . item Types Ġ= Ġbuilder . item Types Ġ+ Ġitem Type Ġ} ĊĊĠĠĠ Ġfun Ġbuild Fragment () Ġ= Ġbuild ( context , Ġbuilder ) Ċ } ĊĊ