package Ġio . particle . common ui Ċ Ċ import Ġandroid . text . InputType Ċ import Ġandroid . view . Gravity Ċ import Ġandroidx . annotation . MainThread Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . af ol le st ad . material dialogs . Material Dialog Ċ import Ġcom . af ol le st ad . material dialogs . Theme Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġio . particle . android . sdk . cloud . Particle Device Ċ import Ġio . particle . mesh . setup . flow . Scopes Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . view . update LayoutParams Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . lifecycle . Lifecycle . State Ċ import Ġandroidx . lifecycle . Mutable LiveData ĊĊ Ċ class ĠDevice Notes Delegate Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġactivity : ĠFragment Activity , ĊĠĠĠ Ġprivate Ġval Ġdevice : ĠParticle Device , ĊĠĠĠ Ġprivate Ġval Ġscopes : ĠS copes , ĊĠĠĠ Ġprivate Ġval Ġnew Note Data LD : ĠMutable LiveData < String > Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ MainThread ĊĠĠĠĠĠĠĠ Ġfun Ġedit Device Notes ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity : ĠFragment Activity , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevice : ĠParticle Device , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscopes : ĠS copes , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Note Data LD : ĠMutable LiveData < String > ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDevice Notes Delegate ( activity , Ġdevice , Ġscopes , Ġnew Note Data LD ). show Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġshow Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmd Ġ= ĠMaterial Dialog . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. title (" Notes ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. theme ( Theme . LIGHT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. input Type ( InputType . TYPE _ TEXT _ FLAG _ MULTI _ LINE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. input (" Use Ġthis Ġspace Ġto Ġkeep Ġnotes Ġon Ġthis Ġdevice ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( device . notes . isNull Or Blank ()) Ġnull Ġelse Ġdevice . notes , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ) Ġ{ Ġ_, Ġ_ Ġ-> Ġ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. positive Text (" Save ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. negative Text (" Cancel ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Positive ( Material Dialog . Single Button Callback Ġ{ Ġdialog , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Text Ġ= Ġdialog . input EditText Ġ?: Ġreturn @ Single Button Callback ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Device Notes ( input Text . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠ Ġmd . input EditText !!. update LayoutParams Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġdp To Px ( 2 5 0 , Ġmd . context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmd . input EditText !!. gravity Ġ= ĠGr avity . START Ġor ĠGr avity . TOP ĊĠĠĠĠĠĠĠ Ġmd . input EditText !!. set Single Line ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Device Notes ( new Notes : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Note Data LD . post Value ( new Notes ) ĊĠĠĠĠĠĠĠ Ġscopes . on Worker Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice . notes Ġ= Ġnew Notes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscopes . on Main Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error Sn ackBar () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Error Sn ackBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! activity . lifecycle . currentState . is At Least ( State . STARTED )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent Root Ġ= Ġ( activity . findViewById ( android . R . id . content ) Ġas ĠViewGroup ) ĊĠĠĠĠĠĠĠ Ġval Ġmy Root Ġ= Ġcontent Root . getChild At ( 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġ" An Ġerror Ġoccurred . ĠDevice Ġnotes Ġnot Ġupdated " ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( my Root , Ġmsg , ĠSn ackbar . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} Ċ Ċ }