package Ġat . ro tes k re uz . stop cor ona . screens . menu Ċ Ċ import Ġandroid . content . Context Ċ import Ġat . ro tes k re uz . stop cor ona . R Ċ import Ġat . ro tes k re uz . stop cor ona . constants . Constants Ċ import Ġat . ro tes k re uz . stop cor ona . model . managers . Exposure Notification Phase Ċ import Ġat . ro tes k re uz . stop cor ona . model . managers . Exposure Notification Phase . Framework Error Ċ import Ġat . ro tes k re uz . stop cor ona . model . managers . Exposure Notification Phase . Framework Running Ċ import Ġat . ro tes k re uz . stop cor ona . screens . base . e po xy . empty Space Ċ import Ġat . ro tes k re uz . stop cor ona . screens . base . e po xy . headline H 2 Ċ import Ġat . ro tes k re uz . stop cor ona . screens . base . e po xy . vertical Background Model Group Ċ import Ġat . ro tes k re uz . stop cor ona . screens . dashboard . Health Status Data Ċ import Ġat . ro tes k re uz . stop cor ona . screens . menu . e po xy . MenuItem Model _ Ċ import Ġat . ro tes k re uz . stop cor ona . screens . menu . e po xy . menuItem Ċ import Ġat . ro tes k re uz . stop cor ona . screens . menu . e po xy . menuItem Version Ċ import Ġat . ro tes k re uz . stop cor ona . skeleton . core . utils . addTo Ċ import Ġat . ro tes k re uz . stop cor ona . utils . start Of The Day Ċ import Ġat . ro tes k re uz . stop cor ona . utils . string Ċ import Ġcom . air bnb . e po xy . E po xy Controller Ċ import Ġcom . air bnb . e po xy . E po xy Model Ċ import Ġorg . th reet en . bp . Z onedDateTime Ċ Ċ /** Ċ Ġ* ĠMenu Ġcontent . Ċ Ġ*/ Ċ class ĠMenu Controller ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġon On boarding Click : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon External Link Click : Ġ( url : ĠString ) Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Saved Ids Click : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Open Source Lic ence Click : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Privacy Data Click : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Imp rint Click : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Version Click : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Check Sy mptoms Click : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Report Official S ickness Click : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Share App Click : Ġ() Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Re voke S ickness Click : Ġ() Ġ-> ĠUnit Ċ ) Ġ: ĠE po xy Controller () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġown Health Status : ĠHealth Status Data Ġ= ĠHealth Status Data . No Health Status ĊĠĠĠ Ġprivate Ġvar Ġexposure Notification Phase : ĠEx posure Notification Phase ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdate Of First Medical Confirmation : ĠZ onedDateTime ? Ġ= Ġnull ĊĊĠĠĠ Ġfun ĠsetData ( ĊĠĠĠĠĠĠĠ Ġown Health Status Data : ĠHealth Status Data , ĊĠĠĠĠĠĠĠ Ġexposure Notification Phase : ĠEx posure Notification Phase , ĊĠĠĠĠĠĠĠ Ġdate Of First Medical Confirmation : ĠZ onedDateTime ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . own Health Status Ġ= Ġown Health Status Data ĊĠĠĠĠĠĠĠ Ġthis . ex posure Notification Phase Ġ= Ġexposure Notification Phase ĊĠĠĠĠĠĠĠ Ġthis . date Of First Medical Confirmation Ġ= Ġdate Of First Medical Confirmation ĊĠĠĠĠĠĠĠ Ġrequest Model Build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbuild Models () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġempty Space ( model Count Built So Far , Ġ 2 2 ) ĊĊĠĠĠĠĠĠĠ Ġheadline H 2 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" headline _ function ality ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( context . string ( R . string . start _ menu _ headline _ 3 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( ex posure Notification Phase . is Reporting Enabled ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( build Function ality Menu Items ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Background Model Group ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (" vertical _ model _ group _ function ality ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor ( R . color . white ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmenu Item ( on Share App Click ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" share _ app ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( context . string ( R . string . share _ app _ menu )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexternal Link ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġempty Space ( model Count Built So Far , Ġ 4 8 ) ĊĊĠĠĠĠĠĠĠ Ġheadline H 2 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" headline _ info ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( context . string ( R . string . start _ menu _ headline _ 1 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmenu Item ( on On boarding Click ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" on boarding ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( context . string ( R . string . start _ menu _ item _ 1 _ 1 _ what _ does _ the _ app _ do )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmenu Item ({ Ġon External Link Click ( context . string ( R . string . start _ menu _ item _ 1 _ 2 _ red _ cross _ link _ link _ target )) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" faq _ link ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( context . string ( R . string . start _ menu _ item _ 1 _ 2 _ red _ cross _ link )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexternal Link ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmenu Item ({ Ġon External Link Click ( context . string ( R . string . start _ menu _ item _ 1 _ 3 _ red _ cross _ link _ link _ target )) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" red _ cross _ link ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( context . string ( R . string . start _ menu _ item _ 1 _ 3 _ red _ cross _ link )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexternal Link ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġempty Space ( model Count Built So Far , Ġ 4 8 ) ĊĊĠĠĠĠĠĠĠ Ġheadline H 2 Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" headline _ legal ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( context . string ( R . string . start _ menu _ headline _ 2 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmenu Item ( on Saved Ids Click ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" saved _ ids ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( context . string ( R . string . start _ menu _ item _ 2 _ 4 _ saved _ ids )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmenu Item ( on Open Source Lic ence Click ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" open _ source ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( context . string ( R . string . start _ menu _ item _ 2 _ 1 _ open _ source _ licenses )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmenu Item ( on Privacy Data Click ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" privacy _ data ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( context . string ( R . string . start _ menu _ item _ 2 _ 2 _ data _ privacy )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmenu Item ( on Imp rint Click ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" imp rint ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( context . string ( R . string . start _ menu _ item _ 2 _ 3 _ imp rint )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmenu Item Version ( on Version Click ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid (" version ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġempty Space ( model Count Built So Far , Ġ 4 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Function ality Menu Items (): ĠList < E po xy Model < out ĠAny >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel List Ġ= Ġarray ListOf < E po xy Model < out ĠAny >>() ĊĊĠĠĠĠĠĠĠ Ġif Ġ(( own Health Status Ġis ĠHealth Status Data . Self Testing Sus pic ion Of S ickness ). not () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ( own Health Status Ġis ĠHealth Status Data . S ickness Certificate ). not () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMenuItem Model _( on Check Sy mptoms Click ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. id (" check _ sy mptoms ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( context . string ( R . string . start _ menu _ item _ 3 _ 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( model List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġis Red Rev oking Enabled Ġ= Ġdate Of First Medical Confirmation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . is After ( Z onedDateTime . now (). minus ( Constants . Behavior . MED ICAL _ CONFIRM ATION _ REV OK ING _ PO SS IBLE _ DURATION ). start Of The Day ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġtrue ĊĊĠĠĠĠĠĠĠ Ġif Ġ( own Health Status Ġis ĠHealth Status Data . S ickness Certificate Ġ&& Ġis Red Rev oking Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMenuItem Model _( on Re voke S ickness Click ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. id (" revoke _ s ickness ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( context . string ( R . string . start _ menu _ item _ revoke _ s ickness )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( model List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(( own Health Status Ġis ĠHealth Status Data . S ickness Certificate ). not ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMenuItem Model _( on Report Official S ickness Click ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. id (" official _ s ickness ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( context . string ( R . string . start _ menu _ item _ 3 _ 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( model List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmodel List ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠEx posure Notification Phase ?. is Reporting Enabled (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġthis Ġis ĠFramework Running Ġ|| Ġthis Ġis ĠFramework Error . Not Critical Ċ }