package Ġcom . to bi ass ch uer g . prefix suffix Ċ Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Filter Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . graphics . PixelFormat Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ // ĠThis Ġis Ġfor Ġthe Ġprefix . Ċ // ĠIt Ġis Ġa Ġdrawable Ġfor Ġrendering Ġtext Ċ internal Ġclass ĠPrefix Drawable ( ĊĠĠĠ Ġvar Ġpaint : ĠPaint , ĊĠĠĠ Ġvar Ġline Bounds : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠDrawable () Ġ{ ĊĊĠĠĠ Ġvar Ġtext : ĠString Ġby ĠDeleg ates . observable ("") Ġ{ Ġ_, Ġ_: ĠString ?, Ġ_: ĠString ? Ġ-> ĊĠĠĠĠĠĠĠ Ġ// ĠTell Ġit Ġwe Ġneed Ġto Ġbe Ġas Ġbig Ġas Ġwe Ġwant Ġto Ġbe ! ĊĠĠĠĠĠĠĠ Ġset Bounds ( 0 , Ġ 0 , Ġintr insic Width , Ġintr insic Height ) ĊĠĠĠĠĠĠĠ Ġinvalidate Self () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdraw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtext . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy Ġ= Ġ( line Bounds Ġ+ Ġcanvas . clip Bounds . top ). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas . draw Text ( it , Ġ 0 f , Ġy , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Alpha ( i : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" alpha Ġnot Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Color Filter ( color Filter : ĠColor Filter ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" color Ġfilter Ġnot Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Opacity (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPixel Format . OP A QUE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Intr insic Height (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpaint . text Size . toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Intr insic Width (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpaint . measure Text ( text ). toInt () ĊĠĠĠ Ġ} Ċ } Ċ