package Ġcom . planes . android . custom views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Paint Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġcom . planes . android . game . Planes Vertical Layout Ċ Ċ class ĠCo lo ured Surface With Two Line Text Ġ: ĠView , ĠView With Text Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm _ Paint : ĠPaint ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm _ Text 1 : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm _ Text 2 : ĠString ĊĠĠĠ Ġprivate Ġvar Ġm _ Text Size Ġ= Ġ 1 0 ĊĠĠĠ Ġprivate Ġvar Ġm _ BackgroundColor Ġ= Ġ 0 ĊĠĠĠ Ġprotected Ġvar Ġm _ Line Spacing Ġ= Ġ 1 0 ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġm _ Paint Ġ= ĠPaint () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Text ( text 1 : ĠString , Ġtext 2 : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm _ Text 1 Ġ= Ġtext 1 ĊĠĠĠĠĠĠĠ Ġm _ Text 2 Ġ= Ġtext 2 ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlp Ġ= Ġlayout Params Ġas ĠPlan es Vertical Layout . Planes Vertical LayoutParams ĊĠĠĠĠĠĠĠ Ġif Ġ(! this :: m _ Text 1 . isInitialized ) Ġm _ Text 1 Ġ= Ġlp . getText 1 () ĊĠĠĠĠĠĠĠ Ġif Ġ(! this :: m _ Text 2 . isInitialized ) Ġm _ Text 2 Ġ= Ġlp . getText 2 () ĊĠĠĠĠĠĠĠ Ġm _ BackgroundColor Ġ= Ġlp . getColor () ĊĠĠĠĠĠĠĠ Ġval Ġmeasured Height Ġ= ĠCanvas Paint Utilities . measure Height Two Lines Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Measure Spec , Ġm _ Paint , Ġm _ Text 1 , Ġm _ Text 2 , Ġm _ Line Spacing ) ĊĠĠĠĠĠĠĠ Ġval Ġmeasured Width Ġ= ĠCanvas Paint Utilities . measure Width Two Lines Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Measure Spec , Ġm _ Paint , Ġm _ Text 1 , Ġm _ Text 2 ) ĊĠĠĠĠĠĠĠ Ġset Measured Dimension ( meas ured Width , Ġmeasured Height ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Draw ( canvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// TODO : Ġdraw Ġthe Ġsurface Ġin Ġthe Ġcolour Ġspecified ĊĠĠĠĠĠĠĠ Ġm _ Paint . color Ġ= Ġm _ BackgroundColor ĊĠĠĠĠĠĠĠ Ġcanvas . draw Rect ( 0 f , Ġ 0 f , Ġwidth . toFloat (), Ġheight . toFloat (), Ġm _ Paint ) ĊĠĠĠĠĠĠĠ Ġm _ Paint . color Ġ= ĠColor . BLUE ĊĠĠĠĠĠĠĠ ĠCanvas Paint Utilities . draw Text Fit To Size Two Lines ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm _ Text 1 , Ġm _ Text 2 , Ġm _ Text Size , Ġcanvas , Ġm _ Paint , Ġwidth , Ġheight , Ġm _ Line Spacing ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Opt imal Text Size ( max Text Size : ĠInt , Ġview Width : ĠInt , Ġview Height : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCanvas Paint Utilities . compute Opt imal Text Size Two Lines ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm _ Text 1 , Ġm _ Text 2 , Ġm _ Paint , Ġview Width , Ġview Height , Ġmax Text Size , Ġm _ Line Spacing ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Text Size ( text Size : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm _ Text Size Ġ= Ġtext Size ĊĠĠĠĠĠĠĠ Ġinvalidate () ĊĠĠĠ Ġ} Ċ }