package Ġal man akka . ui Ċ Ċ import Ġal man akka . core . DayOfWeek Ċ import Ġal man akka . core . be haviors . I Behavior Container Ċ import Ġal man akka . ui . configurations . Config Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Size Ċ import Ġandroid . view . View . Measure Spec . AT _ MO ST Ġas Ġat Most Measure Spec Ċ import Ġandroid . view . View . Measure Spec . EX ACT LY Ġas Ġexactly Measure Spec Ċ Ċ @ Suppress Lint (" View Constructor ") Ċ internal Ġclass ĠWeek Label View ( context : ĠContext , Ġprivate Ġval Ġconfig : ĠConfig ) Ġ: ĠViewGroup ( context ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval Ġday OfWeek Size Ġ= Ġ 7 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġday OfWeek s : ĠArray < Day Label View > ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġday OfWeek s Ġ= ĠArray ( day OfWeek Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDay Label View ( context , Ġconfig . day Label Config ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Week Label View . addView ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Measure ( width Measure Spec : ĠInt , Ġheight Measure Spec : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= ĠMeasure Spec . getSize ( width Measure Spec ) ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĠMeasure Spec . getSize ( height Measure Spec ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent Width Ġ= Ġwidth Ġ- Ġconfig . view Config . month Padding Side Ġ* Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġwidth Per Element Ġ= Ġcontent Width Ġ/ Ġday OfWeek Size ĊĠĠĠĠĠĠĠ Ġval Ġrem Of Width Per Element Ġ= Ġcontent Width Ġ% Ġday OfWeek Size ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġday OfWeek Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelement Width Ġ= Ġwidth Per Element Ġ+ Ġif Ġ( i Ġ< Ġrem Of Width Per Element ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday OfWeek s [ i ]. measure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasure Spec . make Measure Spec ( element Width , Ġexactly Measure Spec ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasure Spec . make Measure Spec ( height , Ġat Most Measure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar ĠmaxHeight Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( day OfWeek Ġin Ġday OfWeek s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeasured Height Ġ= Ġday OfWeek . meas ured Height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( max Height Ġ< Ġmeasured Height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxHeight Ġ= Ġmeasured Height ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( day OfWeek Ġin Ġday OfWeek s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday OfWeek . measure ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasure Spec . make Measure Spec ( day OfWeek . meas ured Width , Ġexactly Measure Spec ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMeasure Spec . make Measure Spec ( max Height , Ġexactly Measure Spec ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent Height Ġ= ĠmaxHeight Ġ+ Ġconfig . day Label Config . margin Ġ* Ġ 2 ĊĠĠĠĠĠĠĠ Ġset Measured Dimension ( width , Ġcontent Height ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Layout ( changed : ĠBoolean , Ġl : ĠInt , Ġt : ĠInt , Ġr : ĠInt , Ġb : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġleft Ġ= Ġconfig . view Config . month Padding Side ĊĠĠĠĠĠĠĠ Ġval Ġtop Offset Ġ= Ġconfig . day Label Config . margin ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( day Ġin Ġday OfWeek s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġday . layout ( left , Ġtop Offset , Ġleft Ġ+ Ġday . meas ured Width , Ġtop Offset Ġ+ Ġday . meas ured Height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft Ġ+= Ġday . meas ured Width ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset DayOfWeek Orders ( behavior Container : ĠI Behavior Container , Ġ@ Size ( 7 ) Ġday OfWeek s : ĠArray < DayOfWeek >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck ( day OfWeek s . size Ġ== Ġday OfWeek Size ) Ġ{ Ġ" week Ġmust Ġequal Ġ 7 Ġday OfWeek s " Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ(( i , Ġday OfWeek ) Ġin Ġday OfWeek s . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . day OfWeek s [ i ]. set DayOfWeek ( behavior Container , Ġday OfWeek ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }