/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 , ĠAlibaba ĠGroup ĠHold ing ĠLimited ; Ċ Ġ* Ċ Ġ* Ġ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 . alibaba . g ai ax . template Ċ Ċ import Ġandroid . graphics . Rect Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . alibaba . fastjson . JSONObject Ċ Ċ /** Ċ Ġ* Ġ@ suppress Ċ Ġ*/ Ċ data Ġclass ĠG X Grid Config ( ĊĠĠĠ Ġval Ġcolumn : ĠInt Ġ= Ġ 1 , ĊĠĠĠ Ġval Ġdirection : ĠInt Ġ= ĠLinearLayoutManager . VERTICAL , ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠItem Ġspacing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġitem Spacing : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSp acing Ġper pend icular Ġto Ġthe Ġitem Ġspacing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġrow Spacing : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġval Ġedge Insets : ĠRect Ġ= ĠRect ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ), ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġscroll able ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġscroll Enable : ĠBoolean Ġ= Ġfalse , Ċ ) Ġ{ ĊĊĊĠĠĠ Ġval Ġis Vertical ĊĠĠĠĠĠĠĠ Ġget (): Boolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdirection Ġ== ĠLinearLayoutManager . VERTICAL ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġis Horizontal ĊĠĠĠĠĠĠĠ Ġget (): Boolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdirection Ġ== ĠLinearLayoutManager . HORIZONTAL ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( direction : ĠString ?, Ġedge Insets : ĠString ?, Ġitem Spacing : ĠString ?, Ġrow Spacing : ĠString ?, Ġcolumn : ĠInt , Ġscroll able : ĠBoolean ): ĠG X Grid Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠG X Grid Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG X Container Convert . direction ( direction Ġ?: ĠG X Template Key . G AI AX _ VERTICAL ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG X Container Convert . spacing ( item Spacing ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG X Container Convert . spacing ( row Spacing ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG X Container Convert . edge Insets ( edge Insets ) Ġ?: ĠRect ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll able ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( src Config : ĠG X Grid Config , Ġextend Cache : ĠJSONObject ): ĠG X Grid Config ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrid Column Ġ= Ġextend Cache . getInteger ( GX Template Key . G AI AX _ LAYER _ COLUMN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscroll Enable Ġ= Ġextend Cache . getBoolean ( GX Template Key . G AI AX _ LAYER _ SCROLL _ ENABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedge Insets Ġ= Ġextend Cache . getString ( GX Template Key . G AI AX _ LAYER _ EDGE _ IN SETS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Spacing Ġ= Ġextend Cache . getString ( GX Template Key . G AI AX _ LAYER _ ITEM _ SPACING ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow Spacing Ġ= Ġextend Cache . getString ( GX Template Key . G AI AX _ LAYER _ ROW _ SPACING ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠG X Grid Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid Column Ġ?: Ġsrc Config . column , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Config . direction , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Spacing Ġ!= Ġnull ) ĠG X Container Convert . spacing ( item Spacing ) Ġelse Ġsrc Config . item Spacing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( row Spacing Ġ!= Ġnull ) ĠG X Container Convert . spacing ( row Spacing ) Ġelse Ġsrc Config . row Spacing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( edge Insets Ġ!= Ġnull ) ĠG X Container Convert . edge Insets ( edge Insets ) Ġ?: Ġsrc Config . edge Insets Ġelse Ġsrc Config . edge Insets , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll Enable Ġ?: Ġsrc Config . scroll Enable , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" GX Grid Config ( column =$ column , Ġdirection =$ direction , Ġitem Spacing =$ item Spacing , Ġrow Spacing =$ row Spacing , Ġedge Insets =$ edge Insets )" ĊĠĠĠ Ġ} Ċ Ċ }