package Ġcom . jj lf . jj kit _ layout plus . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . graphics . Type face . MON O SPACE Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Locale List Ċ import Ġandroid . text . Layout Ċ import Ġandroid . text . method . Transformation Method Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . S parseInt Array Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . TEXT _ ALIGNMENT _ TEXT _ START Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġorg . w 3 c . dom . Text Ċ import Ġjava . util .* Ċ import Ġkotlin . math . min Ċ Ċ class ĠJ J Text Attributes Ġ{ ĊĠĠĠ Ġ// region Ġvariables ĊĠĠĠ Ġvar Ġ Ġm TextColor Highlight Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġ Ġm TextColor Ġ: ĠColor State List ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġ Ġm TextColor Hint Ġ: ĠColor State List ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġ Ġm TextColor Link Ġ: ĠColor State List ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġ Ġm Text Size Ġ= Ġ- 1 ĊĠĠĠ Ġvar Ġ Ġm Text Locales : ĠLocale List ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġ Ġm Font Family : String ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġ Ġm Font Type face : ĠType face ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġ Ġm Font Family Explicit Ġ= Ġfalse ; ĊĠĠĠ Ġvar Ġ Ġm Type face Index Ġ= Ġ- 1 ĊĠĠĠ Ġvar Ġ Ġm TextStyle Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġ Ġm Font Weight Ġ= Ġ- 1 ĊĠĠĠ Ġvar Ġ Ġm All Caps Ġ= Ġfalse ĊĠĠĠ Ġvar Ġ Ġm Shadow Color Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġ Ġm Shadow Dx Ġ= Ġ 0 f ĊĠĠĠ Ġvar Ġ Ġm Shadow Dy Ġ= Ġ 0 f ĊĠĠĠ Ġvar Ġ Ġm Shadow Radius Ġ= Ġ 0 f ĊĠĠĠ Ġvar Ġ Ġm Has E leg ant Ġ= Ġfalse ĊĠĠĠ Ġvar Ġ Ġm E leg ant Ġ= Ġfalse ĊĠĠĠ Ġvar Ġ Ġm Has Fallback Line Spacing Ġ= Ġfalse ĊĠĠĠ Ġvar Ġ Ġm Fallback Line Spacing Ġ= Ġfalse ĊĠĠĠ Ġvar Ġ Ġm Has Letter Spacing Ġ= Ġfalse ĊĠĠĠ Ġvar Ġ Ġm Letter Spacing Ġ= Ġ 0 f ĊĠĠĠ Ġvar Ġ Ġm Font Feature Settings : String ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġ Ġm Font Variation Settings : String ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġm Hint : String ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġm Gravity : Int ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġm Text Alignment Ġ: Int ? Ġ= Ġnull ĊĊĊĠĠĠ Ġ// endregion ĊĊĠĠĠ Ġ// region Ġset ĊĊĊĠĠĠ Ġfun Ġset Hint ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Hint Ġ= Ġt . getString ( style able Id ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Hint TextColor ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm TextColor Hint Ġ= Ġt . getColor State List ( style able Id ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Font Family ( context : Context , Ġt : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġif Ġ(! context . is Restricted Ġ&& ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . Q ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Font Type face Ġ= Ġt . getFont ( style able Id Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e Ġ: Exception Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠExpected Ġif Ġit Ġis Ġnot Ġa Ġfont Ġresource . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Ġm Font Type face Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Font Family Ġ= Ġt . getString ( style able Id ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Font Family Explicit Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Type Face ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Type face Index Ġ= Ġt . getInt ( style able Id , Ġm Type face Index ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Ġm Type face Index Ġ!= Ġ- 1 Ġ&& Ġ! m Font Family Explicit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Font Family Ġ= Ġnull ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset TextStyle ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm TextStyle Ġ= Ġt . getInt ( style able Id , Ġm TextStyle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Gravity ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Gravity Ġ= Ġt . getInt ( style able Id , Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Text Alignment ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Text Alignment Ġ= Ġt . getInt ( style able Id , 0 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Text Size ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Text Size Ġ= Ġt . get Dimension Pixel Size ( style able Id , Ġ- 1 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset TextColor ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm TextColor Ġ= Ġt . getColor State List ( style able Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset TextColor Highlight ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm TextColor Highlight Ġ= Ġt . getColor ( style able Id , Ġm TextColor Highlight ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset TextColor Link ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm TextColor Link Ġ= Ġt . getColor State List ( style able Id ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . N ) ĊĠĠĠ Ġfun Ġset Text Locale ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġval Ġlocale String Ġ= Ġt . getString ( style able Id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( locale String Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocale List Ġ= ĠLocale List . for Language Tags ( locale String ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! locale List . isEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Text Locales Ġ= Ġlocale List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Font Weight ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Font Weight Ġ= Ġt . getInt ( style able Id , Ġm Font Weight ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset All Caps ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm All Caps Ġ= Ġt . getBoolean ( style able Id , Ġm All Caps ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Shadow Color ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Shadow Color Ġ= Ġt . getInt ( style able Id , Ġm Shadow Color ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Shadow Dx ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Shadow Dx Ġ= Ġt . get Float ( style able Id , Ġm Shadow Dx ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Shadow Dy ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Shadow Dy Ġ= Ġt . get Float ( style able Id , Ġm Shadow Dy ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Shadow Radius ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Shadow Radius Ġ= Ġt . get Float ( style able Id , Ġm Shadow Radius ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset E leg ant ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Has E leg ant Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm E leg ant Ġ= Ġt . getBoolean ( style able Id , Ġm E leg ant ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Fallback Line Spacing ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Has Fallback Line Spacing Ġ= Ġtrue ; ĊĠĠĠĠĠĠĠ Ġm Fallback Line Spacing Ġ= Ġt . getBoolean ( style able Id , Ġm Fallback Line Spacing ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Letter Spacing ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Has Letter Spacing Ġ= Ġtrue ; ĊĠĠĠĠĠĠĠ Ġm Letter Spacing Ġ= Ġt . get Float ( style able Id , Ġm Letter Spacing ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Font Feature Settings ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Font Feature Settings Ġ= Ġt . getString ( style able Id ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġset Font Variation Settings ( t : ĠTyped Array , Ġstyle able Id : Int ){ ĊĠĠĠĠĠĠĠ Ġm Font Variation Settings Ġ= Ġt . getString ( style able Id ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// endregion ĊĊĊĠĠĠ Ġfun Ġ Ġapply ( context : ĠContext , v : TextView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( m Hint Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . hint Ġ= Ġm Hint ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif ( m Gravity Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . gravity Ġ= Ġm Gravity !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif ( m Text Alignment Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . text Alignment Ġ= Ġm Text Alignment !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( m TextColor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . setTextColor ( m TextColor !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m TextColor Hint Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . set Hint TextColor ( m TextColor Hint ); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m TextColor Link Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . set Link TextColor ( m TextColor Link ); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m TextColor Highlight Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . highlight Color Ġ= Ġm TextColor Highlight ; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Text Size Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Text Size . toFloat () Ġ!= Ġv . paint . text Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . paint . text Size Ġ= Ġm Text Size . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Text Locales Ġ!= Ġnull Ġ&& ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . text Locales Ġ= Ġm Text Locales !! ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Type face Index Ġ!= Ġ- 1 Ġ&& Ġ! m Font Family Explicit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Font Family Ġ= Ġnull ; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Type face From Attrs ( v , m Font Type face , Ġm Font Family , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Type face Index , Ġm TextStyle , Ġm Font Weight ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Shadow Color Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . set Shadow Layer ( m Shadow Radius , Ġm Shadow Dx , Ġm Shadow Dy , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Shadow Color ); ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m All Caps ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . transformation Method Ġ= Ġobject : ĠTransformation Method Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Focus Changed ( view : ĠView ?, Ġsource Text : ĠCharSequence ?, Ġfocused : ĠBoolean , Ġdirection : ĠInt , Ġpreviously Focused Rect : ĠRect ?) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Transformation ( source : ĠCharSequence ?, Ġview : ĠView ?): ĠCharSequence ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsource ?. toString ()?. toUpperCase ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( m Has E leg ant ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . is E leg ant Text Height Ġ= Ġm E leg ant ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Has Fallback Line Spacing Ġ&& ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . P ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . is Fallback Line Spacing Ġ= Ġm Fallback Line Spacing ; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Has Letter Spacing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . letter Spacing Ġ= Ġm Letter Spacing . toFloat () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Font Feature Settings Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . font Feature Settings Ġ= Ġm Font Feature Settings ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Font Variation Settings Ġ!= Ġnull Ġ&& ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . font Variation Settings Ġ= Ġm Font Variation Settings ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Type face From Attrs ( Ġv : TextView , type face : ĠType face ?, ĠĠ Ġfamily Name : String ?, Ġtype face Index : Int , Ġstyle : Int , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight : Int ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( type face Ġ== Ġnull Ġ&& Ġfamily Name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLookup Ġnormal ĠType face Ġfrom Ġsystem Ġfont Ġmap . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ Ġnormal Type face Ġ= ĠType face . create ( family Name , ĠType face . NORMAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresolve Style AndSet Type face ( v , normal Type face , Ġstyle , Ġweight ); ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( type face Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresolve Style AndSet Type face ( v , type face , Ġstyle , Ġweight ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ġ Ġ// Ġboth Ġtype face Ġand Ġfamily Name Ġis Ġnull . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( type face Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġresolve Style AndSet Type face ( v , Type face . SAN S _ SER IF , Ġstyle , Ġweight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġresolve Style AndSet Type face ( v , Type face . SER IF , Ġstyle , Ġweight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ Ġresolve Style AndSet Type face ( v , MON O SPACE , Ġstyle , Ġweight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġresolve Style AndSet Type face ( v , null , Ġstyle , Ġweight ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġresolve Style AndSet Type face ( Ġv : TextView , type face : ĠType face ?, Ġstyle : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight : Int ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġw Ġ= Ġweight ĊĠĠĠĠĠĠĠ Ġif Ġ( w Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġw Ġ= Ġmin ( 1 0 0 0 , w ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ Ġitalic Ġ= Ġ( style Ġand ĠType face . ITAL IC ) Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . P ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . type face Ġ= ĠType face . create ( type face , Ġw , Ġitalic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . setType face ( type face , Ġstyle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . setType face ( type face , Ġstyle ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġget Array Text Attributes (): ĠInt Array { ĊĠĠĠĠĠĠĠ Ġreturn Ġint ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . attr . hint , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . attr . textColor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . attr . text Size , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . attr . text Alignment , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . attr . gravity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . attr . fontFamily , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . attr . type face , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . attr . text Style ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġ ĠS parseInt Array (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( android . R . attr . hint , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( android . R . attr . textColor , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( android . R . attr . text Size , Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( android . R . attr . text Alignment , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( android . R . attr . gravity , Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( android . R . attr . fontFamily , Ġ 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( android . R . attr . type face , Ġ 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( android . R . attr . text Style , Ġ 7 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊ Ċ }