package Ġxyz . l az iness . font simulator . main Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . RadioButton Ċ import Ġandroid . widget . Radio Group Ċ import Ġandroid . widget . Seek Bar Ċ import Ġandroid . widget . Toast Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġuk . co . chr is jen x . call ig raph y . Call ig raph y Config Ċ import Ġuk . co . chr is jen x . call ig raph y . Type face Utils ĊĊ Ċ const Ġval ĠST AND ARD _ TEXT _ SIZE : ĠInt Ġ= Ġ 1 4 Ċ const Ġval ĠWE IGHT _ LINE _ SPACING : ĠFloat Ġ= Ġ 1 . 0 f Ċ const Ġval ĠWE IGHT _ LET TER _ SPACING : ĠFloat Ġ= Ġ 0 . 0 5 f Ċ Ċ class ĠMainActivity Ġ: ĠMy Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġfont Bold Ġby Ġlazy Ġ{ ĠgetString ( R . string . font _ bold ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġfont Dem i Light Ġby Ġlazy Ġ{ ĠgetString ( R . string . font _ dem il ight ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġfont Medium Ġby Ġlazy Ġ{ ĠgetString ( R . string . font _ medium ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġfont Path Bold Ġby Ġlazy Ġ{ ĠgetString ( R . string . font _ path _ bold ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġfont Path Dem i Ġby Ġlazy Ġ{ ĠgetString ( R . string . font _ path _ de mi ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġfont Path Medium Ġby Ġlazy Ġ{ ĠgetString ( R . string . font _ path _ medium ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġinit Font () ĊĠĠĠĠĠĠĠ Ġinit Ui () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġmenu ; Ġthis Ġadds Ġitems Ġto Ġthe Ġaction Ġbar Ġif Ġit Ġis Ġpresent . ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġaction Ġbar Ġitem Ġclicks Ġhere . ĠThe Ġaction Ġbar Ġwill ĊĠĠĠĠĠĠĠ Ġ// Ġautomatically Ġhandle Ġclicks Ġon Ġthe ĠHome / Up Ġbutton , Ġso Ġlong ĊĠĠĠĠĠĠĠ Ġ// Ġas Ġyou Ġspecify Ġa Ġparent Ġactivity Ġin ĠAndroid Manifest . xml . ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ settings Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġset Seek Bar Event () Ġ{ ĊĠĠĠĠĠĠĠ ĠfontSize Seek . setOn Seek Bar ChangeListener ( object Ġ: ĠSeek Bar . On Seek Bar ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( sb : ĠSeek Bar ?, Ġprogress : ĠInt , Ġfrom User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Size Ġ= Ġ( progress Ġ+ ĠST AND ARD _ TEXT _ SIZE ). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Text . setText Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTyped Value . COMPLEX _ UNIT _ DIP , Ġcurrent Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Line Text . setText Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTyped Value . COMPLEX _ UNIT _ DIP , Ġcurrent Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontSize Value . text Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . dp _ holder ), Ġcurrent Size . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart Tracking Touch ( sb : ĠSeek Bar ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Stop Tracking Touch ( sb : ĠSeek Bar ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġline Spacing Seek . setOn Seek Bar ChangeListener ( object Ġ: ĠSeek Bar . On Seek Bar ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( sb : ĠSeek Bar ?, Ġprogress : ĠInt , Ġfrom User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Spacing Ġ= Ġprogress Ġ* ĠWE IGHT _ LINE _ SPACING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Text . set Line Spacing ( current Spacing , Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Line Text . set Line Spacing ( current Spacing , Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline Spacing Value . text Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . px _ under _ two _ holder ), Ġcurrent Spacing ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart Tracking Touch ( sb : ĠSeek Bar ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Stop Tracking Touch ( sb : ĠSeek Bar ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġletter Spacing Seek . setOn Seek Bar ChangeListener ( object Ġ: ĠSeek Bar . On Seek Bar ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( sb : ĠSeek Bar ?, Ġprogress : ĠInt , Ġfrom User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Spacing Ġ= Ġprogress Ġ* ĠWE IGHT _ LET TER _ SPACING ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Text . letter Spacing Ġ= Ġcurrent Spacing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Line Text . letter Spacing Ġ= Ġcurrent Spacing ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġletter Spacing Value . text Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . px _ under _ two _ holder ), Ġcurrent Spacing ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart Tracking Touch ( sb : ĠSeek Bar ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( application Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . app _ version _ low _ msg ), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Stop Tracking Touch ( sb : ĠSeek Bar ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset EditText Event () Ġ{ ĊĠĠĠĠĠĠĠ Ġedit Text . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( p 0 : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( str : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Text . text Ġ= Ġstr ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Line Text . text Ġ= Ġstr ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset RadioButton Event () Ġ{ ĊĠĠĠĠĠĠĠ Ġfont Group . setOn Checked ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġradio Group : ĠRadio Group ?, Ġi : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchecked Button Ġ= Ġradio Group !!. findViewById < RadioButton >( i ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( checked Button . text ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont Bold Ġ-> Ġset Example Text Font ( font Bold ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont Dem i Light Ġ-> Ġset Example Text Font ( font Dem i Light ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont Medium Ġ-> Ġset Example Text Font ( font Medium ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Value View () Ġ{ ĊĠĠĠĠĠĠĠ ĠfontSize Value . text Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . dp _ holder ), ĠST AND ARD _ TEXT _ SIZE ) ĊĠĠĠĠĠĠĠ Ġline Spacing Value . text Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . px _ under _ two _ holder ), Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġletter Spacing Value . text Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . px _ under _ two _ holder ), Ġ 0 f ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Font () Ġ{ ĊĠĠĠĠĠĠĠ ĠCall ig raph y Config . init Default ( Call ig raph y Config . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setFont Attr Id ( R . attr . font Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Example Text Font ( type Ġ: ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfont Bold Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Text . type face Ġ= ĠType face Utils . load ( assets , Ġfont Path Bold ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Line Text . type face Ġ= ĠType face Utils . load ( assets , Ġfont Path Bold ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfont Dem i Light Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Text . type face Ġ= ĠType face Utils . load ( assets , Ġfont Path Dem i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Line Text . type face Ġ= ĠType face Utils . load ( assets , Ġfont Path Dem i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfont Medium Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Line Text . type face Ġ= ĠType face Utils . load ( assets , Ġfont Path Medium ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmulti Line Text . type face Ġ= ĠType face Utils . load ( assets , Ġfont Path Medium ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Ui () Ġ{ ĊĠĠĠĠĠĠĠ Ġset EditText Event () ĊĠĠĠĠĠĠĠ Ġset Seek Bar Event () ĊĠĠĠĠĠĠĠ Ġset RadioButton Event () ĊĠĠĠĠĠĠĠ Ġinit Value View () ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ