package Ġorg . ire ader . presentation . ui Ċ Ċ import Ġandroidx . compose . animation . Experimental Animation Api Ċ import Ġandroidx . compose . material . Experimental Material Api Ċ import Ġandroidx . compose . material 3 . Experimental Material 3 Api Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . h ilt . navigation . compose . h ilt ViewModel Ċ import Ġandroidx . navigation . Nav Deep Link Ċ import Ġandroidx . navigation . nav Deep Link Ċ import Ġorg . ire ader . common _ models . entities . to Saved Download Ċ import Ġorg . ire ader . downloader . Downloader Screen Ċ import Ġorg . ire ader . downloader . Downloader Top AppBar Ċ import Ġorg . ire ader . downloader . Downloader ViewModel Ċ Ċ object ĠDown loader Screen Spec Ġ: ĠScreen Spec Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġnav Host Route : ĠString Ġ= Ġ" downloader _ route " ĊĊĠĠĠ Ġoverride Ġval Ġdeep Links : ĠList < Nav Deep Link > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġnav Deep Link Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuri Pattern Ġ= Ġ" https :// www . ire ader / downloader _ route " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Opt In ( ĊĠĠĠĠĠĠĠ ĠExperimental Animation Api :: class , ĊĠĠĠĠĠĠĠ ĠExperimental Material Api :: class , ĠExperimental Material 3 Api :: class ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġoverride Ġfun ĠContent ( ĊĠĠĠĠĠĠĠ Ġcontroller : ĠScreen Spec . Controller ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvm : ĠDown loader ViewModel Ġ= Ġh ilt ViewModel ( ĠĠ Ġcontroller . nav Back Stack Entry ) ĊĠĠĠĠĠĠĠ ĠDown loader Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Download Item Ġ= Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . nav Controller . navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBook Detail Screen Spec . build Route ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Id Ġ= Ġitem . source Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook Id Ġ= Ġitem . book Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm Ġ= Ġvm , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackBar Host State Ġ= Ġcontroller . sn ackBar Host State ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Opt In ( Experimental Material Api :: class ) ĊĠĠĠ Ġ@ Experimental Material 3 Api ĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġoverride Ġfun ĠTop Bar ( ĊĠĠĠĠĠĠĠ Ġcontroller : ĠScreen Spec . Controller ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvm : ĠDown loader ViewModel Ġ= Ġh ilt ViewModel ( ĠĠ Ġcontroller . nav Back Stack Entry ) ĊĠĠĠĠĠĠĠ ĠDown loader Top AppBar ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Pop Back Stack Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . nav Controller . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Cancel All Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . delete Selected Downloads ( vm . downloads . map Ġ{ Ġit . to Saved Download () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Menu Icon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . toggle Expand Menu ( enable Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonDelete All Download Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . delete All Downloads () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġvm , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonDelete Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . delete Selected Downloads ( vm . downloads . filter Ġ{ Ġit . chapter Id Ġin Ġvm . selection Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . to Saved Download () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . selection . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ