package Ġcom . ts iem ens . android script er . preference Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . appcompat . widget . AppCompat TextView Ċ import Ġandroidx . preference . Preference ViewHolder Ċ import Ġandroidx . preference . Seek Bar Preference ĊĊ Ċ class ĠText Size Preference ( context : ĠContext ?, Ġa : ĠAttributeSet ?, Ġda : ĠInt , Ġdr : ĠInt ) Ġ: ĠSeek Bar Preference ( context , Ġa , Ġda , Ġdr ) Ġ{ ĊĠĠĠ Ġconstructor ( c : ĠContext ?): Ġthis ( c , Ġnull , Ġandroidx . preference . R . attr . seek Bar Preference Style , Ġ 0 ) ĊĠĠĠ Ġconstructor ( c : ĠContext ?, Ġa : ĠAttributeSet ?): Ġthis ( c , Ġa , Ġandroidx . preference . R . attr . seek Bar Preference Style , Ġ 0 ) ĊĠĠĠ Ġconstructor ( c : ĠContext ?, Ġa : ĠAttributeSet ?, Ġda : ĠInt ): Ġthis ( c , Ġa , Ġda , Ġ 0 ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= ĠText Size Preference :: class . java . simple Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġsummary View Ġ: ĠAppCompat TextView ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġon Preference ChangeListener Set Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġon Attached () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attached () ĊĠĠĠĠĠĠĠ Ġif Ġ(! on Preference ChangeListener Set ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġneed Ġour Ġwrapper Ġon Ġthe Ġchange Ġlistener Ġset , Ġso Ġset Ġup Ġa Ġdummy Ġone Ġif Ġthere ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġisn 't Ġone . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Preference ChangeListener Ġ{ Ġpreference , ĠnewValue Ġ-> Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( view : ĠPreference ViewHolder ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Bind ViewHolder ( view ) ĊĠĠĠĠĠĠĠ Ġif Ġ( view ?. item View Ġ!= Ġnull Ġ&& Ġview . item View Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprint View Hierarchy ( view . item View Ġas ĠViewGroup , Ġ"") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsummary View Ġ= Ġfind Summary View ( view . item View Ġas ĠViewGroup ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( summary View Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" Found Ġsummary Ġview : Ġid Ġ${ summary View !!. id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Text Size Preview ( value ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" view Ġ(" Ġ+ Ġview ?. java Class ?. simple Name Ġ+ Ġ") Ġis Ġnot ĠViewGroup ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind Summary View ( vg : ĠViewGroup ): ĠAppCompat TextView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsummary Ġ= Ġthis . summary ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġv g . getChild Count ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġv g . getChild At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( v Ġis ĠAppCompat TextView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Found ĠAppCompat TextView . Ġtext : Ġ${ v . text }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( v . text . contains ( summary )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( v Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsv Ġ= Ġfind Summary View ( v Ġas ĠViewGroup ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sv Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsv ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprint View Hierarchy ( vg : ĠViewGroup , Ġprefix : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġv g . getChild Count ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġv g . getChild At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdesc : ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprefix Ġ+ Ġ" Ġ| Ġ" Ġ+ Ġ"[" Ġ+ Ġi Ġ+ Ġ"/" Ġ+ Ġ( vg . getChild Count () Ġ- Ġ 1 ) Ġ+ Ġ"] Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . java Class . simple Name Ġ+ Ġ" Ġ" Ġ+ Ġv . getId () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . v ( TAG , Ġdesc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( v Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint View Hierarchy ( v Ġas ĠViewGroup , Ġdesc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset On Preference ChangeListener ( on Preference ChangeListener : ĠOn Preference ChangeListener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Preference ChangeListener Set Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġmy Listener Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOn Preference ChangeListener Ġ{ Ġpreference , ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġres Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( on Preference ChangeListener Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ= Ġon Preference ChangeListener . on Preference Change ( preference , ĠnewValue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( newValue Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Text Size Preview ( newValue Ġas ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . setOn Preference ChangeListener ( my Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Text Size Preview ( text Size : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Size : ĠFloat Ġ= Ġtext Size . toFloat () ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" New Ġsize Ġis Ġ$ new Size ") ĊĠĠĠĠĠĠĠ Ġif Ġ( summary View Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsummary View ?. text Size Ġ= Ġnew Size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsummary View ?. invalidate () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( TAG , Ġ" summary View Ġis Ġnull ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }