package Ġcom . vit ass al v antes . k rypto . navigation Ċ Ċ import Ġandroidx . compose . material .* Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Add Ċ import Ġandroidx . compose . material . icons . filled . Code Ċ import Ġandroidx . compose . material . icons . filled . List Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . navigation . Nav Destination . Companion . hierarchy Ċ import Ġandroidx . navigation . Nav Graph . Companion . find Start Destination Ċ import Ġandroidx . navigation . Nav Host Controller Ċ import Ġandroidx . navigation . compose . current Back Stack Entry As State Ċ import Ġandroidx . navigation . compose . remember Nav Controller Ċ import Ġcom . vit ass al v antes . k rypto . R Ċ import Ġcom . vit ass al v antes . k rypto . ui . theme . Shapes Ċ Ċ /** Ċ Ġ* ĠThe Ġbottom Ġapp Ġbar Ġthat Ġprovides Ġnavigation . Ċ Ġ*/ Ċ @ Composable Ċ fun ĠK rypto Bottom AppBar ( nav Controller : ĠNav Host Controller ) Ġ{ ĊĊĠĠĠ ĠBottom AppBar ( cut out Shape Ġ= ĠShapes . small ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBottom Navigation Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnav Back Stack Entry Ġby Ġnav Controller . current Back Stack Entry As State () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Destination Ġ= Ġnav Back Stack Entry ?. destination ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠNavigate Ġto Ġ[ com . vit ass al v antes . k rypto . ui . screens . Corre spond ences Screen ] ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Navigation Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcons . Filled . List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġstring Resource ( id Ġ= ĠR . string . corre spond ences ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ{ ĠText ( text Ġ= Ġstring Resource ( id Ġ= ĠR . string . corre spond ences )) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ġ= Ġcurrent Destination ?. hierarchy ?. any Ġ{ Ġit . route Ġ== ĠK rypto Screen . Corre spond ences Screen . route Ġ} Ġ== Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( K rypto Screen . Corre spond ences Screen . route ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPop Ġup Ġto Ġthe Ġstart Ġdestination Ġof Ġthe Ġgraph Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġavoid Ġbuilding Ġup Ġa Ġlarge Ġstack Ġof Ġdest inations ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġon Ġthe Ġback Ġstack Ġas Ġusers Ġselect Ġitems ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpop Up To ( nav Controller . graph . find Start Destination (). id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave State Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAvoid Ġmultiple Ġcopies Ġof Ġthe Ġsame Ġdestination Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġre select ing Ġthe Ġsame Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Single Top Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRestore Ġstate Ġwhen Ġre select ing Ġa Ġpreviously Ġselected Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrestore State Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠNavigate Ġto Ġ[ com . vit ass al v antes . k rypto . ui . screens . C iph ers Screen ] ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Navigation Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcons . Filled . Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġstring Resource ( id Ġ= ĠR . string . ciph ers ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ{ ĠText ( text Ġ= Ġstring Resource ( id Ġ= ĠR . string . ciph ers )) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ġ= Ġcurrent Destination ?. hierarchy ?. any Ġ{ Ġit . route Ġ== ĠK rypto Screen . C iph ers Screen . route Ġ} Ġ== Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( K rypto Screen . C iph ers Screen . route ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPop Ġup Ġto Ġthe Ġstart Ġdestination Ġof Ġthe Ġgraph Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġavoid Ġbuilding Ġup Ġa Ġlarge Ġstack Ġof Ġdest inations ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġon Ġthe Ġback Ġstack Ġas Ġusers Ġselect Ġitems ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpop Up To ( nav Controller . graph . find Start Destination (). id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave State Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAvoid Ġmultiple Ġcopies Ġof Ġthe Ġsame Ġdestination Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġre select ing Ġthe Ġsame Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Single Top Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRestore Ġstate Ġwhen Ġre select ing Ġa Ġpreviously Ġselected Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrestore State Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠThe Ġfloating Ġaction Ġbutton Ġthat Ġused Ġwith Ġthe Ġ[ K rypto Bottom AppBar ] Ċ Ġ*/ Ċ @ Composable Ċ fun ĠK rypto Floating ActionButton ( nav Controller : ĠNav Host Controller ) Ġ{ ĊĠĠĠ ĠFloating ActionButton ( ĊĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( K rypto Screen . Creating New Corre spond ence . route ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPop Ġup Ġto Ġthe Ġstart Ġdestination Ġof Ġthe Ġgraph Ġto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġavoid Ġbuilding Ġup Ġa Ġlarge Ġstack Ġof Ġdest inations ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġon Ġthe Ġback Ġstack Ġas Ġusers Ġselect Ġitems ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpop Up To ( nav Controller . graph . find Start Destination (). id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave State Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAvoid Ġmultiple Ġcopies Ġof Ġthe Ġsame Ġdestination Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġre select ing Ġthe Ġsame Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Single Top Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRestore Ġstate Ġwhen Ġre select ing Ġa Ġpreviously Ġselected Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrestore State Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġshape Ġ= ĠShapes . small ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠIcon ( Icons . Filled . Add , Ġstring Resource ( id Ġ= ĠR . string . create _ a _ new _ corre spond ence )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview ( ĊĠĠĠ Ġname Ġ= Ġ" K rypto Bottom AppBar ", ĊĠĠĠ Ġshow Background Ġ= Ġtrue Ċ ) Ċ @ Composable Ċ fun ĠPreview K rypto Bottom AppBar () Ġ{ ĊĠĠĠ ĠK rypto Bottom AppBar ( remember Nav Controller ()) Ċ } Ċ Ċ @ Preview ( ĊĠĠĠ Ġname Ġ= Ġ" K rypto Floating ActionButton ", ĊĠĠĠ Ġshow Background Ġ= Ġtrue Ċ ) Ċ @ Composable Ċ fun ĠPreview K rypto Floating ActionButton () Ġ{ ĊĠĠĠ ĠK rypto Floating ActionButton ( nav Controller Ġ= Ġremember Nav Controller ()) Ċ } Ċ