package Ġcom . war de ll bag by . sens ord is abler Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . hardware . Sensor Ċ import Ġandroid . os . Parcelable Ċ import Ġcom . squareup . workflow 1 . Snapshot Ċ import Ġcom . squareup . workflow 1 . State ful Workflow Ċ import Ġcom . squareup . workflow 1 . action Ċ import Ġcom . squareup . workflow 1 . render Child Ċ import Ġcom . squareup . workflow 1 . ui . View Registry Ċ import Ġcom . squareup . workflow 1 . ui . modal . Alert Container Ċ import Ġcom . squareup . workflow 1 . ui . to Parcelable Ċ import Ġcom . squareup . workflow 1 . ui . to Snapshot Ċ import Ġcom . war de ll bag by . sens ord is abler . Main Workflow . Props Ċ import Ġcom . war de ll bag by . sens ord is abler . Main Workflow . State Ċ import Ġcom . war de ll bag by . sens ord is abler . Main Workflow . State .* Ċ import Ġcom . war de ll bag by . sens ord is abler . billing . Billing Workflow Ċ import Ġcom . war de ll bag by . sens ord is abler . mod als . Dual Layer Ċ import Ġcom . war de ll bag by . sens ord is abler . sensor detail . Sensor Detail Layout Runner Ċ import Ġcom . war de ll bag by . sens ord is abler . sensor detail . Sensor Detail Workflow Ċ import Ġcom . war de ll bag by . sens ord is abler . sensor detail . Sensor Detail Workflow . Output . Back Pressed Ċ import Ġcom . war de ll bag by . sens ord is abler . sensor detail . Sensor Detail Workflow . Output . Saved Ċ import Ġcom . war de ll bag by . sens ord is abler . sensor list . Sensor List Layout Runner Ċ import Ġcom . war de ll bag by . sens ord is abler . sensor list . Sensor List Workflow Ċ import Ġcom . war de ll bag by . sens ord is abler . sensor list . Sensor List Workflow . Output . Selected Sensor Ċ import Ġcom . war de ll bag by . sens ord is abler . settings . Output . Closed Ċ import Ġcom . war de ll bag by . sens ord is abler . settings . Settings Layout Runner Ċ import Ġcom . war de ll bag by . sens ord is abler . settings . Settings Workflow Ċ import Ġcom . war de ll bag by . sens ord is abler . toolbar . Toolbar Action Ċ import Ġcom . war de ll bag by . sens ord is abler . toolbar . Toolbar Layout Runner Ċ import Ġcom . war de ll bag by . sens ord is abler . toolbar . Toolbar Props Ċ import Ġcom . war de ll bag by . sens ord is abler . toolbar . Toolbar Workflow Ċ import Ġcom . war de ll bag by . sens ord is abler . util . Constants Ċ import Ġcom . war de ll bag by . sens ord is abler . util . get Modification Type Ċ import Ġcom . war de ll bag by . sens ord is abler . util . get Sensor Values Ċ import Ġcom . war de ll bag by . sens ord is abler . util . save Settings Ċ import Ġcom . war de ll bag by . sens ord is abler . x posed . X posed Unavailable Workflow Ċ import Ġdagger . h ilt . android . qual ifiers . ApplicationContext Ċ import Ġkotlinx . parcel ize . Parcel ize Ċ import Ġjavax . inject . Inject Ċ import Ġcom . war de ll bag by . sens ord is abler . sensor detail . Sensor Detail Workflow . Props Ġas ĠDetail Props Ċ import Ġcom . war de ll bag by . sens ord is abler . sensor list . Sensor List Workflow . Props Ġas ĠList Props Ċ Ċ val ĠMain View Registry Ġ= ĠView Registry ( ĊĠ ĠToolbar Layout Runner , ĊĠ ĠSensor Detail Layout Runner , ĊĠ ĠDraw er Layout Runner , ĊĠ ĠSensor List Layout Runner , ĊĠ ĠAlert Container , ĊĠ ĠSettings Layout Runner Ċ ) Ċ Ċ class ĠMain Workflow Ċ @ Inject Ġconstructor ( ĊĠ Ġ@ ApplicationContext Ġprivate Ġval Ġandroid Context : ĠContext , ĊĠ Ġprivate Ġval Ġsensor List Workflow : ĠSensor List Workflow , ĊĠ Ġprivate Ġval Ġsensor Detail Workflow : ĠSensor Detail Workflow , ĊĠ Ġprivate Ġval Ġsettings Workflow : ĠSettings Workflow , ĊĠ Ġprivate Ġval Ġbilling Workflow : ĠBilling Workflow , ĊĠ Ġprivate Ġval Ġx posed Unavailable Workflow : ĠX posed Unavailable Workflow , ĊĠ Ġprivate Ġval Ġto aster : ĠTo aster Ċ ) Ġ: ĠStateful Workflow < Props , ĠState , ĠNothing , ĠDual Layer <* >>() Ġ{ ĊĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġval ĠCON SUM ABLE _ SK US Ġ= ĠlistOf ( ĊĠĠĠĠĠ ĠConstants . SK U _ D ON ATION _ 1 , ĊĠĠĠĠĠ ĠConstants . SK U _ D ON ATION _ 5 , ĊĠĠĠĠĠ ĠConstants . SK U _ D ON ATION _ 1 0 ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġdata Ġclass ĠProps ( val Ġsensors : ĠList < Sensor >) ĊĊĠ Ġsealed Ġclass ĠState Ġ: ĠParcel able Ġ{ ĊĠĠĠ Ġabstract Ġval Ġsensor Index : ĠInt ĊĊĠĠĠ Ġ@ Parcel ize ĊĠĠĠ Ġdata Ġclass ĠSensor List ( override Ġval Ġsensor Index : ĠInt ) Ġ: ĠState () ĊĊĠĠĠ Ġ@ Parcel ize ĊĠĠĠ Ġdata Ġclass ĠSensor Details ( override Ġval Ġsensor Index : ĠInt ) Ġ: ĠState () ĊĊĠĠĠ Ġ@ Parcel ize ĊĠĠĠ Ġdata Ġclass ĠApp Settings ( override Ġval Ġsensor Index : ĠInt ) Ġ: ĠState () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠinitialState ( ĊĠĠĠ Ġprops : ĠProps , ĊĠĠĠ Ġsnapshot : ĠSnapshot ? ĊĠ Ġ): ĠState Ġ= Ġsnapshot ?. to Parcelable () Ġ?: ĠSensor List ( sensor Index Ġ= Ġ 0 ) ĊĊĠ Ġoverride Ġfun Ġrender ( ĊĠĠĠ Ġrender Props : ĠProps , ĊĠĠĠ Ġrender State : ĠState , ĊĠĠĠ Ġcontext : ĠRender Context ĊĠ Ġ): ĠDual Layer < *> Ġ{ ĊĠĠĠ Ġval Ġx posed Unavailable Rendering Ġ= Ġcontext . render Child ( x posed Unavailable Workflow ) ĊĠĠĠ Ġval Ġbilling Rendering Ġ= Ġcontext . render Child ( ĊĠĠĠĠĠ Ġchild Ġ= Ġbilling Workflow , ĊĠĠĠĠĠ Ġprops Ġ= ĠBilling Workflow . Props ( ĊĠĠĠĠĠĠĠ Ġconsum able Sk us Ġ= ĠCON SUM ABLE _ SK US ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġval Ġchild Rendering Ġ= Ġwhen Ġ( render State ) Ġ{ ĊĠĠĠĠĠ Ġis ĠSensor List , Ġis ĠSensor Details Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Rendering Ġ= Ġcontext . render Child ( ĊĠĠĠĠĠĠĠĠĠ Ġsensor List Workflow , ĊĠĠĠĠĠĠĠĠĠ Ġprops Ġ= ĠList Props ( render Props . sensors ), ĊĠĠĠĠĠĠĠĠĠ Ġhandler Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSelected Sensor Ġ-> Ġaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠSensor Details ( it . sensor Index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSensor List Workflow . Output . Back Pressed Ġ-> Ġaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠSensor Details ( state . sensor Index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġsensor Ġ= Ġrender Props . sensors [ render State . sensor Index ] ĊĠĠĠĠĠĠĠ Ġval Ġdetail Rendering Ġ= Ġcontext . render Child ( ĊĠĠĠĠĠĠĠĠĠ Ġsensor Detail Workflow , ĊĠĠĠĠĠĠĠĠĠ Ġprops Ġ= ĠDetail Props ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsensor Ġ= Ġsensor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodification Type Ġ= Ġsensor . get Modification Type ( android Context ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Sensor Values Ġ= Ġsensor . get Sensor Values ( android Context ) ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠ Ġhandler Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSaved Ġ-> Ġaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrender Props . sensors [ render State . sensor Index ]. save Settings ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid Context , Ġit . modification Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto aster . show Toast ( android Context . getString ( R . string . settings _ saved )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBack Pressed Ġ-> Ġaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠSensor List ( state . sensor Index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠDraw er Layout Rendering ( ĊĠĠĠĠĠĠĠĠĠ Ġdrawer Rendering Ġ= Ġlist Rendering , ĊĠĠĠĠĠĠĠĠĠ Ġcontent Rendering Ġ= ĠOptional Toolbar Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar Ġ= Ġcontext . render Child ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToolbar Workflow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprops Ġ= Ġdetail Rendering . bene ath Mod als . toolbar Props . add Settings ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġdetail Rendering . bene ath Mod als ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠ Ġis Drawer Opened Ġ= Ġrender State Ġis ĠSensor List , ĊĠĠĠĠĠĠĠĠĠ Ġon Drawer Closed Ġ= Ġcontext . event Handler Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠSensor Details ( state . sensor Index ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ). let Ġ{ ĠDual Layer ( it , Ġmod als Ġ= Ġdetail Rendering . mod als ) Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis ĠApp Settings Ġ-> Ġcontext . render Child ( ĊĠĠĠĠĠĠĠ Ġsettings Workflow , ĊĠĠĠĠĠĠĠ Ġprops Ġ= ĠSettings Workflow . Props ( render Props . sensors ), ĊĠĠĠĠĠĠĠ Ġhandler Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClosed Ġ-> Ġaction Ġ{ Ġstate Ġ= ĠSensor Details ( state . sensor Index ) Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠDual Layer ( ĊĠĠĠĠĠ Ġbase Ġ= Ġchild Rendering . bene ath Mod als , ĊĠĠĠĠĠ Ġmodal Ġ= Ġx posed Unavailable Rendering Ġ?: Ġbilling Rendering Ġ?: Ġchild Rendering . modal Rendering ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġsnapshot State ( state : ĠState ): ĠSnapshot Ġ{ ĊĠĠĠ Ġreturn Ġstate . to Snapshot () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun ĠToolbar Props . add Settings ( context : ĠRender Context ): ĠToolbar Props Ġ{ ĊĠĠĠ Ġval Ġsettings Ġ= ĠToolbar Action ( ĊĠĠĠĠĠ ĠR . drawable . ic _ settings , ĊĠĠĠĠĠ Ġandroid Context . getString ( R . string . menu _ settings ), ĊĠĠĠĠĠ ĠonClick Ġ= Ġcontext . event Handler Ġ{ ĊĠĠĠĠĠĠĠ Ġstate Ġ= ĠApp Settings ( state . sensor Index ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġreturn Ġcopy ( overflow Menu Ġ= Ġoverflow Menu Ġ+ Ġsettings ) ĊĠ Ġ} Ċ }