// ĠCopyright Ġ( c ) ĠMicrosoft ĠCorporation . ĠAll Ġrights Ġreserved . Ċ // ĠLicensed Ġunder Ġthe ĠMIT ĠLicense . Ċ Ċ package Ġcom . azure . android . communication . ui . presentation . fragment . calling . hang up Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . azure . android . communication . ui . R Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . launch Ċ Ċ internal Ġclass ĠConfirm Leave Overlay View Ġ: ĠLinearLayout Ġ{ ĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: Ġsuper ( context , Ġattrs ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġconfirm Leave Overlay ViewModel : ĠConfirm Leave Overlay ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġconfirm Leave Call Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcancel Leave Call Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġleave Overlay : ĠLinearLayout ĊĊĠĠĠ Ġoverride Ġfun Ġon Finish Inf late () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Finish Inf late () ĊĠĠĠĠĠĠĠ Ġleave Overlay Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġconfirm Leave Call Button Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById ( R . id . azure _ communication _ ui _ call _ leave _ confirm ) ĊĠĠĠĠĠĠĠ Ġcancel Leave Call Button Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById ( R . id . azure _ communication _ ui _ call _ leave _ cancel ) ĊĠĠĠĠĠĠĠ Ġconfirm Leave Call Button . background Ġ= ĠContext Compat . get Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . azure _ communication _ ui _ corner _ radius _ rectangle _ 4 dp _ primary _ background ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġsubscribe ClickListener () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġconfirm Leave Overlay ViewModel . cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart ( ĊĠĠĠĠĠĠĠ Ġview Lifecycle Owner : ĠLifecycle Owner , ĊĠĠĠĠĠĠĠ Ġconfirm Leave Overlay ViewModel : ĠConfirm Leave Overlay ViewModel , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . confirm Leave Overlay ViewModel Ġ= Ġconfirm Leave Overlay ViewModel ĊĊĠĠĠĠĠĠĠ Ġsetup Ui () ĊĠĠĠĠĠĠĠ Ġview Lifecycle Owner . lifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Leave Overlay ViewModel . get Should Display Confirm Leave Overlay Flow (). collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= Ġif Ġ( it ) ĠVIS IBLE Ġelse ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Ui () Ġ{ ĊĠĠĠĠĠĠĠ Ġconfirm Leave Call Button . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Leave Overlay ViewModel . getLocal ization Provider (). get Localized String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . azure _ communication _ ui _ calling _ view _ overlay _ leave _ call ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcancel Leave Call Button . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Leave Overlay ViewModel . getLocal ization Provider (). get Localized String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . azure _ communication _ ui _ calling _ view _ overlay _ cancel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubscribe ClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġconfirm Leave Call Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Leave Overlay ViewModel . confirm () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcancel Leave Call Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Leave Overlay ViewModel . cancel () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġleave Overlay . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Leave Overlay ViewModel . cancel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ