package Ġna . k omi . kode sh . ui . main Ċ Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . text . Layout Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . style .* Ċ import Ġandroid . util . Log Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . coordinator layout . widget . Coordinator Layout Ċ import Ġandroidx . core . view . update Padding Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġkotlinx . android . extensions . Layout Container Ċ import Ġkotlinx . android . synt hetic . main . recyclerview _ child _ content _ main .* Ċ import Ġkotlinx . coroutines .* Ċ import Ġna . k omi . kode sh . Application Ċ import Ġna . k omi . kode sh . Prefs Ċ import Ġna . k omi . kode sh . R Ċ import Ġna . k omi . kode sh . model . Bible Ċ import Ġna . k omi . kode sh . util . page . Fonts Ċ import Ġna . k omi . kode sh . util . page . Formatting Ċ import Ġna . k omi . kode sh . util . page . My Sp ann able Factory Ċ import Ġna . k omi . kode sh . util . text . span Between Each Ċ import Ġna . k omi . kode sh . util . text . with Span Ċ import Ġna . k omi . kode sh . util . try y Ċ import Ġna . k omi . kode sh . ui . widget . Layout ed TextView Ċ import Ġna . k omi . kode sh . ui . widget . Leading Margin Span 3 Ċ import Ġna . k omi . kode sh . ui . widget . ViewPager 3 Ċ import Ġna . k omi . kode sh . util . log Ċ import Ġna . k omi . kode sh . util . text . count Ċ import Ġna . k omi . kode sh . util . text . span Between Ċ import Ġkotlin . coroutines . Coroutine Context ĊĊ Ċ class ĠMain Child Adapter ( ĊĠĠĠ Ġprivate Ġval Ġvm : ĠMain ViewModel Ċ ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Main Child Adapter . ViewHolder >(), ĠCor outine Scope Ġ{ ĊĠĠĠ Ġoverride Ġval Ġcoroutine Context : ĠCor outine Context ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠDispatch ers . Main Ġ+ Ġjob ĊĠĠĠ Ġprivate Ġval Ġjob Ġ= ĠSuper visor Job () ĊĠĠĠ Ġval Ġlist Ġ= Ġmutable ListOf < Bible >() ĊĠĠĠ Ġprivate Ġval Ġclean List Ġby Ġlazy Ġ{ Ġmutable ListOf < String >() Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset Has Stable Ids ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ= Ġlist [ position ]. id . to Long () ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġlist . size ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . recyclerview _ child _ content _ main , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( list [ position ], Ġposition ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset List ( new List : ĠMutable List < Bible >) Ġ{ ĊĠĠĠĠĠĠĠ Ġlist . clear () ĊĠĠĠĠĠĠĠ Ġlist . addAll ( new List ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġcoroutine Context . cancel Children () ĊĠĠĠĠĠĠĠ Ġ/* launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclean List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtext : String ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . map To ( clean List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġit . verse Text !!. replace ( per is cope Del imeter ," ") Ġ. replace ( italic Del imeter ," ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vm . k jv St yling ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġk jv Ġ= ĠFormat ting . k jv List [ it . id Ġ- Ġ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ ĠFormat ting . diff Text ( text , Ġk jv ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}*/ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsearch ( text : ĠCharSequence ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch Term Ġ= Ġtext ĊĠĠĠĠĠĠĠ Ġ// notify DataSet Changed () ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġhighlight ( found : ĠPair < Int , Int > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġhighlight Ġ= Ġfound // ?. also Ġ{ Ġnotify Item Changed ( it . first ) Ġ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġsearch Term : ĠCharSequence Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġval Ġsp ann able Factory Ġby Ġlazy Ġ{ ĠMy Sp ann able Factory () Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġonly A pl ha Numeric Regex Ġby Ġlazy Ġ{ Ġ""" [^ A - Za - z 0 - 9 Ġ] """. to Regex () Ġ} ĊĠĠĠ Ġprivate Ġval Ġper is cope Del imeter Ġby Ġlazy Ġ{ Ġ""" \\ < .*? \\ > """. to Regex () Ġ} ĊĠĠĠ Ġprivate Ġval Ġitalic Del imeter Ġby Ġlazy Ġ{ Ġ""" \\ [ | \\ ] """. to Regex () Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġhighlight : Pair < Int , Int >? = Ġnull ĊĠĠĠ Ġprivate Ġval Ġclipboard Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠApplication . instance . application Context . getSystem Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext . CLIP BOARD _ SERVICE ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠClip board Manager ? ĊĠĠĠ Ġ} ĊĠĠĠ Ġinner Ġclass ĠViewHolder ( override Ġval Ġcontainer View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( container View ), ĠLayout Container Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġver se View : ĠLayout ed TextView Ġ= Ġchild _ tv _ item ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġorig Left Padding Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġorig Right Padding Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġorig Top Padding Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġleading Margin Span Ġby Ġlazy Ġ{ ĠLead ing Margin Span 3 () Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġp : ĠPaint ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġc Ġ= ĠCanvas () ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġred Color Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtyped Value Ġ= ĠTyped Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . context . theme . resolve Attribute ( R . attr . red Letter Color , Ġtyped Value , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtyped Value . data ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . type face Ġ= ĠFonts . G ent ium Plus _ R ĊĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . setText Size ( Typed Value . COMPLEX _ UNIT _ SP , ĠP refs . main FontSize ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . set Sp ann able Factory ( span nable Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġ"${ Prefs . title }:${ list [ adapter Position ]. verse Id }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcontent Ġ= Ġver se View . text . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġfor Ġpers ico pe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( adapter Position Ġ== Ġ 0 Ġ&& Ġlist [ adapter Position ]. verse Text !!. contains ("< ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġver se View . text . substring ( verse View . text . indexOf Last Ġ{ Ġit Ġ== Ġ'\ n ' Ġ} + 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( adapter Position + 1 Ġ== Ġlist . size Ġ Ġ&& Ġlist [ adapter Position ]. verse Text !!. contains ("< ") Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġver se View . text . substring ( 0 , verse View . text . indexOf ('\ n ')) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġfor Ġdrop cap ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( verse View . drop Cap Text . isNotEmpty ()) Ġcontent Ġ= Ġ"${ verse View . drop Cap Text }$ content " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ Ġcontent . replace ("${ list [ adapter Position ]. verse Id } Ġ Ġ"," ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( verse View ," Selected Ġ$ title ", ĠSn ackbar . LENGTH _ SHORT ). setAction (" Copy ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclipboard ?. primary Clip Ġ= ĠClip Data . new Plain Text (" Search Ġtext ", Ġ"$ title \ n $ content ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( it . context ," Copied Ġver se ", Toast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġsp ( px : ĠFloat ) Ġ= Ġpx Ġ/ ĠApplication . instance . application Context . resources . display Metrics . scaled Density ĊĊĠĠĠĠĠĠĠ Ġfun Ġbind ( item : ĠBible , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// verse View . future Set ("${ item . verse Id !!} Ġ${ item . verse Text !! }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// verse View . text Ġ= Ġ"${ item . verse Id !!} Ġ${ item . verse Text !! }" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// log Ġd Ġ" position : Ġ$ position Ġ| Ġ${ item . verse Id !!} Ġ${ item . verse Text !! }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( orig Left Padding Ġ== Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorig Left Padding Ġ= Ġver se View . padding Left ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( orig Right Padding Ġ== Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorig Right Padding Ġ= Ġver se View . padding Right ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ( verse View . text Size ) Ġ!= ĠTyped Value . apply Dimension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTyped Value . COMPLEX _ UNIT _ SP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP refs . main FontSize , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . context . resources . display Metrics ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vm . show Drop Cap Ġ&& Ġposition Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġver se View . setText Size ( Typed Value . COMPLEX _ UNIT _ SP , ĠP refs . main FontSize ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( verse View . padding Left Ġ!= Ġorig Left Padding ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . update Padding ( orig Left Padding ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( verse View . padding Right Ġ!= Ġorig Right Padding ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . update Padding ( right Ġ= Ġorig Right Padding ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( verse View . padding Top Ġ!= Ġorig Top Padding ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . update Padding ( top Ġ= Ġorig Top Padding ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvt Ġ= Ġif Ġ( vm . k jv St yling ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġk jv Ġ= ĠFormat ting . k jv List [ item . id Ġ- Ġ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFormat ting . diff Text ( item . verse Text !! , Ġk jv ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġitem . verse Text !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfinal Text Ġ= ĠSp ann able StringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġnumbers ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġred Ġletter ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġver se Number Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vm . show Ver se Numbers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġ 0 Ġ&& Ġ( vm . show Drop Cap Ġ|| Ġvt . contains ("< "))) Ġreturn @ run ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . with Span ( Relative Size Span ( 1 f Ġ/ Ġ 1 . 9 f )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ("${ item . verse Id !! }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . with Span ( ForegroundColor Span ( Formatting . Num Color )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . append (" Ġ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se Number Ġ= Ġfinal Text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" Red undant If ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnew Vt Ġ= Ġvt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vt . contains ("< ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// log Ġd Ġ" m RecyclerView Ġ= Ġ${ m RecyclerView }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// log Ġd Ġ" m RecyclerView . parent Ġ= Ġ${ m RecyclerView ?. parent }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// log Ġd Ġ" m RecyclerView . parent ?. parent Ġ= Ġ${ m RecyclerView ?. parent ?. parent }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . has Per is cope Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġvt . lastIndexOf (' >') + 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs 1 Ġ= Ġvt . substring ( 0 , Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs 2 Ġ= Ġvt . substring ( i ). trim () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Vt Ġ= Ġs 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvt . lastIndexOf ("< ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspan Ġ= ĠSp ann able StringBuilder ( s 1 . replace ("< ", Ġ""). replace ("> ", Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry y Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . append ( span ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . span Between Each ( Style Span ( Type face . ITAL IC ), Ġ"[", Ġ" ]", Ġtrue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . with Span ( Style Span ( Type face . BOLD )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . with Span ( Alignment Span . Standard ( Layout . Alignment . ALIGN _ CENTER )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . append ("\ n \ n ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġver se View . has Per is cope Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vm . show Drop Cap ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . show Drop Cap Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . drop Cap Text Ġ= Ġnew Vt . take ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleading Margin Span . set Margin ( verse View . tp . measure Text ( verse View . drop Cap Text ). toInt () Ġ+ Ġver se View . M ARGIN _ P ADDING ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . with Span ( leading Margin Span ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( new Vt . drop ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIt al ics ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry y Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . span Between Each ( Style Span ( Type face . ITAL IC ), Ġ"[", Ġ" ]", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( verse View . line Count Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . update Padding ( top Ġ= Ġ 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . update Padding ( top Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġver se Ġnumber ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vt . contains ("< ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġver se Num Ġ= Ġ"${ item . verse Id !! }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . with Span ( Relative Size Span ( 1 f Ġ/ Ġ 1 . 9 f )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( verse Num ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . set Span ( ForegroundColor Span ( Formatting . Num Color ), final Text . length - Ġver se Num . length , final Text . length Ġ, Sp ann able StringBuilder . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . append (" Ġ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se Number Ġ= Ġ"$ verse Num Ġ Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . append ( new Vt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIt al ics ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry y Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . span Between Each ( Style Span ( Type face . ITAL IC ), Ġ"[", Ġ" ]", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . show Drop Cap Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . drop Cap Text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . verse Id !! Ġ== Ġlist . size Ġ&& Ġvt . contains ("< ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vt . contains ("< ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġvt . indexOf ("< ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs 1 Ġ= Ġvt . substring ( 0 , Ġi ). trim () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs 2 Ġ= Ġvt . substring ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspan Ġ= ĠSp ann able StringBuilder ( s 2 . replace ("< ", Ġ""). replace ("> ", Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry y Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . append ( s 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . span Between Each ( Style Span ( Type face . ITAL IC ), Ġ"[", Ġ" ]", Ġtrue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan . with Span ( Style Span ( Type face . BOLD )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan . with Span ( Alignment Span . Standard ( Layout . Alignment . ALIGN _ CENTER )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . append ("\ n \ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . append ( span ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . append ( vt ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIt al ics ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry y Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . span Between Each ( Style Span ( Type face . ITAL IC ), Ġ"[", Ġ" ]", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . show Drop Cap Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . has Per is cope Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . drop Cap Text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRed ĠLet ters ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vm . show Red Letters Ġ&& Ġitem . book Id !! Ġ>= Ġ 4 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// d {" R an Ġblock "} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Idx Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFormat ting . red Letter List . indexOf First Ġ{ Ġstr Ġ-> Ġstr . indexOf ("${ item . book Id }\ t ${ item . chapter Id }\ t ${ item . verse Id }\ t ") Ġ>= Ġ 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( r Idx Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġit Ġ= ĠFormat ting . red Letter List [ r Idx ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ_ red Text Ġ= Ġit . substring ( it . lastIndexOf ('\ t ') Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġred Text Ġ= Ġif Ġ( vm . k jv St yling ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġk jv Ġ= ĠFormat ting . k jv List [ item . id Ġ- Ġ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFormat ting . diff Text (_ red Text , Ġk jv ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ_ red Text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFormat ting . red Letter Positions ( r Idx ) Ġ{ Ġs , Ġe , Ġc Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠS afety Ġbounds ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġz Space Ġ= Ġfinal Text . length // verse . indexOf ( Z SPACE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstart Ġ= Ġs Ġor r Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( vm . show Ver se Numbers Ġ&& Ġposition Ġ> Ġ 1 Ġ&& Ġc Ġ<= Ġ 1 ) Ġstart Ġ+= Ġver se Number . length ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġend Ġ= Ġif Ġ( e Ġ> Ġfinal Text . length ) Ġfinal Text . length Ġelse Ġe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ+= Ġif Ġ( vm . show Ver se Numbers Ġ&& Ġposition Ġ> Ġ 1 Ġ&& Ġend Ġ+ Ġver se Number . length Ġ<= Ġfinal Text . length ) Ġver se Number . length Ġelse Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Char Index Ġ= Ġred Text . indexOf ("{ ", Ġs Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Char Index Ġ= Ġred Text . indexOf (" }", Ġe Ġ- Ġ 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġspace After Start Ġ= Ġred Text . indexOf (" Ġ", Ġstart Char Index Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( space After Start Ġ< Ġ 0 ) Ġspace After Start Ġ= Ġz Space ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspace Before Start Ġ= Ġred Text . substring ( 0 , Ġstart Char Index ). lastIndexOf (' Ġ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspace Before End Ġ= Ġred Text . substring ( 0 , Ġend Char Index ). lastIndexOf (' Ġ') ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Word Ġ= Ġred Text . substring ( start Char Index , Ġspace After Start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Word Ġ= Ġred Text . substring ( space Before End , Ġend Char Index ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Start Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . indexOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Word . replace ( only A pl ha Numeric Regex , Ġ""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspace Before Start , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew End Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . indexOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Word . replace ( only A pl ha Numeric Regex , Ġ""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspace Before End , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new End Ġ> Ġ 0 ) Ġend Ġ= Ġnew End Ġ+ Ġend Word . length ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Start Ġin Ġ 0 .. ( end Ġ- Ġ 1 )) Ġstart Ġ= Ġnew Start ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( start Ġ> Ġend ) Ġstart Ġ= Ġs Ġor r Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( start Ġ> Ġend ) Ġstart Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( end Ġ> Ġfinal Text . length ) Ġend Ġ= Ġfinal Text . last Index ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSince Ġwe Ġremoved ĠP unctuation Ġwe Ġhave Ġto Ġadd Ġthe Ġmissing Ġindex Ġback Ġin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( z Space Ġ>= Ġ 0 Ġ&& Ġend Ġin Ġz Space Ġ- Ġ 3 .. z Space ) Ġend Ġ= Ġz Space ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf Ġthis Ġis Ġthe Ġlast Ġword , Ġgo Ġto Ġthe Ġend . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( end Char Index Ġin Ġred Text . length Ġ- Ġ 2 .. red Text . length Ġ+ Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġfinal Text . length ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . set Span ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFore ground Color Span ( red Color ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w tf (" Red Letter ", Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSearch ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( search Term . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . count ( search Term . toString (), Ġtrue ) Ġ{ Ġs , Ġe , Ġc Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( highlight != null Ġ&& Ġhighlight !!. first Ġ== Ġitem . verse Id !! Ġ&& highlight !!. second Ġ== Ġc ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . set Span ( BackgroundColor Span ( Formatting . Highlight Focus Color ), s , e , Sp ann able StringBuilder . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Text . set Span ( BackgroundColor Span ( Formatting . High Light Color ), s , e , Sp ann able StringBuilder . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . setText ( final Text , ĠTextView . Buffer Type . SPAN N ABLE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver se View . setText Future ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPre computed Text Compat . getText Future ( text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTextView Compat . getText Metrics Params ( verse View ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . executor Dispatcher . executor )) */ ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġin fix Ġfun ĠInt . or r ( other : ĠInt ): ĠInt Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( this Ġ< Ġ 0 ) Ġother Ġelse Ġthis ĊĠĠĠ Ġ} Ċ }