package Ġcom . omega _ r . bind . model . bind ers Ċ Ċ import Ġandroid . util . Sparse Array Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . core . util . forEach Ċ import Ġcom . omega _ r . bind . model . Bind Model Ċ Ċ open Ġclass ĠVis ible Custom Multi Binder < M >( id : ĠInt , Ġvar arg Ġids : ĠInt , Ġprivate Ġval Ġquery Block : Ġ( item : ĠM ) Ġ-> ĠBoolean ) Ġ: ĊĠĠĠ ĠMulti Binder < View , ĠM >( id , Ġ* ids ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġbind ( views : ĠSparse Array < View >, Ġitem : ĠM ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvisibility Ġ= Ġif Ġ( query Block ( item )) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ Ġviews . forEach Ġ{ Ġ_, Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . visibility Ġ= Ġvisibility ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ fun Ġ< M > ĠBind Model . Builder < M >. bind Visible ( ĊĠĠĠ Ġ@ Id Res Ġid : ĠInt , ĊĠĠĠ Ġvar arg Ġids : ĠInt , ĊĠĠĠ Ġquery Block : Ġ( M ) Ġ-> ĠBoolean Ċ ) Ġ= Ġbind Binder ( Visible Custom Multi Binder ( id , Ġids Ġ= Ġids , Ġquery Block Ġ= Ġquery Block ))