/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 ĠX iz hi ĠZ hu Ċ Ġ* Ċ Ġ* Ġ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 Ġme . x iz zh u . android . j osh ua . reading . detail Ċ Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġme . x iz zh u . android . j osh ua . R Ċ import Ġme . x iz zh u . android . j osh ua . core . Settings Ċ import Ġme . x iz zh u . android . j osh ua . core . Ver se Ċ import Ġme . x iz zh u . android . j osh ua . core . Ver se Index Ċ import Ġme . x iz zh u . android . j osh ua . ui .* Ċ import Ġme . x iz zh u . android . j osh ua . ui . recyclerview . Base Item Ċ import Ġme . x iz zh u . android . j osh ua . ui . recyclerview . Base ViewHolder Ċ Ċ class ĠVer se Text Item ( ĊĠĠĠĠĠĠĠ Ġval Ġver se Index : ĠVer se Index , Ġfollowing Empty Ver se Count : ĠInt , Ġval Ġver se Text : ĠVer se . Text , Ġprivate Ġval Ġbook Name : ĠString Ċ ) Ġ: ĠBase Item ( R . layout . item _ verse _ text , Ġ{ Ġinflater , Ġparent Ġ-> ĠVer se Text Item ViewHolder ( in flater , Ġparent ) Ġ}) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠBO OK _ NAME _ SIZE _ SPAN Ġ= Ġcreate Title Size Span () ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠBO OK _ NAME _ STYLE _ SPAN Ġ= Ġcreate Title Style Span () ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠSP AN N ABLE _ STRING _ BUILDER Ġ= ĠSp ann able StringBuilder () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠCallback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Ver se Text Clicked ( translation : ĠString ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Ver se Text Long Clicked ( verse : ĠVer se ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġtext For Display : ĠCharSequence Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! verse Index . isValid () Ġ|| Ġ! verse Text . isValid ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ lazy Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġformat : ĊĠĠĠĠĠĠĠ Ġ// Ġ< translation Ġshort Ġname >, Ġ< book Ġname > Ġ< chapter Ġver se Index >:< verse Ġver se Index > ĊĠĠĠĠĠĠĠ Ġ// Ġ< verse Ġtext > ĊĠĠĠĠĠĠĠ ĠSP AN N ABLE _ STRING _ BUILDER . clear All () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( verse Text . translation ShortName ). append (", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( book Name ). append (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( verse Index . chapter Index Ġ+ Ġ 1 ). append (': '). append ( verse Index . verse Index Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( following Empty Ver se Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSP AN N ABLE _ STRING _ BUILDER . append ('- '). append ( verse Index . verse Index Ġ+ Ġfollowing Empty Ver se Count Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn @ lazy ĠSP AN N ABLE _ STRING _ BUILDER . set Span ( BOOK _ NAME _ STYLE _ SPAN , ĠBO OK _ NAME _ SIZE _ SPAN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ('\ n '). append ( verse Text . text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to CharSequence () ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠVer se Text Item ViewHolder ( in flater : ĠLayoutInflater , Ġparent : ĠViewGroup ) ĊĠĠĠ Ġ: ĠBase ViewHolder < Ver se Text Item >( in flater . inflate ( R . layout . item _ verse _ text , Ġparent , Ġfalse )) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtext : ĠTextView Ġ= ĠitemView . findViewById ( R . id . text ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ Ġitem ?. let Ġ{ Ġcallback (). on Ver se Text Clicked ( it . verse Text . translation ShortName ) Ġ} Ġ} ĊĠĠĠĠĠĠĠ ĠitemView . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Long ClickListener Ġitem ?. let Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback (). on Ver se Text Long Clicked ( Ver se ( item . verse Index , Ġitem . verse Text , Ġempty List ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcallback (): ĠVer se Text Item . Callback Ġ= Ġ( item View . activity Ġas ? ĠVer se Text Item . Callback ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" Attached Ġactivity Ġ[ ${ item View . activity . java Class . name }] Ġdoes Ġnot Ġimplement ĠVer se Text Item . Callback ") ĊĊĠĠĠ Ġoverride Ġfun Ġbind ( settings : ĠSettings , Ġitem : ĠVer se Text Item , Ġpayload s : ĠList < Any >) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( text ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Settings With Primary Text ( settings ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġitem . text For Display ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ