/* Ċ Ġ* Ċ Ġ* Ġ Ġ* ĠCopyright Ġ 2 0 2 1 ĠAll Ġrights Ġare Ġreserved Ġby ĠPi ĠApp ĠStudio Ċ Ġ* Ġ Ġ* Ċ Ġ* Ġ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ġ Ġ* Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġcom . pi app studio . travel ins urance . ui . ins urance Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . compose . foundation . click able Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . foundation . lazy . items Ċ import Ġandroidx . compose . foundation . shape . Corner Size Ċ import Ġandroidx . compose . foundation . shape . Rounded Corner Shape Ċ import Ġandroidx . compose . material . Card Ċ import Ġandroidx . compose . material . Experimental Material Api Ċ import Ġandroidx . compose . material . Material Theme . typography Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . platform . Compose View Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . text . font . FontStyle Ċ import Ġandroidx . compose . ui . text . font . Font Weight Ċ import Ġandroidx . compose . ui . text . style . Text Align Ċ import Ġandroidx . compose . ui . text . style . Text Decoration Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . pi app studio . p ili brary . model . Ins urance Info Item Ċ import Ġcom . pi app studio . p ili brary . utility . Resource Ċ import Ġcom . pi app studio . p ili brary . utility . add Comma Ċ import Ġcom . pi app studio . travel ins urance . R Ċ import Ġcom . pi app studio . travel ins urance . common . theme . Pur ple 7 0 0 Ċ import Ġcom . pi app studio . travel ins urance . common . theme . Travel Ins urance Theme Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ* Ġcreate Ġan Ġinstance Ġof Ġthis Ġfragment . Ċ Ġ*/ Ċ @ Android EntryPoint Ċ class ĠIn sur ance Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠIn sur ance Fragment :: class . java . name ĊĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġins urance ViewModel : ĠIn sur ance ViewModel ĊĊĠĠĠ Ġ@ Experimental Material Api ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn ĠCompose View ( require Context ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTr avel Ins urance Theme Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġins urance ViewModel . lst Ins uran ace . collect As State () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( state . value . status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource . Status . LOADING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRender Message ( message Ġ= Ġcontext . getString ( R . string . loading )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource . Status . SUCCESS Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlst Ġ= Ġstate . value . data ?. distinct By Ġ{ Ġit . supplier Name Ġ} ?. sorted By Ġ{ Ġit . final Prem ium Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lst != null ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRender Ins urance List ( lst Ins urance Ġ= Ġlst ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRender Message ( message Ġ= context . getString ( R . string . empty _ ins urance )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource . Status . ERROR -> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRender Message ( message Ġ= Ġcontext . getString ( R . string . server _ error )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun ĠRender Message ( message : String ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBox ( modifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize (), Ġcontent Alignment Ġ= ĠAlignment . Center ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( Ġtext Ġ= Ġmessage , ĠModifier . padding ( 1 6 . dp ), ĠĠ Ġstyle Ġ= Ġty pography . h 4 , ĠtextAlign Ġ= ĠText Align . Center ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠRender Ins urance List ( lst Ins urance : ĠList < Ins urance Info Item >) Ġ{ ĊĠĠĠĠĠĠĠ ĠLazy Column ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠModifier . fill Max Width (), Ġvertical Arrange ment Ġ= ĠArrange ment . spaced By ( 4 . dp ), ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems ( lst Ins urance ) Ġ{ Ġmessage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ins urance Row ( ins urance Item Ġ= Ġmessage , Ġonclick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Item Ġclicked ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġins urance ViewModel . update Selected Ins urance Info ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ ins urance Fragment _ to _ ins urance Detail Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun Ġitem Ins urance Row ( ins urance Item : ĠIn sur ance Info Item , Ġonclick : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpadding Ġ= Ġ 1 6 . dp ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġ 1 0 . dp ĊĠĠĠĠĠĠĠ ĠCard ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= Ġ 8 . dp , Ġvertical Ġ= Ġ 8 . dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able Ġ{ Ġonclick . invoke () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelevation Ġ= Ġ 2 . dp , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠbackgroundColor Ġ= ĠColor . White , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= ĠRo unded Corner Shape ( corner Ġ= ĠCor ner Size ( 1 6 . dp )) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( padding ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġins urance Item . supplier Name Ġ?: Ġstring Resource ( R . string . not _ available ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġty pography . h 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp acer ( modifier Ġ= ĠModifier . height ( height )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTo Ġdesign Ġthe Ġoriginal Ġand Ġbase Ġprice ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width (. 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. align ( Alignment . Top Start )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Original ĠPrice ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġty pography . subtitle 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġins urance Item . ir da Package Prem ium ?. add Comma () Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Decoration Ġ= ĠText Decoration . Line Through , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont Style Ġ= ĠFont Style . Italic , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġty pography . h 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . Red , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight . Light ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width (. 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. align ( Alignment . Top End )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Offer ĠPrice ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill Max Width () Ġ, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġty pography . subtitle 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextAlign Ġ= ĠText Align . End ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġins urance Item . final Prem ium ?. add Comma () Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . fill Max Width (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont Style Ġ= ĠFont Style . Italic , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyle Ġ= Ġty pography . h 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠPur ple 7 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextAlign Ġ= ĠText Align . End , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfontWeight Ġ= ĠFontWeight . Black ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Preview ĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠPreview item Ins urance Row () Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Ins urance Row ( Ins urance Info Item ( supplier Name Ġ= Ġ" LIC Ġof ĠIn ", Ġfinal Prem ium Ġ= Ġ 2 1 3 0 0 . 0 , Ġir da Package Prem ium Ġ= Ġ 2 5 0 0 0 . 0 )) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ@ Preview ĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfun ĠPreview Message () Ġ{ ĊĠĠĠĠĠĠĠ ĠRender Message ( message Ġ= Ġ" Loading .. ") ĊĠĠĠ Ġ} Ċ Ċ }