package Ġcom . vl ad 1 m 1 r . watch face . settings . background Ċ Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . we arable . comp lications . Comp lication Helper Activity Ċ import Ġandroid . support . we arable . comp lications . Comp lication Provider Info Ċ import Ġandroid . support . we arable . comp lications . Provider Chooser Intent Ċ import Ġandroid . support . we arable . comp lications . Provider Info Retriever Ċ import Ġandroidx . activity . result . Activity Result Ċ import Ġandroidx . activity . result . Activity Result Launcher Ċ import Ġandroidx . activity . result . contract . Activity Result Contracts . Start Activity For Result Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . we ar . widget . W ear able RecyclerView Ċ import Ġcom . vl ad 1 m 1 r . watch face . R Ċ import Ġcom . vl ad 1 m 1 r . watch face . Watch Face Ċ import Ġcom . vl ad 1 m 1 r . watch face . components . background . BACKGROUND _ COMP LIC ATION _ ID Ċ import Ġcom . vl ad 1 m 1 r . watch face . components . background . BACKGROUND _ COMP LIC ATION _ SUPPORTED _ TYPES Ċ import Ġcom . vl ad 1 m 1 r . watch face . data . Color Storage Ċ import Ġcom . vl ad 1 m 1 r . watch face . data . Data Storage Ċ import Ġcom . vl ad 1 m 1 r . watch face . settings . Navigator Ċ import Ġcom . vl ad 1 m 1 r . watch face . settings . base . Base Recycler Activity Ċ import Ġcom . vl ad 1 m 1 r . watch face . settings . color picker . KEY _ SELECTED _ COLOR Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġjava . util . concurrent . Executors Ċ import Ġjavax . inject . Inject Ċ Ċ private Ġconst Ġval ĠKEY _ BACKGROUND _ TITLE Ġ= Ġ" background _ title " Ċ Ċ @ Android EntryPoint Ċ class ĠBackground Activity Ġ: ĠBase Recycler Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcomp lication Helper Activity Launcher : ĠActivity Result Launcher < Intent > ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġdata Storage : ĠData Storage ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġcolor Storage : ĠColor Storage ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġnavigator : ĠNavigator ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠBackground Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprovider Info Retriever : ĠProvider Info Retriever ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ list ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġintent . getInt Extra ( KEY _ BACKGROUND _ TITLE , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġleft BackgroundColor Launcher Ġ= Ġregister For Activity Result ( Start Activity For Result ()) Ġ{ Ġresult : ĠActivity Result Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . result Code Ġ== ĠRESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleft BackgroundColor Ġ= Ġresult . data !!. getInt Extra ( KEY _ SELECTED _ COLOR , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Storage . setBackground Left Color ( left BackgroundColor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġright BackgroundColor Launcher Ġ= Ġregister For Activity Result ( Start Activity For Result ()) Ġ{ Ġresult : ĠActivity Result Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . result Code Ġ== ĠRESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright BackgroundColor Ġ= Ġresult . data !!. getInt Extra ( KEY _ SELECTED _ COLOR , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Storage . setBackground Right Color ( right BackgroundColor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcomp lication Helper Activity Launcher Ġ= Ġregister For Activity Result ( Start Activity For Result ()) Ġ{ Ġresult : ĠActivity Result Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . result Code Ġ== ĠRESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomp lication Provider Info Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . data ?. get Parcelable Extra < Comp lication Provider Info >( Provider Chooser Intent . EXTRA _ PROVIDER _ INFO ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Comp lication Views ( comp lication Provider Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠBackground Adapter ( color Storage , Ġdata Storage , Ġnavigator , Ġtitle , Ġleft BackgroundColor Launcher , Ġright BackgroundColor Launcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Comp lication Helper Activity () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwe arable RecyclerView Ġ= ĠfindViewById < W ear able RecyclerView >( R . id . we arable _ recycler _ view ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context , ĠRecyclerView . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Edge Items Center ing Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Circular Scrolling Gesture Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwe arable RecyclerView . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġprovider Info Retriever Ġ= ĠProvider Info Retriever ( this , ĠExec utors . new Cached ThreadPool ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġretrieve Provider Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠProvider Info Retriever . On Provider Info Received Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Provider Info Received ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwatch Face Comp lication Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Provider Info : ĠComp lication Provider Info ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Comp lication ( comp lication Provider Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComponent Name ( this @ Background Activity , ĠWatch Face :: class . java ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBACK GROUND _ COMP LIC ATION _ ID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġprovider Info Retriever . release () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Comp lication Views ( comp lication Provider Info : ĠComp lication Provider Info ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Comp lication ( comp lication Provider Info ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Comp lication ( comp lication Provider Info : ĠComp lication Provider Info ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( comp lication Provider Info Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . update Background Comp lication View ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . we ar _ edit _ background _ comp lication ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Provider Info . provider Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Provider Info . provider Icon ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . update Background Comp lication View ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . we ar _ add _ background _ comp lication ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlaunch Comp lication Helper Activity () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcomp lication Helper Activity Launcher . launch ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Helper Activity . create Provider Chooser Helper Intent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComponent Name ( this , ĠWatch Face :: class . java ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBACK GROUND _ COMP LIC ATION _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* BACKGROUND _ COMP LIC ATION _ SUPPORTED _ TYPES ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Res Ġtitle : ĠInt ĊĠĠĠĠĠĠĠ Ġ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠIntent ( context , ĠBackground Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( KEY _ BACKGROUND _ TITLE , Ġtitle ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }