/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 2 1 ĠH az uki Ċ Ġ* Ċ Ġ* Ġ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 Ġjp . h az uki . y uz ub rowser . legacy . settings . preference Ċ Ċ import Ġandroid . R Ċ import Ġandroid . content . Context Ċ import Ġandroid . text .* Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . view . do On Next Layout Ċ import Ġandroidx . preference . Preference Ċ import Ġandroidx . preference . Preference ViewHolder Ċ Ċ class ĠLong Summary Preference Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ċ ) Ġ: ĠPreference ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠPreference ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Bind ViewHolder ( holder ) ĊĊĠĠĠĠĠĠĠ Ġ( holder . findViewById ( R . id . summary ) Ġas ĠTextView ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= ĠText Filter ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Lines Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilters Ġ= ĠarrayOf ( filter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġel lip size Ġ= ĠText Utils . Truncate At . END ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo On Next Layout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠText Filter ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠtextView : ĠTextView , ĊĠĠĠ Ġ) Ġ: ĠInput Filter Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfilter ( source : ĠCharSequence , Ġstart : ĠInt , Ġend : ĠInt , Ġdest : ĠSp anned , Ġd start : ĠInt , Ġd end : ĠInt ): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpaint Ġ= ĠtextView . paint ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= ĠtextView . width Ġ- ĠtextView . compound Padding Left Ġ- ĠtextView . compound Padding Right ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠSp ann able StringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcurrent Start Ġ= Ġstart ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin Ġcurrent Start Ġuntil Ġend ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Layout . get Desired Width ( source , Ġcurrent Start , Ġindex Ġ+ Ġ 1 , Ġpaint ) Ġ> Ġwidth ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . append ( source . sub Sequence ( current Start , Ġindex )). append ('\ n ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Start Ġ= Ġindex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( start Ġ< Ġend ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . append ( source . sub Sequence ( start , Ġend )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ