package Ġqs os . core . form . view . hod ler Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġkotlinx . android . synt hetic . main . form _ item _ user . view .* Ċ import Ġkotlinx . android . synt hetic . main . form _ item _ user _ item . view .* Ċ import Ġkotlinx . android . synt hetic . main . form _ normal _ title . view .* Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġqs os . core . form . R Ċ import Ġqs os . core . form . db . Form Database Ċ import Ġqs os . core . form . db . entity . Form Item Ċ import Ġqs os . core . form . db . entity . Value Ċ import Ġqs os . core . form . db Complete Ċ import Ġqs os . core . form . utils . Form Config Helper Ċ import Ġqs os . core . lib . utils . image . Image Loader Utils Ċ import Ġqs os . lib . base . base . adapter . Base Normal Adapter Ċ import Ġqs os . lib . base . base . holder . Base Holder Ċ import Ġqs os . lib . base . callback . On ListItem ClickListener Ċ import Ġqs os . lib . base . utils . Toast Utils Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ: Ġ åįİ æ¸ħ æĿ ¾ Ċ Ġ* Ġ è¡¨åįķ çĶ¨æĪ· åĪĹè¡¨ é¡¹ è§ĨåĽ¾ Ċ Ġ*/ Ċ @ Suppress Lint (" SetText I 1 8 n ") Ċ class ĠForm Item User Holder ( ĊĠĠĠĠĠĠĠ ĠitemView : ĠView , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Job : ĠCor outine Context , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġitem Click : ĠOn ListItem ClickListener Ċ ) Ġ: ĠBase Holder < Form Item >( item View ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠsetData ( data : ĠForm Item , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues : ĠArrayList < Value > Ġ= Ġdata . form Item Value ?. values !! ĊĊĠĠĠĠĠĠĠ ĠitemView . form _ item _ title . text Ġ= Ġ"${ data . title }" ĊĠĠĠĠĠĠĠ ĠitemView . item _ form _ users _ size . text Ġ= Ġ"${ data . form Item Value !!. values !!. size }\ t äºº " ĊĊĠĠĠĠĠĠĠ Ġif Ġ( item View . item _ form _ users _ rv . layout Manager Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . item _ form _ users _ rv . layout Manager Ġ= ĠGrid LayoutManager ( item View . context , Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . item _ form _ users _ rv . adapter Ġ= ĠBase Normal Adapter ( R . layout . form _ item _ user _ item , Ġvalues , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Holder Ġ= Ġ{ Ġholder , Ġvalue , Ġp Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġvalue . user !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Loader Utils . display ( holder . item View . context , Ġholder . item View . item _ form _ user _ icon , Ġuser . user Avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . item _ form _ user _ name . text Ġ= Ġuser . userName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . item _ form _ user _ delete . visibility Ġ= Ġif Ġ(! value . limit Edit ) ĠView . VISIBLE Ġelse ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . item _ form _ user _ delete . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCor outine Scope ( m Job ). db Complete Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Ġ= Ġ{ ĠForm Database . getInstance (). form Item Value Dao . delete ( data . form Item Value !!. values ! ![ p ]) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . form Item Value !!. values !!. remove At ( p ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . item _ form _ users _ size . text Ġ= Ġ"${ data . form Item Value !!. values !!. size }\ t äºº " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . item _ form _ users _ rv . adapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Fail Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast Long ( holder . item View . context , Ġ" åĪłéĻ¤ å¤±è´¥ Ġ${ it . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . item _ form _ user _ icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠForm Config Helper . preview User ( it . context , Ġp , Ġvalues . map Ġ{ Ġit . user !! Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . item _ form _ users _ rv . adapter !!. notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠitemView . form _ item _ title . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Click . on Item Click ( it , Ġposition , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠitemView . item _ form _ users _ size . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Click . on Item Click ( it , Ġposition , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ